14 implicit none ;
private 16 #include <MOM_memory.h> 18 public supercritical_set_obc_data
21 #include "version_variable.h" 26 subroutine supercritical_set_obc_data(OBC, G, param_file)
33 character(len=40) :: mdl =
"supercritical_set_OBC_data" 36 integer :: isd, ied, jsd, jed, isdb, iedb, jsdb, jedb
39 if (.not.
associated(obc))
call mom_error(fatal,
'supercritical_initialization.F90: '// &
40 'supercritical_set_OBC_data() was called but OBC type was not initialized!')
42 call get_param(param_file, mdl,
"SUPERCRITICAL_ZONAL_FLOW", zonal_flow, &
43 "Constant zonal flow imposed at upstream open boundary.", &
44 units=
"m/s", default=8.57, scale=g%US%m_s_to_L_T)
46 do l=1, obc%number_of_segments
47 segment => obc%segment(l)
48 if (.not. segment%on_pe) cycle
49 if (segment%gradient) cycle
50 if (segment%oblique .and. .not. segment%nudged .and. .not. segment%Flather) cycle
52 if (segment%is_E_or_W)
then 53 jsd = segment%HI%jsd ; jed = segment%HI%jed
54 isdb = segment%HI%IsdB ; iedb = segment%HI%IedB
56 do j=jsd,jed ;
do i=isdb,iedb
57 if (segment%specified .or. segment%nudged)
then 58 segment%normal_vel(i,j,k) = zonal_flow
60 if (segment%specified)
then 61 segment%normal_trans(i,j,k) = zonal_flow * g%dyCu(i,j)
65 do j=jsd,jed ;
do i=isdb,iedb
66 segment%normal_vel_bt(i,j) = zonal_flow
69 isd = segment%HI%isd ; ied = segment%HI%ied
70 jsdb = segment%HI%JsdB ; jedb = segment%HI%JedB
71 do j=jsdb,jedb ;
do i=isd,ied
72 segment%normal_vel_bt(i,j) = 0.0
77 end subroutine supercritical_set_obc_data
Wraps the FMS time manager functions.
Ocean grid type. See mom_grid for details.
A structure that can be parsed to read and document run-time parameters.
Provides the ocean grid type.
Open boundary segment data structure.
Describes the horizontal ocean grid with only dynamic memory arrays.
The MOM6 facility to parse input files for runtime parameters.
Routines for error handling and I/O management.
An overloaded interface to log version information about modules.
Describes the vertical ocean grid, including unit conversion factors.
Contains a shareable dynamic type for describing horizontal grids and metric data and utilty routines...
Controls where open boundary conditions are applied.
Provides a transparent vertical ocean grid type and supporting routines.
The "super critical" configuration.
An overloaded interface to read and log the values of various types of parameters.