Skip to content

Commit

Permalink
Merge pull request #52 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 Mar 16, 2020
2 parents 8d7be68 + d5e3866 commit c245357
Show file tree
Hide file tree
Showing 50 changed files with 98 additions and 90 deletions.
2 changes: 2 additions & 0 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ gnu:ocean-only-nolibs:
- make -f MRS/Makefile.build build/gnu/env && cd build/gnu
# mkdir -p build/gnu/repro/symmetric_dynamic/ocean_only && cd build/gnu/repro/symmetric_dynamic/ocean_only
- ../../MOM6-examples/src/mkmf/bin/list_paths -l ../../../config_src/{solo_driver,dynamic_symmetric} ../../../src ../../MOM6-examples/src/FMS
- sed -i '/FMS\/.*\/test_/d' path_names
- ../../MOM6-examples/src/mkmf/bin/mkmf -t ../../MOM6-examples/src/mkmf/templates/ncrc-gnu.mk -p MOM6 -c"-Duse_libMPI -Duse_netCDF" path_names
- time (source ./env ; make NETCDF=3 REPRO=1 MOM6 -s -j)

Expand All @@ -75,6 +76,7 @@ gnu:ice-ocean-nolibs:
- make -f MRS/Makefile.build build/gnu/env && cd build/gnu
# mkdir -p build/gnu/repro/symmetric_dynamic/ocean_only && cd build/gnu/repro/symmetric_dynamic/ocean_only
- ../../MOM6-examples/src/mkmf/bin/list_paths -l ../../../config_src/{coupled_driver,dynamic} ../../../src ../../MOM6-examples/src/{FMS,coupler,SIS2,icebergs,ice_param,land_null,atmos_null}
- sed -i '/FMS\/.*\/test_/d' path_names
- ../../MOM6-examples/src/mkmf/bin/mkmf -t ../../MOM6-examples/src/mkmf/templates/ncrc-gnu.mk -p MOM6 -c"-Duse_libMPI -Duse_netCDF -D_USE_LEGACY_LAND_ -Duse_AM3_physics" path_names
- time (source ./env ; make NETCDF=3 REPRO=1 MOM6 -s -j)

Expand Down
2 changes: 1 addition & 1 deletion config_src/solo_driver/MOM_surface_forcing.F90
Original file line number Diff line number Diff line change
Expand Up @@ -207,7 +207,7 @@ module MOM_surface_forcing
type(Neverland_surface_forcing_CS), pointer :: Neverland_forcing_CSp => NULL()
type(idealized_hurricane_CS), pointer :: idealized_hurricane_CSp => NULL()
type(SCM_CVmix_tests_CS), pointer :: SCM_CVmix_tests_CSp => NULL()
!!@}
!>@}

end type surface_forcing_CS

Expand Down
2 changes: 1 addition & 1 deletion src/ALE/regrid_interp.F90
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ module regrid_interp
!>@{ Interpolant degrees
integer, parameter :: DEGREE_1 = 1, DEGREE_2 = 2, DEGREE_3 = 3, DEGREE_4 = 4
integer, public, parameter :: DEGREE_MAX = 5
!!@}
!>@}

!> When the N-R algorithm produces an estimate that lies outside [0,1], the
!! estimate is set to be equal to the boundary location, 0 or 1, plus or minus
Expand Down
5 changes: 3 additions & 2 deletions src/core/MOM.F90
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,8 @@ module MOM
!> A structure with diagnostic IDs of the state variables
type MOM_diag_IDs
!>@{ 3-d state field diagnostic IDs
integer :: id_u = -1, id_v = -1, id_h = -1 !!@}
integer :: id_u = -1, id_v = -1, id_h = -1
!>@}
!> 2-d state field diagnotic ID
integer :: id_ssh_inst = -1
end type MOM_diag_IDs
Expand Down Expand Up @@ -389,7 +390,7 @@ module MOM
integer :: id_clock_ALE
integer :: id_clock_other
integer :: id_clock_offline_tracer
!!@}
!>@}

contains

Expand Down
9 changes: 5 additions & 4 deletions src/core/MOM_CoriolisAdv.F90
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,8 @@ module MOM_CoriolisAdv
type(diag_ctrl), pointer :: diag !< A structure that is used to regulate the timing of diagnostic output.
!>@{ Diagnostic IDs
integer :: id_rv = -1, id_PV = -1, id_gKEu = -1, id_gKEv = -1
integer :: id_rvxu = -1, id_rvxv = -1 !!@}
integer :: id_rvxu = -1, id_rvxv = -1
!>@}
end type CoriolisAdv_CS

