20 implicit none ;
private 22 #include <MOM_memory.h> 25 character(len=40) ::
mdl =
"soliton_initialization" 35 real,
dimension(SZI_(G),SZJ_(G), SZK_(G)),
intent(out) :: h
37 integer :: i, j, k, is, ie, js, je, nz
39 real :: val1, val2, val3, val4
40 character(len=40) :: verticalCoordinate
42 is = g%isc ; ie = g%iec ; js = g%jsc ; je = g%jec ; nz = g%ke
44 call mom_mesg(
"soliton_initialization.F90, soliton_initialize_thickness: setting thickness")
46 x0 = 2.0*g%len_lon/3.0
49 val2 = 0.771*(val1*val1)
51 do j = g%jsc,g%jec ;
do i = g%isc,g%iec
56 val4 = val2*((2.0*val3/(1.0+(val3*val3)))**2)
57 h(i,j,k) = 0.25*val4*(6.0*y*y+3.0)* &
68 real,
dimension(SZIB_(G),SZJ_(G),SZK_(G)),
intent(out) :: u
69 real,
dimension(SZI_(G),SZJB_(G),SZK_(G)),
intent(out) :: v
70 real,
dimension(SZI_(G),SZJ_(G), SZK_(G)),
intent(in) :: h
73 real :: val1, val2, val3, val4
74 integer :: i, j, k, is, ie, js, je, nz
76 is = g%isc ; ie = g%iec ; js = g%jsc ; je = g%jec ; nz = g%ke
78 x0 = 2.0*g%len_lon/3.0
81 val2 = 0.771*(val1*val1)
86 do j = g%jsc,g%jec ;
do i = g%isc-1,g%iec+1
88 x = 0.5*(g%geoLonT(i+1,j)+g%geoLonT(i,j))-x0
89 y = 0.5*(g%geoLatT(i+1,j)+g%geoLatT(i,j))-y0
91 val4 = val2*((2.0*val3/(1.0+(val3*val3)))**2)
92 u(i,j,k) = 0.25*val4*(6.0*y*y-9.0)* &
96 do j = g%jsc-1,g%jec+1 ;
do i = g%isc,g%iec
98 x = 0.5*(g%geoLonT(i,j+1)+g%geoLonT(i,j))-x0
99 y = 0.5*(g%geoLatT(i,j+1)+g%geoLatT(i,j))-y0
101 val4 = val2*((2.0*val3/(1.0+(val3*val3)))**2)
102 v(i,j,k) = 2.0*val4*y*(-2.0*val1*tanh(val1*x))* &
integer, parameter regridding_layer
Layer mode.
subroutine, public read_axis_data(filename, axis_name, var)
integer function coordinatemode(string)
Parse a string parameter specifying the coordinate mode and return the appropriate enumerated integer...
integer, parameter regridding_sigma
Sigma coordinates.
subroutine, public soliton_initialize_thickness(h, G)
Initialization of thicknesses in Equatorial Rossby soliton test.
Ocean grid type. See mom_grid for details.
Calculates density of sea water from T, S and P.
Provides the ocean grid type.
character(len= *), parameter default_coordinate_mode
Default coordinate mode.
This module contains I/O framework code.
Initial conditions for the Equatorial Rossby soliton test (Boyd).
subroutine, public calculate_density_derivs(T, S, pressure, drho_dT, drho_dS, start, npts, EOS)
Calls the appropriate subroutine to calculate density derivatives for 1-D array inputs.
logical function, public is_root_pe()
subroutine, public soliton_initialize_velocity(u, v, h, G)
Initialization of u and v in the equatorial Rossby soliton test.
subroutine, public mom_mesg(message, verb, all_print)
Provides subroutines for quantities specific to the equation of state.
Type for describing a variable, typically a tracer.
integer, parameter regridding_zstar
z* coordinates
The thermo_var_ptrs structure contains pointers to an assortment of thermodynamic fields that may be ...
Contains constants for interpreting input parameters that control regridding.
subroutine, public mom_error(level, message, all_print)
integer, parameter regridding_rho
Target interface densities.
character(len=40) mdl
This module's name.
A control structure for the equation of state.