Skip to content

Commit

Permalink
Merge pull request NOAA-EMC#18 from NOAA-GFDL/dev/gfdl
Browse files Browse the repository at this point in the history
Merge in latest dev/gfdl updates
  • Loading branch information
wrongkindofdoctor authored May 17, 2019
2 parents 139ab1f + 82ce6f9 commit f6879f4
Show file tree
Hide file tree
Showing 46 changed files with 818 additions and 676 deletions.
4 changes: 2 additions & 2 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -116,8 +116,8 @@ run:
- time tar zxf $CACHE_DIR/build-intel-repro-$CI_PIPELINE_ID.tgz
- time tar zxf $CACHE_DIR/build-pgi-repro-$CI_PIPELINE_ID.tgz
# time tar zxf $CACHE_DIR/build-gnu-debug-$CI_PIPELINE_ID.tgz
- echo "make -f MRS/Makefile.tests all -B" > job.sh
- msub -l partition=c4,nodes=29,walltime=00:31:00,qos=norm -q debug -S /bin/tcsh -j oe -A gfdl_o -z -o log.$CI_PIPELINE_ID -N mom6_regression -K job.sh
- (echo '#!/bin/tcsh';echo 'make -f MRS/Makefile.tests all -B') > job.sh
- sbatch --clusters=c3,c4 --nodes=29 --time=0:34:00 --account=gfdl_o --qos=debug --job-name=mom6_regressions --output=log.$CI_PIPELINE_ID --wait job.sh
- cat log.$CI_PIPELINE_ID
- test -f restart_results_gnu.tar.gz
- time tar zvcf $CACHE_DIR/results-$CI_PIPELINE_ID.tgz *.tar.gz
Expand Down
2 changes: 1 addition & 1 deletion config_src/coupled_driver/MOM_surface_forcing.F90
Original file line number Diff line number Diff line change
Expand Up @@ -1203,7 +1203,7 @@ subroutine surface_forcing_init(Time, G, US, param_file, diag, CS)
"toward specified values.", default=.false.)
call get_param(param_file, mdl, "RESTORE_TEMPERATURE", CS%restore_temp, &
"If true, the coupled driver will add a \n"//&
"heat flux that drives sea-surface temperauture \n"//&
"heat flux that drives sea-surface temperature \n"//&
"toward specified values.", default=.false.)
call get_param(param_file, mdl, "ADJUST_NET_SRESTORE_TO_ZERO", &
CS%adjust_net_srestore_to_zero, &
Expand Down
2 changes: 1 addition & 1 deletion config_src/mct_driver/MOM_ocean_model.F90
Original file line number Diff line number Diff line change
Expand Up @@ -313,7 +313,7 @@ subroutine ocean_model_init(Ocean_sfc, OS, Time_init, Time_in, gas_fields_ocn, i
"toward specified values.", default=.false.)
call get_param(param_file, mdl, "RESTORE_TEMPERATURE",OS%restore_temp, &
"If true, the coupled driver will add a \n"//&
"heat flux that drives sea-surface temperauture \n"//&
"heat flux that drives sea-surface temperature \n"//&
"toward specified values.", default=.false.)
call get_param(param_file, mdl, "RHO_0", Rho0, &
"The mean ocean density used with BOUSSINESQ true to \n"//&
Expand Down
2 changes: 1 addition & 1 deletion config_src/nuopc_driver/MOM_ocean_model.F90
Original file line number Diff line number Diff line change
Expand Up @@ -334,7 +334,7 @@ subroutine ocean_model_init(Ocean_sfc, OS, Time_init, Time_in, gas_fields_ocn, i
"toward specified values.", default=.false.)
call get_param(param_file, mdl, "RESTORE_TEMPERATURE",OS%restore_temp, &
"If true, the coupled driver will add a \n"//&
"heat flux that drives sea-surface temperauture \n"//&
"heat flux that drives sea-surface temperature \n"//&
"toward specified values.", default=.false.)
call get_param(param_file, mdl, "RHO_0", Rho0, &
"The mean ocean density used with BOUSSINESQ true to \n"//&
Expand Down
4 changes: 2 additions & 2 deletions src/ALE/MOM_ALE.F90
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,7 @@ subroutine ALE_init( param_file, GV, US, max_depth, CS)
trim(remappingSchemesDoc), default=remappingDefaultScheme)
call get_param(param_file, mdl, "FATAL_CHECK_RECONSTRUCTIONS", check_reconstruction, &
"If true, cell-by-cell reconstructions are checked for\n"//&
"consistency and if non-monotonicty or an inconsistency is\n"//&
"consistency and if non-monotonicity or an inconsistency is\n"//&
"detected then a FATAL error is issued.", default=.false.)
call get_param(param_file, mdl, "FATAL_CHECK_REMAPPING", check_remapping, &
"If true, the results of remapping are checked for\n"//&
Expand Down Expand Up @@ -215,7 +215,7 @@ subroutine ALE_init( param_file, GV, US, max_depth, CS)
call get_param(param_file, mdl, "REGRID_FILTER_DEEP_DEPTH", filter_deep_depth, &
"The depth below which full time-filtering is applied with time-scale\n"//&
"REGRID_TIME_SCALE. Between depths REGRID_FILTER_SHALLOW_DEPTH and\n"//&
"REGRID_FILTER_SHALLOW_DEPTH the filter wieghts adopt a cubic profile.", &
"REGRID_FILTER_SHALLOW_DEPTH the filter weights adopt a cubic profile.", &
units="m", default=0., scale=GV%m_to_H)
call set_regrid_params(CS%regridCS, depth_of_time_filter_shallow=filter_shallow_depth, &
depth_of_time_filter_deep=filter_deep_depth)
Expand Down
11 changes: 5 additions & 6 deletions src/ALE/MOM_regridding.F90
Original file line number Diff line number Diff line change
Expand Up @@ -140,8 +140,8 @@ module MOM_regridding
!> Documentation for coordinate options
character(len=*), parameter, public :: regriddingCoordinateModeDoc = &
" LAYER - Isopycnal or stacked shallow water layers\n"//&
" ZSTAR, Z* - stetched geopotential z*\n"//&
" SIGMA_SHELF_ZSTAR - stetched geopotential z* ignoring shelf\n"//&
" ZSTAR, Z* - stretched geopotential z*\n"//&
" SIGMA_SHELF_ZSTAR - stretched geopotential z* ignoring shelf\n"//&
" SIGMA - terrain following coordinates\n"//&
" RHO - continuous isopycnal\n"//&
" HYCOM1 - HyCOM-like hybrid coordinate\n"//&
Expand Down Expand Up @@ -230,8 +230,7 @@ subroutine initialize_regridding(CS, GV, US, max_depth, param_file, mdl, coord_m
if (main_parameters) then
! Read coordinate units parameter (main model = REGRIDDING_COORDINATE_UNITS)
call get_param(param_file, mdl, "REGRIDDING_COORDINATE_UNITS", coord_units, &
"Units of the regridding coordinuate.",& !### Spelling error "coordinuate"
default=coordinateUnits(coord_mode))
"Units of the regridding coordinate.", default=coordinateUnits(coord_mode))
else
coord_units=coordinateUnits(coord_mode)
endif
Expand Down Expand Up @@ -420,7 +419,7 @@ subroutine initialize_regridding(CS, GV, US, max_depth, param_file, mdl, coord_m
call log_param(param_file, mdl, "!"//coord_res_param, dz, &
trim(message), units=coordinateUnits(coord_mode))
call log_param(param_file, mdl, "!TARGET_DENSITIES", rho_target, &
'HYBRID target densities for itnerfaces', units=coordinateUnits(coord_mode))
'HYBRID target densities for interfaces', units=coordinateUnits(coord_mode))
endif
elseif (index(trim(string),'WOA09')==1) then
if (len_trim(string)==5) then
Expand Down Expand Up @@ -503,7 +502,7 @@ subroutine initialize_regridding(CS, GV, US, max_depth, param_file, mdl, coord_m
if (main_parameters .and. coord_is_state_dependent) then
call get_param(param_file, mdl, "REGRID_COMPRESSIBILITY_FRACTION", tmpReal, &
"When interpolating potential density profiles we can add\n"//&
"some artificial compressibility solely to make homogenous\n"//&
"some artificial compressibility solely to make homogeneous\n"//&
"regions appear stratified.", default=0.)
call set_regrid_params(CS, compress_fraction=tmpReal)
endif
Expand Down
4 changes: 2 additions & 2 deletions src/ALE/coord_rho.F90
Original file line number Diff line number Diff line change
Expand Up @@ -286,15 +286,15 @@ subroutine build_rho_column_iteratively(CS, remapCS, nz, depth, h, T, S, eqn_of_
zInterface(1) = 0.
do k = 1,nz
zInterface(k+1) = zInterface(k) - h1(k)
! Adjust interface position to accomodate inflating layers
! Adjust interface position to accommodate inflating layers
! without disturbing the interface above
enddo
else
! The rest of the model defines grids integrating up from the bottom
zInterface(nz+1) = -depth
do k = nz,1,-1
zInterface(k) = zInterface(k+1) + h1(k)
! Adjust interface position to accomodate inflating layers
! Adjust interface position to accommodate inflating layers
! without disturbing the interface above
enddo
endif
Expand Down
2 changes: 1 addition & 1 deletion src/ALE/coord_sigma.F90
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,7 @@ subroutine build_sigma_column(CS, depth, totalThickness, zInterface)
zInterface(CS%nk+1) = -depth
do k = CS%nk,1,-1
zInterface(k) = zInterface(k+1) + (totalThickness * CS%coordinateResolution(k))
! Adjust interface position to accomodate inflating layers
! Adjust interface position to accommodate inflating layers
! without disturbing the interface above
if (zInterface(k) < (zInterface(k+1) + CS%min_thickness)) then
zInterface(k) = zInterface(k+1) + CS%min_thickness
Expand Down
8 changes: 6 additions & 2 deletions src/core/MOM.F90
Original file line number Diff line number Diff line change
Expand Up @@ -1516,7 +1516,7 @@ subroutine initialize_MOM(Time, Time_init, param_file, dirs, CS, restart_CSp, &
count_calls, tracer_flow_CSp)
type(time_type), target, intent(inout) :: Time !< model time, set in this routine
type(time_type), intent(in) :: Time_init !< The start time for the coupled model's calendar
type(param_file_type), intent(out) :: param_file !< structure indicating paramater file to parse
type(param_file_type), intent(out) :: param_file !< structure indicating parameter file to parse
type(directories), intent(out) :: dirs !< structure with directory paths
type(MOM_control_struct), pointer :: CS !< pointer set in this routine to MOM control structure
type(MOM_restart_CS), pointer :: restart_CSp !< pointer set in this routine to the
Expand Down Expand Up @@ -1830,6 +1830,10 @@ subroutine initialize_MOM(Time, Time_init, param_file, dirs, CS, restart_CSp, &
"If true, limit salinity to being positive. (The sea-ice \n"//&
"model may ask for more salt than is available and \n"//&
"drive the salinity negative otherwise.)", default=.false.)
call get_param(param_file, "MOM", "MIN_SALINITY", CS%tv%min_salinity, &
"The minimum value of salinity when BOUND_SALINITY=True. \n"//&
"The default is 0.01 for backward compatibility but ideally \n"//&
"should be 0.", units="PPT", default=0.01, do_not_log=.not.bound_salinity)
call get_param(param_file, "MOM", "C_P", CS%tv%C_p, &
"The heat capacity of sea water, approximated as a \n"//&
"constant. This is only used if ENABLE_THERMODYNAMICS is \n"//&
Expand Down Expand Up @@ -3410,7 +3414,7 @@ end subroutine MOM_end
!! * src/tracer:
!! These files handle the lateral transport and diffusion of
!! tracers, or are the code to implement various passive tracer
!! packages. Additional tracer packages are readily accomodated.
!! packages. Additional tracer packages are readily accommodated.
!!
!! * src/user:
!! These are either stub routines that a user could use to change
Expand Down
4 changes: 2 additions & 2 deletions src/core/MOM_PressureForce_analytic_FV.F90
Original file line number Diff line number Diff line change
Expand Up @@ -831,8 +831,8 @@ subroutine PressureForce_AFV_init(Time, G, GV, US, param_file, diag, CS, tides_C
"The default is set by USE_REGRIDDING.", &
default=use_ALE )
call get_param(param_file, mdl, "PRESSURE_RECONSTRUCTION_SCHEME", CS%Recon_Scheme, &
"Order of vertical reconstruction of T/S to use in the\n"//&
"integrals within the FV pressure gradient calculation."//&
"Order of vertical reconstruction of T/S to use in the \n"//&
"integrals within the FV pressure gradient calculation.\n"//&
" 0: PCM or no reconstruction.\n"//&
" 1: PLM reconstruction.\n"//&
" 2: PPM reconstruction.", default=1)
Expand Down
4 changes: 2 additions & 2 deletions src/core/MOM_PressureForce_blocked_AFV.F90
Original file line number Diff line number Diff line change
Expand Up @@ -823,8 +823,8 @@ subroutine PressureForce_blk_AFV_init(Time, G, GV, US, param_file, diag, CS, tid
"The default is set by USE_REGRIDDING.", &
default=use_ALE )
call get_param(param_file, mdl, "PRESSURE_RECONSTRUCTION_SCHEME", CS%Recon_Scheme, &
"Order of vertical reconstruction of T/S to use in the\n"//&
"integrals within the FV pressure gradient calculation."//&
"Order of vertical reconstruction of T/S to use in the \n"//&
"integrals within the FV pressure gradient calculation.\n"//&
" 0: PCM or no reconstruction.\n"//&
" 1: PLM reconstruction.\n"//&
" 2: PPM reconstruction.", default=1)
Expand Down
8 changes: 4 additions & 4 deletions src/core/MOM_barotropic.F90
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,7 @@ module MOM_barotropic
!! update at the start of a call to btstep. The
!! default is 1.
logical :: BT_project_velocity !< If true, step the barotropic velocity first
!! and project out the velocity tendancy by 1+BEBT
!! and project out the velocity tendency by 1+BEBT
!! when calculating the transport. The default
!! (false) is to use a predictor continuity step to
!! find the pressure field, and then do a corrector
Expand Down Expand Up @@ -3785,7 +3785,7 @@ subroutine barotropic_init(u, v, h, eta, Time, G, GV, US, param_file, diag, CS,
call get_param(param_file, mdl, "BT_CONT_CORR_BOUNDS", CS%BT_cont_bounds, &
"If true, and BOUND_BT_CORRECTION is true, use the \n"//&
"BT_cont_type variables to set limits determined by \n"//&
"MAXCFL_BT_CONT on the CFL number of the velocites \n"//&
"MAXCFL_BT_CONT on the CFL number of the velocities \n"//&
"that are likely to be driven by the corrective mass fluxes.", &
default=.true.) !, do_not_log=.not.CS%bound_BT_corr)
call get_param(param_file, mdl, "ADJUST_BT_CONT", CS%adjust_BT_cont, &
Expand Down Expand Up @@ -3846,7 +3846,7 @@ subroutine barotropic_init(u, v, h, eta, Time, G, GV, US, param_file, diag, CS,
units="nondim", default=1)
call get_param(param_file, mdl, "BT_PROJECT_VELOCITY", CS%BT_project_velocity,&
"If true, step the barotropic velocity first and project \n"//&
"out the velocity tendancy by 1+BEBT when calculating the \n"//&
"out the velocity tendency by 1+BEBT when calculating the \n"//&
"transport. The default (false) is to use a predictor \n"//&
"continuity step to find the pressure field, and then \n"//&
"to do a corrector continuity step using a weighted \n"//&
Expand Down Expand Up @@ -3917,7 +3917,7 @@ subroutine barotropic_init(u, v, h, eta, Time, G, GV, US, param_file, diag, CS,
"barotropic steps.", default=.false.)
call get_param(param_file, mdl, "BT_LINEAR_WAVE_DRAG", CS%linear_wave_drag, &
"If true, apply a linear drag to the barotropic velocities, \n"//&
"using rates set by lin_drag_u & _vdivided by the depth of \n"//&
"using rates set by lin_drag_u & _v divided by the depth of \n"//&
"the ocean. This was introduced to facilitate tide modeling.", &
default=.false.)
call get_param(param_file, mdl, "BT_WAVE_DRAG_FILE", wave_drag_file, &
Expand Down
2 changes: 1 addition & 1 deletion src/core/MOM_continuity_PPM.F90
Original file line number Diff line number Diff line change
Expand Up @@ -2264,7 +2264,7 @@ subroutine continuity_PPM_init(Time, G, GV, param_file, diag, CS)
call get_param(param_file, mdl, "SIMPLE_2ND_PPM_CONTINUITY", CS%simple_2nd, &
"If true, CONTINUITY_PPM uses a simple 2nd order \n"//&
"(arithmetic mean) interpolation of the edge values. \n"//&
"This may give better PV conservation propterties. While \n"//&
"This may give better PV conservation properties. While \n"//&
"it formally reduces the accuracy of the continuity \n"//&
"solver itself in the strongly advective limit, it does \n"//&
"not reduce the overall order of accuracy of the dynamic \n"//&
Expand Down
5 changes: 3 additions & 2 deletions src/core/MOM_open_boundary.F90
Original file line number Diff line number Diff line change
Expand Up @@ -305,8 +305,9 @@ subroutine open_boundary_config(G, US, param_file, OBC)
real :: Lscale_in, Lscale_out ! parameters controlling tracer values at the boundaries
allocate(OBC)

call log_version(param_file, mdl, version, "Controls where open boundaries are located, what "//&
"kind of boundary condition to impose, and what data to apply, if any.")
call log_version(param_file, mdl, version, &
"Controls where open boundaries are located, what kind of boundary condition \n"//&
"to impose, and what data to apply, if any.")
call get_param(param_file, mdl, "OBC_NUMBER_OF_SEGMENTS", OBC%number_of_segments, &
"The number of open boundary segments.", &
default=0)
Expand Down
11 changes: 7 additions & 4 deletions src/core/MOM_variables.F90
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,7 @@ module MOM_variables
!> Pointers to an assortment of thermodynamic fields that may be available, including
!! potential temperature, salinity, heat capacity, and the equation of state control structure.
type, public :: thermo_var_ptrs
! If allocated, the following variables have nz layers.
! If allocated, the following variables have nz layers.
real, pointer :: T(:,:,:) => NULL() !< Potential temperature [degC].
real, pointer :: S(:,:,:) => NULL() !< Salnity [PSU] or [gSalt/kg], generically [ppt].
type(EOS_type), pointer :: eqn_of_state => NULL() !< Type that indicates the
Expand All @@ -95,14 +95,16 @@ module MOM_variables
!! actually the conservative temperature [degC].
logical :: S_is_absS = .false. !< If true, the salinity variable tv%S is
!! actually the absolute salinity in units of [gSalt/kg].
! These arrays are accumulated fluxes for communication with other components.
real :: min_salinity = 0.01 !< The minimum value of salinity when BOUND_SALINITY=True [ppt].
!! The default is 0.01 for backward compatibility but should be 0.
! These arrays are accumulated fluxes for communication with other components.
real, dimension(:,:), pointer :: frazil => NULL()
!< The energy needed to heat the ocean column to the
!! freezing point since calculate_surface_state was2
!! last called [J m-2].
real, dimension(:,:), pointer :: salt_deficit => NULL()
!< The salt needed to maintain the ocean column
!! at a minumum salinity of 0.01 PSU since the last time
!! at a minimum salinity of MIN_SALINITY since the last time
!! that calculate_surface_state was called, [gSalt m-2].
real, dimension(:,:), pointer :: TempxPmE => NULL()
!< The net inflow of water into the ocean times the
Expand Down Expand Up @@ -206,7 +208,8 @@ module MOM_variables
ustar_BBL => NULL() !< The turbulence velocity in the bottom boundary layer at h points [Z s-1 ~> m s-1].
real, pointer, dimension(:,:) :: TKE_BBL => NULL()
!< A term related to the bottom boundary layer source of turbulent kinetic
!! energy, currently in [m3 s-3], but will later be changed to [W m-2].
!! energy, currently in [Z3 T-3 ~> m3 s-3], but may at some time be changed
!! to [kg Z3 m-3 T-3 ~> W m-2].
real, pointer, dimension(:,:) :: &
taux_shelf => NULL(), & !< The zonal stresses on the ocean under shelves [Pa].
tauy_shelf => NULL() !< The meridional stresses on the ocean under shelves [Pa].
Expand Down
4 changes: 2 additions & 2 deletions src/core/MOM_verticalGrid.F90
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ module MOM_verticalGrid
g_prime, & !< The reduced gravity at each interface [m2 Z-1 s-2 ~> m s-2].
Rlay !< The target coordinate value (potential density) in each layer [kg m-3].
integer :: nkml = 0 !< The number of layers at the top that should be treated
!! as parts of a homogenous region.
!! as parts of a homogeneous region.
integer :: nk_rho_varies = 0 !< The number of layers at the top where the
!! density does not track any target density.
real :: H_to_kg_m2 !< A constant that translates thicknesses from the units of thickness to kg m-2.
Expand Down Expand Up @@ -100,7 +100,7 @@ subroutine verticalGridInit( param_file, GV, US )
call get_param(param_file, mdl, "BOUSSINESQ", GV%Boussinesq, &
"If true, make the Boussinesq approximation.", default=.true.)
call get_param(param_file, mdl, "ANGSTROM", GV%Angstrom_m, &
"The minumum layer thickness, usually one-Angstrom.", &
"The minimum layer thickness, usually one-Angstrom.", &
units="m", default=1.0e-10)
call get_param(param_file, mdl, "H_RESCALE_POWER", H_power, &
"An integer power of 2 that is used to rescale the model's \n"//&
Expand Down
Loading

0 comments on commit f6879f4

Please sign in to comment.