!>@{ Enumeration values for Coriolis_Scheme
Expand All @@ -89,21 +90,21 @@ module MOM_CoriolisAdv
character*(20), parameter :: SADOURNY75_ENSTRO_STRING = "SADOURNY75_ENSTRO"
character*(20), parameter :: ARAKAWA_LAMB_STRING = "ARAKAWA_LAMB81"
character*(20), parameter :: AL_BLEND_STRING = "ARAKAWA_LAMB_BLEND"
!!@}
!>@}
!>@{ Enumeration values for KE_Scheme
integer, parameter :: KE_ARAKAWA = 10
integer, parameter :: KE_SIMPLE_GUDONOV = 11
integer, parameter :: KE_GUDONOV = 12
character*(20), parameter :: KE_ARAKAWA_STRING = "KE_ARAKAWA"
character*(20), parameter :: KE_SIMPLE_GUDONOV_STRING = "KE_SIMPLE_GUDONOV"
character*(20), parameter :: KE_GUDONOV_STRING = "KE_GUDONOV"
!!@}
!>@}
!>@{ Enumeration values for PV_Adv_Scheme
integer, parameter :: PV_ADV_CENTERED = 21
integer, parameter :: PV_ADV_UPWIND1 = 22
character*(20), parameter :: PV_ADV_CENTERED_STRING = "PV_ADV_CENTERED"
character*(20), parameter :: PV_ADV_UPWIND1_STRING = "PV_ADV_UPWIND1"
!!@}
!>@}

contains

Expand Down
2 changes: 1 addition & 1 deletion src/core/MOM_PressureForce_Montgomery.F90
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ module MOM_PressureForce_Mont
!! deriving from density gradients within layers [L T-2 ~> m s-2].
!>@{ Diagnostic IDs
integer :: id_PFu_bc = -1, id_PFv_bc = -1, id_e_tidal = -1
!!@}
!>@}
type(tidal_forcing_CS), pointer :: tides_CSp => NULL() !< The tidal forcing control structure
end type PressureForce_Mont_CS

Expand Down
16 changes: 8 additions & 8 deletions src/core/MOM_barotropic.F90
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ module MOM_barotropic
!>@{ Index ranges for the open boundary conditions
integer :: is_u_obc, ie_u_obc, js_u_obc, je_u_obc
integer :: is_v_obc, ie_v_obc, js_v_obc, je_v_obc
!!@}
!>@}
logical :: is_alloced = .false. !< True if BT_OBC is in use and has been allocated

type(group_pass_type) :: pass_uv !< Structure for group halo pass
Expand Down Expand Up @@ -273,10 +273,10 @@ module MOM_barotropic
type(time_type), pointer :: Time => NULL() !< A pointer to the ocean models clock.
type(diag_ctrl), pointer :: diag => NULL() !< A structure that is used to regulate
!! the timing of diagnostic output.
type(MOM_domain_type), pointer :: BT_Domain => NULL()
type(MOM_domain_type), pointer :: BT_Domain => NULL() !< Barotropic MOM domain
type(hor_index_type), pointer :: debug_BT_HI => NULL() !< debugging copy of horizontal index_type
type(tidal_forcing_CS), pointer :: tides_CSp => NULL()
logical :: module_is_initialized = .false.
type(tidal_forcing_CS), pointer :: tides_CSp => NULL() !< Control structure for tides
logical :: module_is_initialized = .false. !< If true, module has been initialized

integer :: isdw !< The lower i-memory limit for the wide halo arrays.
integer :: iedw !< The upper i-memory limit for the wide halo arrays.
Expand Down Expand Up @@ -312,7 +312,7 @@ module MOM_barotropic
integer :: id_BTC_FA_v_NN = -1, id_BTC_FA_v_N0 = -1, id_BTC_FA_v_S0 = -1, id_BTC_FA_v_SS = -1
integer :: id_BTC_vbt_NN = -1, id_BTC_vbt_SS = -1
integer :: id_uhbt0 = -1, id_vhbt0 = -1
!!@}
!>@}

end type barotropic_CS

Expand Down Expand Up @@ -360,14 +360,14 @@ module MOM_barotropic
type, private :: memory_size_type
!>@{ Currently active memory limits
integer :: isdw, iedw, jsdw, jedw ! The memory limits of the wide halo arrays.
!!@}
!>@}
end type memory_size_type

!>@{ CPU time clock IDs
integer :: id_clock_sync=-1, id_clock_calc=-1
integer :: id_clock_calc_pre=-1, id_clock_calc_post=-1
integer :: id_clock_pass_step=-1, id_clock_pass_pre=-1, id_clock_pass_post=-1
!!@}
!>@}

!>@{ Enumeration values for various schemes
integer, parameter :: HARMONIC = 1
Expand All @@ -379,7 +379,7 @@ module MOM_barotropic
character*(20), parameter :: HARMONIC_STRING = "HARMONIC"
character*(20), parameter :: ARITHMETIC_STRING = "ARITHMETIC"
character*(20), parameter :: BT_CONT_STRING = "FROM_BT_CONT"
!!@}
!>@}

contains

Expand Down
2 changes: 1 addition & 1 deletion src/core/MOM_boundary_update.F90
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ module MOM_boundary_update
type(tidal_bay_OBC_CS), pointer :: tidal_bay_OBC_CSp => NULL()
type(shelfwave_OBC_CS), pointer :: shelfwave_OBC_CSp => NULL()
type(dyed_channel_OBC_CS), pointer :: dyed_channel_OBC_CSp => NULL()
!!@}
!>@}
end type update_OBC_CS

integer :: id_clock_pass !< A CPU time clock ID
Expand Down
4 changes: 2 additions & 2 deletions src/core/MOM_continuity_PPM.F90
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ module MOM_continuity_PPM

!>@{ CPU time clock IDs
integer :: id_clock_update, id_clock_correct
!!@}
!>@}

!> Control structure for mom_continuity_ppm
type, public :: continuity_PPM_CS ; private
Expand Down Expand Up @@ -66,7 +66,7 @@ module MOM_continuity_PPM
type :: loop_bounds_type ; private
!>@{ Loop bounds
integer :: ish, ieh, jsh, jeh
!!@}
!>@}
end type loop_bounds_type

contains
Expand Down
4 changes: 2 additions & 2 deletions src/core/MOM_dynamics_split_RK2.F90
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@ module MOM_dynamics_split_RK2
! Split scheme only.
integer :: id_uav = -1, id_vav = -1
integer :: id_u_BT_accel = -1, id_v_BT_accel = -1
!!@}
!>@}

type(diag_ctrl), pointer :: diag !< A structure that is used to regulate the
!! timing of diagnostic output.
Expand Down Expand Up @@ -227,7 +227,7 @@ module MOM_dynamics_split_RK2
integer :: id_clock_continuity, id_clock_thick_diff
integer :: id_clock_btstep, id_clock_btcalc, id_clock_btforce
integer :: id_clock_pass, id_clock_pass_init
!!@}
!>@}

contains

Expand Down
4 changes: 2 additions & 2 deletions src/core/MOM_dynamics_unsplit.F90
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ module MOM_dynamics_unsplit
!>@{ Diagnostic IDs
integer :: id_uh = -1, id_vh = -1
integer :: id_PFu = -1, id_PFv = -1, id_CAu = -1, id_CAv = -1
!!@}
!>@}

type(diag_ctrl), pointer :: diag => NULL() !< A structure that is used to
!! regulate the timing of diagnostic output.
Expand Down Expand Up @@ -174,7 +174,7 @@ module MOM_dynamics_unsplit
integer :: id_clock_Cor, id_clock_pres, id_clock_vertvisc
integer :: id_clock_continuity, id_clock_horvisc, id_clock_mom_update
integer :: id_clock_pass, id_clock_pass_init
!!@}
!>@}

contains

Expand Down
4 changes: 2 additions & 2 deletions src/core/MOM_dynamics_unsplit_RK2.F90
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ module MOM_dynamics_unsplit_RK2
!>@{ Diagnostic IDs
integer :: id_uh = -1, id_vh = -1
integer :: id_PFu = -1, id_PFv = -1, id_CAu = -1, id_CAv = -1
!!@}
!>@}

type(diag_ctrl), pointer :: diag => NULL() !< A structure that is used to
!! regulate the timing of diagnostic output.
Expand Down Expand Up @@ -178,7 +178,7 @@ module MOM_dynamics_unsplit_RK2
integer :: id_clock_Cor, id_clock_pres, id_clock_vertvisc
integer :: id_clock_horvisc, id_clock_continuity, id_clock_mom_update
integer :: id_clock_pass, id_clock_pass_init
!!@}
!>@}

contains

Expand Down
2 changes: 1 addition & 1 deletion src/core/MOM_forcing_type.F90
Original file line number Diff line number Diff line change
Expand Up @@ -327,7 +327,7 @@ module MOM_forcing_type
! Iceberg + Ice shelf diagnostic handles
integer :: id_ustar_ice_cover = -1
integer :: id_frac_ice_cover = -1
!!@}
!>@}

integer :: id_clock_forcing = -1 !< CPU clock id

Expand Down
8 changes: 5 additions & 3 deletions src/diagnostics/MOM_diagnostics.F90
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,8 @@ module MOM_diagnostics
integer :: id_pbo = -1
integer :: id_thkcello = -1, id_rhoinsitu = -1
integer :: id_rhopot0 = -1, id_rhopot2 = -1
integer :: id_h_pre_sync = -1 !!@}
integer :: id_h_pre_sync = -1
!>@}
!> The control structure for calculating wave speed.
type(wave_speed_CS), pointer :: wave_speed_CSp => NULL()

Expand Down Expand Up @@ -168,7 +169,7 @@ module MOM_diagnostics
integer :: id_salt_deficit = -1
integer :: id_Heat_PmE = -1
integer :: id_intern_heat = -1
!!@}
!>@}
end type surface_diag_IDs


Expand All @@ -177,7 +178,8 @@ module MOM_diagnostics
!>@{ Diagnostics for tracer horizontal transport
integer :: id_uhtr = -1, id_umo = -1, id_umo_2d = -1
integer :: id_vhtr = -1, id_vmo = -1, id_vmo_2d = -1
integer :: id_dynamics_h = -1, id_dynamics_h_tendency = -1 !!@}
integer :: id_dynamics_h = -1, id_dynamics_h_tendency = -1
!>@}
end type transport_diag_IDs


Expand Down
2 changes: 1 addition & 1 deletion src/equation_of_state/MOM_EOS_NEMO.F90
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,7 @@ module MOM_EOS_NEMO
real, parameter :: BET102 = 6.2255521644e-02
real, parameter :: BET012 = -2.6514181169e-03
real, parameter :: BET003 = -2.3025968587e-04
!!@}
!>@}

contains

Expand Down
2 changes: 1 addition & 1 deletion src/equation_of_state/MOM_EOS_UNESCO.F90
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ module MOM_EOS_UNESCO
Sp30 = 1.956415e-6, Sp01 = 6.704388e-3, Sp11 = -1.847318e-4, Sp21 = 2.059331e-7, &
Sp032 = 1.480266e-4, SP000 = 2.102898e-4, SP010 = -1.202016e-5, SP020 = 1.394680e-7, &
SP001 = -2.040237e-6, SP011 = 6.128773e-8, SP021 = 6.207323e-10
!!@}
!>@}

contains

Expand Down
2 changes: 1 addition & 1 deletion src/equation_of_state/MOM_EOS_Wright.F90
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ module MOM_EOS_Wright
real, parameter :: b3 = 2.084372e2, b4 = 5.944068e5, b5 = -9.643486e3
real, parameter :: c0 = 1.704853e5, c1 = 7.904722e2, c2 = -7.984422 ! c0/c1 ~= 216 ; c0/c4 ~= -740
real, parameter :: c3 = 5.140652e-2, c4 = -2.302158e2, c5 = -3.079464
!!@}
!>@}

contains

Expand Down
15 changes: 8 additions & 7 deletions src/framework/MOM_diag_mediator.F90
Original file line number Diff line number Diff line change
Expand Up @@ -216,7 +216,7 @@ module MOM_diag_mediator
type(axes_grp) :: axesB1, axesT1, axesCu1, axesCv1
type(axes_grp), dimension(:), allocatable :: remap_axesTL, remap_axesBL, remap_axesCuL, remap_axesCvL
type(axes_grp), dimension(:), allocatable :: remap_axesTi, remap_axesBi, remap_axesCui, remap_axesCvi
!!@}
!>@}

real, dimension(:,:), pointer :: mask2dT => null() !< 2D mask array for cell-center points
real, dimension(:,:), pointer :: mask2dBu => null() !< 2D mask array for cell-corner points
Expand All @@ -231,7 +231,7 @@ module MOM_diag_mediator
real, dimension(:,:,:), pointer :: mask3dBi => null()
real, dimension(:,:,:), pointer :: mask3dCui => null()
real, dimension(:,:,:), pointer :: mask3dCvi => null()
!!@}
!>@}
end type diagcs_dsamp

!> The following data type a list of diagnostic fields an their variants,
Expand Down Expand Up @@ -264,7 +264,7 @@ module MOM_diag_mediator
type(axes_grp) :: axesBL, axesTL, axesCuL, axesCvL
type(axes_grp) :: axesBi, axesTi, axesCui, axesCvi
type(axes_grp) :: axesB1, axesT1, axesCu1, axesCv1
!!@}
!>@}
type(axes_grp) :: axesZi !< A 1-D z-space axis at interfaces
type(axes_grp) :: axesZL !< A 1-D z-space axis at layer centers
type(axes_grp) :: axesNull !< An axis group for scalars
Expand All @@ -285,7 +285,7 @@ module MOM_diag_mediator

type(diagcs_dsamp), dimension(2:MAX_DSAMP_LEV) :: dsamp !< Downsample control container

!!@}
!>@}

! Space for diagnostics is dynamically allocated as it is needed.
! The chunk size is how much the array should grow on each new allocation.
Expand All @@ -306,10 +306,10 @@ module MOM_diag_mediator
type(axes_grp), dimension(:), allocatable :: &
remap_axesZL, & !< The 1-D z-space cell-centered axis for remapping
remap_axesZi !< The 1-D z-space interface axis for remapping
!!@{
!>@{ Axes used for remapping
type(axes_grp), dimension(:), allocatable :: remap_axesTL, remap_axesBL, remap_axesCuL, remap_axesCvL
type(axes_grp), dimension(:), allocatable :: remap_axesTi, remap_axesBi, remap_axesCui, remap_axesCvi
!!@}
!>@}

! Pointer to H, G and T&S needed for remapping
real, dimension(:,:,:), pointer :: h => null() !< The thicknesses needed for remapping
Expand All @@ -334,8 +334,9 @@ module MOM_diag_mediator

end type diag_ctrl

! CPU clocks
!>@{ CPU clocks
integer :: id_clock_diag_mediator, id_clock_diag_remap, id_clock_diag_grid_updates
!>@}

contains

Expand Down
2 changes: 1 addition & 1 deletion src/framework/MOM_file_parser.F90
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ module MOM_file_parser
logical, parameter :: log_to_stdout_default = .false.
logical, parameter :: complete_doc_default = .true.
logical, parameter :: minimal_doc_default = .true.
!!@}
!>@}

!> The valid lines extracted from an input parameter file without comments
type, private :: file_data_type ; private
Expand Down
8 changes: 4 additions & 4 deletions src/framework/MOM_horizontal_regridding.F90
Original file line number Diff line number Diff line change
Expand Up @@ -60,10 +60,10 @@ module MOM_horizontal_regridding
subroutine myStats(array, missing, is, ie, js, je, k, mesg)
real, dimension(:,:), intent(in) :: array !< input array (ND)
real, intent(in) :: missing !< missing value (ND)
!!@{
!> Horizontal loop bounds to calculate statistics for
integer :: is,ie,js,je
!!@}
integer :: is !< Start index in i
integer :: ie !< End index in i
integer :: js !< Start index in j
integer :: je !< End index in j
integer :: k !< Level to calculate statistics for
character(len=*) :: mesg !< Label to use in message
! Local variables
Expand Down
2 changes: 1 addition & 1 deletion src/framework/MOM_restart.F90
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ module MOM_restart
type(p2d), pointer :: var_ptr2d(:) => NULL()
type(p3d), pointer :: var_ptr3d(:) => NULL()
type(p4d), pointer :: var_ptr4d(:) => NULL()
!!@}
!>@}
integer :: max_fields !< The maximum number of restart fields
end type MOM_restart_CS

Expand Down
Loading

0 comments on commit c245357

Please sign in to comment.