diff --git a/modulefiles/module_base.hera b/modulefiles/module_base.hera index 77278a4ea11..de89fbf9547 100644 --- a/modulefiles/module_base.hera +++ b/modulefiles/module_base.hera @@ -4,15 +4,17 @@ ## # Modules availble through hpc-stack - module use /scratch2/NCEPDEV/nwprod/hpc-stack/libs/hpc-stack/modulefiles/stack +module use /scratch2/NCEPDEV/nwprod/hpc-stack/libs/hpc-stack/modulefiles/stack module load hpc/1.1.0 module load hpc-intel/18.0.5.274 module load hpc-impi/2018.0.4 +# use shared memory and OpenFabrics Alliance (OFA) fabric with Intel MPI to circumvent RDMA-related bug in DAPL. +setenv I_MPI_FABRICS shm:ofa # Non-MPI -module load g2/3.4.1 -module load g2tmpl/1.9.1 +module load g2/3.4.2 +module load g2tmpl/1.10.0 module load grib_util/1.2.2 module load crtm/2.3.0 module load prod_util/1.2.2 @@ -30,7 +32,7 @@ module load png/1.6.35 # MPI module load netcdf/4.7.4 module load hdf5/1.10.6 -module load esmf/8_1_0_beta_snapshot_27 +module load esmf/8_1_1 module load w3emc/2.7.3 module load wgrib2/2.0.8 setenv "WGRIB2" "wgrib2" diff --git a/modulefiles/module_base.orion b/modulefiles/module_base.orion index 9fbc6a081b4..86a8ce419ae 100644 --- a/modulefiles/module_base.orion +++ b/modulefiles/module_base.orion @@ -20,8 +20,8 @@ module load hpc-intel/2018.4 module load hpc-impi/2018.4 # Non-MPI -module load g2/3.4.1 -module load g2tmpl/1.9.1 +module load g2/3.4.2 +module load g2tmpl/1.10.0 module load grib_util/1.2.2 module load crtm 2.3.0 module load prod_util/1.2.2 @@ -38,7 +38,7 @@ module load png/1.6.35 # MPI module load netcdf/4.7.4 module load hdf5/1.10.6 -module load esmf/8_1_0_beta_snapshot_27 +module load esmf/8_1_1 module load w3emc/2.7.3 module load wgrib2/2.0.8 setenv WGRIB2 wgrib2 diff --git a/modulefiles/module_base.wcoss_dell_p3 b/modulefiles/module_base.wcoss_dell_p3 index a651cb86c0c..e53199967c8 100755 --- a/modulefiles/module_base.wcoss_dell_p3 +++ b/modulefiles/module_base.wcoss_dell_p3 @@ -11,8 +11,8 @@ module load CFP/2.0.2 setenv USE_CFP YES # Non-MPI -module load g2/3.4.1 -module load g2tmpl/1.9.1 +module load g2/3.4.2 +module load g2tmpl/1.10.0 module load grib_util/1.2.2 module load crtm 2.3.0 module load prod_util/1.2.2 @@ -28,7 +28,7 @@ module load png/1.6.35 # MPI module load netcdf/4.7.4 module load hdf5/1.10.6 -module load esmf/8_1_0_beta_snapshot_27 +module load esmf/8_1_1 module load w3emc/2.7.3 module load wgrib2/2.0.8 setenv WGRIB2 wgrib2 diff --git a/modulefiles/modulefile.ww3.hera b/modulefiles/modulefile.ww3.hera index 59bacd17471..462d7a9dac5 100644 --- a/modulefiles/modulefile.ww3.hera +++ b/modulefiles/modulefile.ww3.hera @@ -15,3 +15,5 @@ module load png/1.6.35 module load bacio/2.4.1 module load g2/3.4.1 + +module load netcdf/4.7.4 diff --git a/modulefiles/modulefile.ww3.orion b/modulefiles/modulefile.ww3.orion index 36774389891..1702532b716 100644 --- a/modulefiles/modulefile.ww3.orion +++ b/modulefiles/modulefile.ww3.orion @@ -16,3 +16,5 @@ module load png/1.6.35 module load bacio/2.4.1 module load g2/3.4.1 + +module load netcdf/4.7.4 diff --git a/modulefiles/modulefile.ww3.wcoss_dell_p3 b/modulefiles/modulefile.ww3.wcoss_dell_p3 index ab43f602bf5..edb57b9fd24 100644 --- a/modulefiles/modulefile.ww3.wcoss_dell_p3 +++ b/modulefiles/modulefile.ww3.wcoss_dell_p3 @@ -11,3 +11,5 @@ module load png/1.6.35 module load bacio/2.4.1 module load g2/3.4.1 + +module load netcdf/4.7.4 diff --git a/parm/chem/gocart_tracer.list b/parm/chem/gocart_tracer.list index 871a41eedb7..8b0202e2c4e 100644 --- a/parm/chem/gocart_tracer.list +++ b/parm/chem/gocart_tracer.list @@ -1,9 +1,7 @@ so2 -sulf +so4 dms msa -pp25 -pp10 bc1 bc2 oc1 @@ -17,4 +15,11 @@ seas1 seas2 seas3 seas4 -seas5 \ No newline at end of file +seas5 +nh3 +nh4a +no3an1 +no3an2 +no3an3 +pm25 +pm10 diff --git a/parm/mom6/MOM_input_template_025 b/parm/mom6/MOM_input_template_025 index aa1da780298..1340db5b66b 100644 --- a/parm/mom6/MOM_input_template_025 +++ b/parm/mom6/MOM_input_template_025 @@ -148,6 +148,8 @@ TOPO_FILE = "ocean_topog.nc" ! default = "topog.nc" ! The file from which the bathymetry is read. TOPO_EDITS_FILE = "All_edits.nc" ! default = "" ! The file from which to read a list of i,j,z topography overrides. +ALLOW_LANDMASK_CHANGES = MOM6_ALLOW_LANDMASK_CHANGES ! default = "False" + ! If true, allow topography overrides to change ocean points to land MAXIMUM_DEPTH = 6500.0 ! [m] ! The maximum depth of the ocean. MINIMUM_DEPTH = 9.5 ! [m] default = 0.0 diff --git a/parm/mom6/MOM_input_template_050 b/parm/mom6/MOM_input_template_050 index 46780dfc822..ceff6e98d43 100644 --- a/parm/mom6/MOM_input_template_050 +++ b/parm/mom6/MOM_input_template_050 @@ -147,6 +147,8 @@ TOPO_CONFIG = "file" ! ! USER - call a user modified routine. TOPO_FILE = "ocean_topog.nc" ! default = "topog.nc" ! The file from which the bathymetry is read. +ALLOW_LANDMASK_CHANGES = MOM6_ALLOW_LANDMASK_CHANGES ! default = "False" + ! If true, allow topography overrides to change ocean points to land MAXIMUM_DEPTH = 6500.0 ! [m] ! The maximum depth of the ocean. MINIMUM_DEPTH = 9.5 ! [m] default = 0.0 diff --git a/parm/mom6/MOM_input_template_100 b/parm/mom6/MOM_input_template_100 index d5af4cccd21..24ea3c7c47a 100644 --- a/parm/mom6/MOM_input_template_100 +++ b/parm/mom6/MOM_input_template_100 @@ -140,6 +140,8 @@ TOPO_CONFIG = "file" ! ! USER - call a user modified routine. TOPO_EDITS_FILE = "topo_edits_011818.nc" ! default = "" ! The file from which to read a list of i,j,z topography overrides. +ALLOW_LANDMASK_CHANGES = MOM6_ALLOW_LANDMASK_CHANGES ! default = "False" + ! If true, allow topography overrides to change ocean points to land MAXIMUM_DEPTH = 6500.0 ! [m] ! The maximum depth of the ocean. MINIMUM_DEPTH = 9.5 ! [m] default = 0.0 diff --git a/parm/parm_fv3diag/diag_table_aer b/parm/parm_fv3diag/diag_table_aer index 2a7ba17e0db..f2617c1c560 100644 --- a/parm/parm_fv3diag/diag_table_aer +++ b/parm/parm_fv3diag/diag_table_aer @@ -123,7 +123,7 @@ # chemical tracers advected by FV3 ### "gfs_dyn", "so2", "so2", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "sulf", "sulf", "fv3_history", "all", .false., "none", 2 +"gfs_dyn", "so4", "so4", "fv3_history", "all", .false., "none", 2 "gfs_dyn", "dms", "dms", "fv3_history", "all", .false., "none", 2 "gfs_dyn", "msa", "msa", "fv3_history", "all", .false., "none", 2 "gfs_dyn", "bc1", "bc1", "fv3_history", "all", .false., "none", 2 @@ -145,8 +145,8 @@ "gfs_dyn", "no3an1", "no3an1", "fv3_history", "all", .false., "none", 2 "gfs_dyn", "no3an2", "no3an2", "fv3_history", "all", .false., "none", 2 "gfs_dyn", "no3an3", "no3an3", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "pp25", "pp25", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "pp10", "pp10", "fv3_history", "all", .false., "none", 2 +"gfs_dyn", "pm25", "pm25", "fv3_history", "all", .false., "none", 2 +"gfs_dyn", "pm10", "pm10", "fv3_history", "all", .false., "none", 2 "gfs_phys", "ALBDO_ave", "albdo_ave", "fv3_history2d", "all", .false., "none", 2 "gfs_phys", "cnvprcp_ave", "cprat_ave", "fv3_history2d", "all", .false., "none", 2 diff --git a/parm/parm_fv3diag/field_table_aer b/parm/parm_fv3diag/field_table_aer index 0bfa937980d..c31d4b157ad 100644 --- a/parm/parm_fv3diag/field_table_aer +++ b/parm/parm_fv3diag/field_table_aer @@ -1,158 +1,169 @@ # added by FRE: sphum must be present in atmos # specific humidity for moist runs "TRACER", "atmos_mod", "sphum" - "longname", "specific humidity" - "units", "kg/kg" - "profile_type", "fixed", "surface_value=1.e30" / + "longname", "specific humidity" + "units", "kg/kg" + "profile_type", "fixed", "surface_value=1.e30" / # prognostic cloud water mixing ratio "TRACER", "atmos_mod", "liq_wat" - "longname", "cloud water mixing ratio" - "units", "kg/kg" - "profile_type", "fixed", "surface_value=1.e30" / + "longname", "cloud water mixing ratio" + "units", "kg/kg" + "profile_type", "fixed", "surface_value=1.e30" / "TRACER", "atmos_mod", "rainwat" - "longname", "rain mixing ratio" - "units", "kg/kg" - "profile_type", "fixed", "surface_value=1.e30" / + "longname", "rain mixing ratio" + "units", "kg/kg" + "profile_type", "fixed", "surface_value=1.e30" / "TRACER", "atmos_mod", "ice_wat" - "longname", "cloud ice mixing ratio" - "units", "kg/kg" - "profile_type", "fixed", "surface_value=1.e30" / + "longname", "cloud ice mixing ratio" + "units", "kg/kg" + "profile_type", "fixed", "surface_value=1.e30" / "TRACER", "atmos_mod", "snowwat" - "longname", "snow mixing ratio" - "units", "kg/kg" - "profile_type", "fixed", "surface_value=1.e30" / + "longname", "snow mixing ratio" + "units", "kg/kg" + "profile_type", "fixed", "surface_value=1.e30" / "TRACER", "atmos_mod", "graupel" - "longname", "graupel mixing ratio" - "units", "kg/kg" - "profile_type", "fixed", "surface_value=1.e30" / + "longname", "graupel mixing ratio" + "units", "kg/kg" + "profile_type", "fixed", "surface_value=1.e30" / # prognostic ozone mixing ratio tracer "TRACER", "atmos_mod", "o3mr" - "longname", "ozone mixing ratio" - "units", "kg/kg" - "profile_type", "fixed", "surface_value=1.e30" / -# prognostic so2 mixing ratio tracer + "longname", "ozone mixing ratio" + "units", "kg/kg" + "profile_type", "fixed", "surface_value=1.e30" / +# prognostic subgrid scale turbulent kinetic energy + "TRACER", "atmos_mod", "sgs_tke" + "longname", "subgrid scale turbulent kinetic energy" + "units", "m2/s2" + "profile_type", "fixed", "surface_value=1.e30" / +# prognostic chemistry tracers "TRACER", "atmos_mod", "so2" - "longname", "so2 mixing ratio" - "units", "ppm" - "profile_type", "fixed", "surface_value=5.e-6" / -# prognostic sulfate mixing ratio tracer - "TRACER", "atmos_mod", "sulf" - "longname", "sulfate mixing ratio" - "units", "ug/kg" - "profile_type", "fixed", "surface_value=3.e-6" / -# prognostic DMS mixing ratio tracer + "longname", "so2 mixing ratio" + "units", "ppm" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=5.e-6" / + "TRACER", "atmos_mod", "so4" + "longname", "sulfate mixing ratio" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=3.e-6" / "TRACER", "atmos_mod", "dms" - "longname", "DMS mixing ratio" - "units", "ppm" - "profile_type", "fixed", "surface_value=1.e-7" / -# prognostic msa mixing ratio tracer + "longname", "DMS mixing ratio" + "units", "ppm" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / "TRACER", "atmos_mod", "msa" - "longname", "msa mixing ratio" - "units", "ppm" - "profile_type", "fixed", "surface_value=1.e-7" / -# prognostic bc1 mixing ratio tracer + "longname", "msa mixing ratio" + "units", "ppm" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / "TRACER", "atmos_mod", "bc1" - "longname", "hydrophobic black carbon mixing ratio" - "units", "ug/kg" - "profile_type", "fixed", "surface_value=1.e-7" / -# prognostic bc2 mixing ratio tracer + "longname", "hydrophobic black carbon mixing ratio" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / "TRACER", "atmos_mod", "bc2" - "longname", "hydrophillic black carbon mixing ratio" - "units", "ug/kg" - "profile_type", "fixed", "surface_value=1.e-7" / -# prognostic oc1 mixing ratio tracer + "longname", "hydrophillic black carbon mixing ratio" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / "TRACER", "atmos_mod", "oc1" - "longname", "hydrophobic organic carbon mixing ratio" - "units", "ug/kg" - "profile_type", "fixed", "surface_value=1.e-7" / -# prognostic oc2 mixing ratio tracer + "longname", "hydrophobic organic carbon mixing ratio" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / "TRACER", "atmos_mod", "oc2" - "longname", "hydrophillic organic carbon mixing ratio" - "units", "ug/kg" - "profile_type", "fixed", "surface_value=1.e-7" / -# prognostic dust1 mixing ratio tracer + "longname", "hydrophillic organic carbon mixing ratio" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / "TRACER", "atmos_mod", "dust1" - "longname", "fine dust1 mixing ratio" - "units", "ug/kg" - "profile_type", "fixed", "surface_value=1.e-7" / -# prognostic dust2 mixing ratio tracer + "longname", "fine dust1 mixing ratio" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / "TRACER", "atmos_mod", "dust2" - "longname", "fine dust2 mixing ratio" - "units", "ug/kg" - "profile_type", "fixed", "surface_value=1.e-7" / -# prognostic dust3 mixing ratio tracer + "longname", "fine dust2 mixing ratio" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / "TRACER", "atmos_mod", "dust3" - "longname", "coarse dust3 mixing ratio" - "units", "ug/kg" - "profile_type", "fixed", "surface_value=1.e-7" / -# prognostic dust4 mixing ratio tracer + "longname", "coarse dust3 mixing ratio" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / "TRACER", "atmos_mod", "dust4" - "longname", "coarse dust4 mixing ratio" - "units", "ug/kg" - "profile_type", "fixed", "surface_value=1.e-7" / -# prognostic dust5 mixing ratio tracer + "longname", "coarse dust4 mixing ratio" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / "TRACER", "atmos_mod", "dust5" - "longname", "coarse dust5 mixing ratio" - "units", "ug/kg" - "profile_type", "fixed", "surface_value=1.e-7" / -# prognostic seas1 mixing ratio tracer + "longname", "coarse dust5 mixing ratio" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / "TRACER", "atmos_mod", "seas1" - "longname", "seasalt1 mixing ratio" - "units", "ug/kg" - "profile_type", "fixed", "surface_value=1.e-7" / -# prognostic seas2 mixing ratio tracer + "longname", "seasalt1 mixing ratio" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / "TRACER", "atmos_mod", "seas2" - "longname", "seasalt2 mixing ratio" - "units", "ug/kg" - "profile_type", "fixed", "surface_value=1.e-7" / -# prognostic seas3 mixing ratio tracer + "longname", "seasalt2 mixing ratio" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / "TRACER", "atmos_mod", "seas3" - "longname", "seasalt3 mixing ratio" - "units", "ug/kg" - "profile_type", "fixed", "surface_value=1.e-7" / -# prognostic seas4 mixing ratio tracer + "longname", "seasalt3 mixing ratio" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / "TRACER", "atmos_mod", "seas4" - "longname", "seasalt4 mixing ratio" - "units", "ug/kg" - "profile_type", "fixed", "surface_value=1.e-7" / -# prognostic seas5 mixing ratio tracer + "longname", "seasalt4 mixing ratio" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / "TRACER", "atmos_mod", "seas5" - "longname", "seasalt5 mixing ratio" - "units", "ug/kg" - "profile_type", "fixed", "surface_value=1.e-7" / -# prognostic NI mixing ratio tracer + "longname", "seasalt5 mixing ratio" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / "TRACER", "atmos_mod", "nh3" - "longname", "primary NH3 mixing ratio" - "units", "ug/kg" - "profile_type", "fixed", "surface_value=1.e+0" / + "longname", "primary NH3 mixing ratio" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e+0" / "TRACER", "atmos_mod", "nh4a" - "longname", "primary NH4a mixing ratio" - "units", "ug/kg" - "profile_type", "fixed", "surface_value=1.e+0" / + "longname", "primary NH4a mixing ratio" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e+0" / "TRACER", "atmos_mod", "no3an1" - "longname", "primary NO3an1 mixing ratio" - "units", "ug/kg" - "profile_type", "fixed", "surface_value=1.e+0" / + "longname", "primary NO3an1 mixing ratio" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e+0" / "TRACER", "atmos_mod", "no3an2" - "longname", "primary NO3an2 mixing ratio" - "units", "ug/kg" - "profile_type", "fixed", "surface_value=1.e+0" / + "longname", "primary NO3an2 mixing ratio" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e+0" / "TRACER", "atmos_mod", "no3an3" - "longname", "primary NO3an3 mixing ratio" - "units", "ug/kg" - "profile_type", "fixed", "surface_value=1.e+0" / -# diagnostic pm2.5 tracer - "TRACER", "atmos_mod", "pp25" - "longname", "primary PM25 mixing ratio" - "units", "ug/m3" - "profile_type", "fixed", "surface_value=1.e+0" / -# diagnostic pm10 tracer - "TRACER", "atmos_mod", "pp10" - "longname", "primary PM10 mixing ratio" - "units", "ug/m3" - "profile_type", "fixed", "surface_value=1.e+0" / + "longname", "primary NO3an3 mixing ratio" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e+0" / +# diagnostic chemistry tracers + "TRACER", "atmos_mod", "pm25" + "longname", "primary PM25 mixing ratio" + "units", "ug/m3" + "tracer_usage", "chemistry", "type=diagnostic" + "profile_type", "fixed", "surface_value=1.e+0" / + "TRACER", "atmos_mod", "pm10" + "longname", "primary PM10 mixing ratio" + "units", "ug/m3" + "tracer_usage", "chemistry", "type=diagnostic" + "profile_type", "fixed", "surface_value=1.e+0" / # non-prognostic cloud amount "TRACER", "atmos_mod", "cld_amt" - "longname", "cloud amount" - "units", "1" - "profile_type", "fixed", "surface_value=1.e30" / + "longname", "cloud amount" + "units", "1" + "profile_type", "fixed", "surface_value=1.e30" / diff --git a/scripts/exgfs_wave_prep.sh b/scripts/exgfs_wave_prep.sh index 6cae1b2539d..f0533b5f8a3 100755 --- a/scripts/exgfs_wave_prep.sh +++ b/scripts/exgfs_wave_prep.sh @@ -888,7 +888,7 @@ case ${WW3ATMINP} in 'YES' ) NFGRIDS=`expr $NFGRIDS + 1` - WINDLINE=" '$WAVEWND_FID' F F T F F F F" + WINDLINE=" '$WAVEWND_FID' F F T F F F F F F" WINDFLAG="$WAVEWND_FID" ;; 'CPL' ) @@ -896,7 +896,7 @@ if [ ${waveesmfGRD} ] then WINDFLAG="CPL:${waveesmfGRD}" - CPLILINE=" '${waveesmfGRD}' F F T F F F F" + CPLILINE=" '${waveesmfGRD}' F F T F F F F F F" else WINDFLAG="CPL:native" fi @@ -907,7 +907,7 @@ 'YES' ) NFGRIDS=`expr $NFGRIDS + 1` ICEIFLAG='T' - ICELINE=" '$WAVEICE_FID' F F F T F F F" + ICELINE=" '$WAVEICE_FID' F F F T F F F F F" ICEFLAG="$WAVEICE_FID" ;; 'CPL' ) @@ -915,7 +915,7 @@ if [ ${waveesmfGRD} ] then ICEFLAG="CPL:${waveesmfGRD}" - CPLILINE=" '${waveesmfGRD}' F F ${WNDIFLAG} T F F F" + CPLILINE=" '${waveesmfGRD}' F F ${WNDIFLAG} T F F F F F" else ICEFLAG="CPL:native" fi @@ -926,10 +926,10 @@ 'YES' ) if [ "$WAVECUR_FID" != "$WAVEICE_FID" ]; then NFGRIDS=`expr $NFGRIDS + 1` - CURRLINE=" '$WAVECUR_FID' F T F F F F F" + CURRLINE=" '$WAVECUR_FID' F T F F F F F F F" CURRFLAG="$WAVECUR_FID" else # cur fields share the same grid as ice grid - ICELINE=" '$WAVEICE_FID' F T F ${ICEIFLAG} F F F" + ICELINE=" '$WAVEICE_FID' F T F ${ICEIFLAG} F F F F F" CURRFLAG="$WAVEICE_FID" fi ;; @@ -938,7 +938,7 @@ if [ ${waveesmfGRD} ] then CURRFLAG="CPL:${waveesmfGRD}" - CPLILINE=" '${waveesmfGRD}' F T ${WNDIFLAG} ${ICEFLAG} F F F" + CPLILINE=" '${waveesmfGRD}' F T ${WNDIFLAG} ${ICEFLAG} F F F F F" else CURRFLAG="CPL:native" fi @@ -957,7 +957,7 @@ NMGRIDS=`expr $NMGRIDS + 1` gridN=`echo $waveGRDN | awk -v i=$GRDN '{print $i}'` gridG=`echo $waveGRDG | awk -v i=$GRDN '{print $i}'` - gline="${gline}'${grid}' 'no' 'CURRFLAG' 'WINDFLAG' 'ICEFLAG' 'no' 'no' 'no' ${gridN} ${gridG} 0.00 1.00 F\n" + gline="${gline}'${grid}' 'no' 'CURRFLAG' 'WINDFLAG' 'ICEFLAG' 'no' 'no' 'no' 'no' 'no' ${gridN} ${gridG} 0.00 1.00 F\n" done gline="${gline}\$" echo $gline diff --git a/scripts/exglobal_forecast.sh b/scripts/exglobal_forecast.sh index 9efed80ef46..fdfebc350a6 100755 --- a/scripts/exglobal_forecast.sh +++ b/scripts/exglobal_forecast.sh @@ -102,7 +102,6 @@ cpl=${cpl:-.false.} cplflx=${cplflx:-.false.} # default off,import from outside source cplwav=${cplwav:-.false.} # ? how to control 1-way/2-way? cplchem=${cplchem:-.false.} # Chemistry model -cplgocart=${cplgocart:-.false.} # Chemistry model cplice=${cplice:-.false.} # ICE model OCNTIM=${OCNTIM:-3600} @@ -134,7 +133,6 @@ esac [[ $cplflx = .true. ]] && MOM6_predet #[[ $cplwav = .true. ]] && WW3_predet #no WW3_predet at this time [[ $cplice = .true. ]] && CICE_predet -[[ $cplchem = .true. ]] && GSD_predet case $RUN in 'gfs') FV3_GFS_det;; @@ -144,7 +142,6 @@ esac #no run type determination for data atmosphere [[ $cplflx = .true. ]] && MOM6_det [[ $cplwav = .true. ]] && WW3_det [[ $cplice = .true. ]] && CICE_det -[[ $cplchem = .true. ]] && GSD_det echo "MAIN: RUN Type Determined" @@ -159,7 +156,6 @@ esac #no post determination set up for data atmosphere [[ $cplflx = .true. ]] && MOM6_postdet [[ $cplwav = .true. ]] && WW3_postdet [[ $cplice = .true. ]] && CICE_postdet -[[ $cplchem = .true. ]] && GSD_postdet echo "MAIN: Post-determination set up of run type finished" echo "MAIN: Writing name lists and model configuration" @@ -172,8 +168,7 @@ esac #no namelist for data atmosphere [[ $cplflx = .true. ]] && MOM6_nml [[ $cplwav = .true. ]] && WW3_nml [[ $cplice = .true. ]] && CICE_nml -[[ $cplchem = .true. ]] && GSD_nml -[[ $cplgocart = .true. ]] && GOCART_rc +[[ $cplchem = .true. ]] && GOCART_rc case $RUN in 'data') DATM_model_configure;; @@ -216,7 +211,6 @@ if [ $machine != 'sandbox' ]; then [[ $cplflx = .true. ]] && MOM6_out [[ $cplwav = .true. ]] && WW3_out [[ $cplice = .true. ]] && CICE_out - [[ $cplchem = .true. ]] && GSD_out [[ $esmf_profile = .true. ]] && CPL_out else echo "MAIN: Running on sandbox mode, no output linking" diff --git a/sorc/build_all.sh b/sorc/build_all.sh index 577f42df052..c10dfc06d62 100755 --- a/sorc/build_all.sh +++ b/sorc/build_all.sh @@ -9,14 +9,25 @@ set +x # Anything other than "true" will use libraries locally. #------------------------------------ -while getopts "c" option; +_build_ufs_options="" + +while getopts "ac" option; do case $option in + a) + echo "Received -a flag, build ufs-weather-model develop branch with aerosols and CCPP physics" + echo "setting coupled=yes and skipping builds not needed for prototype runs" + _build_ufs_options=-a + RUN_CCPP="YES" + COUPLED="YES" + break + ;; c) echo "Received -c flag, build ufs-weather-model develop branch with CCPP physics" echo "setting coupled=yes and skipping builds not needed for prototype runs" RUN_CCPP="YES" COUPLED="YES" + break ;; esac done @@ -49,7 +60,7 @@ source ./machine-setup.sh > /dev/null 2>&1 #------------------------------------ # INCLUDE PARTIAL BUILD #------------------------------------ -. ./partial_build.sh +. ./partial_build.sh $@ #------------------------------------ # Exception Handling Init @@ -78,22 +89,22 @@ fi $Build_fv3gfs && { echo " .... Building forecast model .... " if [ ${COUPLED:-"NO"} = "NO" ]; then -export RUN_CCPP=${RUN_CCPP:-"NO"} -./build_fv3.sh > $logs_dir/build_fv3.log 2>&1 -rc=$? -if [[ $rc -ne 0 ]] ; then + export RUN_CCPP=${RUN_CCPP:-"NO"} + ./build_fv3.sh > $logs_dir/build_fv3.log 2>&1 + rc=$? + if [[ $rc -ne 0 ]] ; then echo "Fatal error in building fv3." echo "The log file is in $logs_dir/build_fv3.log" -fi -((err+=$rc)) -else -./build_ufs_coupled.sh > $logs_dir/build_ufs_coupled.log 2>&1 -rc=$? -if [[ $rc -ne 0 ]] ; then + fi + ((err+=$rc)) +else + ./build_ufs_coupled.sh ${_build_ufs_options} > $logs_dir/build_ufs_coupled.log 2>&1 + rc=$? + if [[ $rc -ne 0 ]] ; then echo "Fatal error in building ufs coupled forecast model." echo "The log file is in $logs_dir/build_ufs_coupled.log" -fi -((err+=$rc)) + fi + ((err+=$rc)) fi } diff --git a/sorc/build_ufs_coupled.sh b/sorc/build_ufs_coupled.sh index e18e6fd3e88..11d76e751b3 100755 --- a/sorc/build_ufs_coupled.sh +++ b/sorc/build_ufs_coupled.sh @@ -1,6 +1,25 @@ #! /usr/bin/env bash set -eux +# Build S2S by default +CMAKE_FLAGS="-DAPP=S2SW" +CCPP_SUITES="FV3_GFS_v16_coupled,FV3_GFS_v16_couplednsst,FV3_GFS_v16" + +while [ ${#} -gt 0 ] +do + case "${1}" in + -a|--aerosols) + CMAKE_FLAGS="-DAPP=ATMAERO" + CCPP_SUITES="FV3_GFS_v16" + shift + ;; + *) + echo "Unrecognized option: ${1}" + exit 1 + ;; + esac +done + source ./machine-setup.sh > /dev/null 2>&1 cwd=`pwd` @@ -9,19 +28,18 @@ if [ ! -d "../exec" ]; then mkdir ../exec fi -if [ $target = hera ]; then target=hera.intel ; fi -if [ $target = orion ]; then target=orion.intel ; fi -if [ $target = stampede ]; then target=stampede.intel ; fi +# Set target platform +case "${target}" in + hera|orion|stampede) + target=${target}.intel + ;; +esac -MOD_PATH=$cwd/ufs_coupled.fd/modulefiles/$target +MOD_PATH=$cwd/ufs_coupled.fd/modulefiles + +module purge -module purge -module use $MOD_PATH -module load fv3 cd ufs_coupled.fd/ -if [[ -d build ]]; then rm -Rf build; fi -if [[ -d GOCART ]]; then - ./build.sh -else - CMAKE_FLAGS="-DS2S=ON -DWW3=ON" CCPP_SUITES="FV3_GFS_v15p2_coupled,FV3_GFS_v16_coupled,FV3_GFS_v16" ./build.sh -fi +module use ${MOD_PATH} +module load ufs_${target} +CMAKE_FLAGS="${CMAKE_FLAGS}" CCPP_SUITES="${CCPP_SUITES}" ./build.sh diff --git a/sorc/build_ww3prepost.sh b/sorc/build_ww3prepost.sh index 339f050ba61..f17d7bcbeb0 100755 --- a/sorc/build_ww3prepost.sh +++ b/sorc/build_ww3prepost.sh @@ -35,8 +35,8 @@ export WWATCH3_ENV=${WW3_BINDIR}/wwatch3.env export PNG_LIB=${PNG_LIB:-$PNG_ROOT/lib64/libpng.a} export Z_LIB=${Z_LIB:-$ZLIB_ROOT/lib/libz.a} export JASPER_LIB=${JASPER_LIB:-$JASPER_ROOT/lib64/libjasper.a} -# export WWATCH3_NETCDF=NC4 -# export NETCDF_CONFIG=$NETCDF_ROOT/bin/nc-config +export WWATCH3_NETCDF=NC4 +export NETCDF_CONFIG=$NETCDF_ROOT/bin/nc-config export PRINTER=${PRINTER:-""} rm $WWATCH3_ENV @@ -50,6 +50,7 @@ echo "WWATCH3_F90 $WW3_F90" >> $WWATCH3_ENV echo "WWATCH3_CC $WW3_CC" >> $WWATCH3_ENV echo "WWATCH3_DIR $WW3_DIR" >> $WWATCH3_ENV echo "WWATCH3_TMP $WW3_TMPDIR" >> $WWATCH3_ENV +echo "WWATCH3_NETCDF $WWATCH3_NETCDF" >> $WWATCH3_ENV echo 'WWATCH3_SOURCE yes' >> $WWATCH3_ENV echo 'WWATCH3_LIST yes' >> $WWATCH3_ENV echo '' >> $WWATCH3_ENV diff --git a/sorc/checkout.sh b/sorc/checkout.sh index f13d99a833f..3ed89732c05 100755 --- a/sorc/checkout.sh +++ b/sorc/checkout.sh @@ -13,11 +13,6 @@ do echo "Received -c flag, running coupled model" COUPLED="YES" ;; - a) - echo "Received -a flag, running coupled aerosols model" - AEROSOL="YES" - COUPLED="YES" - ;; :) echo "option -$OPTARG needs an argument" ;; @@ -45,15 +40,9 @@ if [ ${COUPLED:-"NO"} = "NO" ]; then fi else if [[ ! -d ufs_coupled.fd ]] ; then - if [ "${AEROSOL}" = "YES" ] ; then - git clone https://github.com/NOAA-EMC/FV3-GOCART ufs_coupled.fd >> ${topdir}/checkout-ufs_coupled.log 2>&1 - cd ufs_coupled.fd - git checkout develop - else - git clone https://github.com/ufs-community/ufs-weather-model ufs_coupled.fd >> ${topdir}/checkout-ufs_coupled.log 2>&1 - cd ufs_coupled.fd - git checkout 3e46f5b7050e18884a0bed13691823ad88d443c3 - fi + git clone https://github.com/ufs-community/ufs-weather-model ufs_coupled.fd >> ${topdir}/checkout-ufs_coupled.log 2>&1 + cd ufs_coupled.fd + git checkout a842d57f9c352acd3771fbccd8d8eb044558d090 git submodule update --init --recursive cd ${topdir} else diff --git a/sorc/partial_build.sh b/sorc/partial_build.sh index 671ca6da2da..24971568fa9 100755 --- a/sorc/partial_build.sh +++ b/sorc/partial_build.sh @@ -129,54 +129,49 @@ fi } + + usage() { + echo "Usage: $0 [ALL|config=config_file|[select=][prog1[,prog2[,...]]]" 2>&1 + } + # # read command line arguments; processing config file # + declare -a parse_argv=() + coupled=false verbose=false - num_arg=$# - (( num_arg > 1 )) && { - [[ ${1,,} == "--verbose" ]] && { - verbose=true - } || { - echo "Usage: $0 [ALL|config=config_file|[select=][prog1[,prog2[,...]]]" 2>&1 - exit 1 - } - } - (( num_arg == 1 )) && { - ( [[ $1 == "-h" ]] || [[ $1 == "--help" ]] ) && { - echo "Usage: $0 [ALL|config=config_file|[select=][prog1[,prog2[,...]]]" 2>&1 + while [ ${#} -ne 0 ]; do + case "${1}" in + -v|--verbose) + verbose=true + parse_argv+=( "${1}" ) + shift + ;; + -h|--help) + usage exit 2 - } - ( [[ $1 == "-v" ]] || [[ ${1,,} == "--verbose" ]] || [[ $1 == "-c" ]] ) && { - if [[ $1 == "-v" ]]; then - verbose=true - fi - if [[ $1 == "-c" ]]; then - coupled=true - fi - num_arg=0 - } || { - echo "Usage: $0 [ALL|config=config_file|[select=][prog1[,prog2[,...]]]" 2>&1 + ;; + -a|--aerosols|-c|--coupled) + coupled=true + shift + ;; + *) + usage exit 3 - } - } + ;; + esac + done - if (( num_arg == 0 )); then -# -# set default values for partial build -# - if [[ $coupled ]]; then - parse_cfg 1 "config=cpl_build.cfg" ${Build_prg[@]} - else - parse_cfg 1 "config=fv3gfs_build.cfg" ${Build_prg[@]} - fi + if [ "${coupled}" = true ]; then + parse_argv+=( "config=cpl_build.cfg" ) else + parse_argv+=( "config=fv3gfs_build.cfg" ) + fi # # call arguments retriever/config parser # - parse_cfg $num_arg "$@" ${Build_prg[@]} - fi + parse_cfg ${#parse_argv[@]} "${parse_argv[@]}" ${Build_prg[@]} # # print values of build array diff --git a/ush/cplvalidate.sh b/ush/cplvalidate.sh index ec481cd8f23..46f861dbe12 100755 --- a/ush/cplvalidate.sh +++ b/ush/cplvalidate.sh @@ -29,7 +29,7 @@ case $confignamevarfornems in *) echo "SUB cplvalidate: Combination not supported" exit 1 ;; esac -control=$cpl$cplflx$cplice$cplwav$cplgocart +control=$cpl$cplflx$cplice$cplwav$cplchem #echo $control if [ $control != $combination ]; then echo "SUB cplvalidate: inconsistent cpl setting!" diff --git a/ush/forecast_postdet.sh b/ush/forecast_postdet.sh index 7bdde50324f..852437e6085 100755 --- a/ush/forecast_postdet.sh +++ b/ush/forecast_postdet.sh @@ -498,11 +498,7 @@ FV3_GFS_nml(){ echo "MAIN: !!!Sandbox mode, writing to current directory!!!" fi # Call child scripts in current script directory - if [ $cplgocart = .true. ]; then - source $SCRIPTDIR/parsing_namelists_FV3_GOCART.sh - else - source $SCRIPTDIR/parsing_namelists_FV3.sh - fi + source $SCRIPTDIR/parsing_namelists_FV3.sh FV3_namelists echo SUB ${FUNCNAME[0]}: FV3 name lists and model configure file created } @@ -729,9 +725,11 @@ CICE_postdet() { echo "SUB ${FUNCNAME[0]}: CICE after run type determination" year=$(echo $CDATE|cut -c 1-4) + month=$(echo $CDATE|cut -c 5-6) + day=$(echo $CDATE|cut -c 7-8) + stepsperhr=$((3600/$ICETIM)) nhours=$($NHOUR $CDATE ${year}010100) - istep0=$((nhours*stepsperhr)) steps=$((nhours*stepsperhr)) npt=$((FHMAX*$stepsperhr)) # Need this in order for dump_last to work @@ -746,6 +744,8 @@ CICE_postdet() { cice_hist_avg=${cice_hist_avg:-".true."} FRAZIL_FWSALT=${FRAZIL_FWSALT:-".true."} + ktherm=${ktherm:-1} + tfrz_option=${tfrz_option:-"linear_salt"} tr_pond_lvl=${tr_pond_lvl:-".true."} # Use level melt ponds tr_pond_lvl=true # restart_pond_lvl (if tr_pond_lvl=true): @@ -785,7 +785,7 @@ CICE_postdet() { echo "Link CICE fixed files" $NLN -sf $FIXcice/$ICERES/${ice_grid_file} $DATA/ $NLN -sf $FIXcice/$ICERES/${ice_kmt_file} $DATA/ - $NLN -sf $FIXcice/$ICERES/$MESHICE $DATA/ + $NLN -sf $FIXcice/$ICERES/$MESH_OCN_ICE $DATA/ } CICE_nml() { @@ -860,21 +860,3 @@ GOCART_rc() { [[ $status -ne 0 ]] && exit $status fi } - -GSD_in() { - echo "SUB ${FUNCNAME[0]}: Linking input data for GSD" - # soft link commands insert here -} - -GSD_nml() { - echo "SUB ${FUNCNAME[0]}: Creating name list for GSD" - sh parsing_namelists_GSD.sh -} - -GSD_out() { - echo "SUB ${FUNCNAME[0]}: Copying output data for GSD" - # soft link commands insert here -} - - - diff --git a/ush/get_platform.sh b/ush/get_platform.sh new file mode 100644 index 00000000000..417f6ce920f --- /dev/null +++ b/ush/get_platform.sh @@ -0,0 +1,44 @@ +#!/bin/sh + +############################################################### +# Auto-detect platform and return string identifier +############################################################### + +get_platform() { + + local hname=`hostname -d` + local pname="unknown" + + if [[ $hname = 'stampede2.tacc.utexas.edu' ]] ; then + # We are on Xsede stampede2 + pname="stampede" + elif [[ $hname = 'hpc.msstate.edu' ]] ; then + # We are on MSU Orion + pname="orion" + elif [[ -d /lfs3 ]] ; then + # We are on NOAA Jet + pname="jet" + elif [[ -d /scratch1 ]] ; then + # We are on NOAA Hera + pname="hera" + elif [[ -d /gpfs/hps && -e /etc/SuSE-release ]] ; then + # We are on NOAA Luna or Surge + pname="wcoss_c" + elif [[ -L /usrx && "$( readlink /usrx 2> /dev/null )" =~ dell ]] ; then + # We are on NOAA Mars or Venus + pname="wcoss_dell_p3" + elif [[ -d /dcom && -d /hwrf ]] ; then + # We are on NOAA Tide or Gyre + pname="wcoss" + elif [[ -d /glade ]] ; then + # We are on NCAR Cheyenne + pname="cheyenne" + elif [[ -d /lustre && -d /ncrc ]] ; then + # We are on GAEA. + pname="gaea" + else + echo WARNING: UNKNOWN PLATFORM + fi + + echo "${pname}" +} diff --git a/ush/load_fv3gfs_modules.sh b/ush/load_fv3gfs_modules.sh index 2cb57f0a04f..521d0eccfb0 100755 --- a/ush/load_fv3gfs_modules.sh +++ b/ush/load_fv3gfs_modules.sh @@ -1,60 +1,41 @@ #!/bin/sh -#set -x ############################################################### # Setup runtime environment by loading modules +# +# This script accepts an optional argument for the task type. +# Acceptable types are: exclusive, forecast, service, shared +# +############################################################### + ulimit_s=$( ulimit -S -s ) -#ulimit -S -s 10000 # Find module command and purge: source "$HOMEgfs/modulefiles/module-setup.sh.inc" +source "$HOMEgfs/ush/get_platform.sh" -# Load our modules: -module use "$HOMEgfs/modulefiles" -hname=`hostname -d` - -if [[ $hname = 'stampede2.tacc.utexas.edu' ]] ; then - # We are on Xsede stampede2 - module load module_base.stampede -elif [[ $hname = 'hpc.msstate.edu' ]] ; then - # We are on MSU Orion - module load module_base.orion -elif [[ -d /lfs3 ]] ; then - # We are on NOAA Jet - module load module_base.jet -elif [[ -d /scratch1 ]] ; then - # We are on NOAA Hera - module load module_base.hera - if [[ -d $HOMEgfs/sorc/ufs_coupled.fd/GOCART ]] ; then - module use "$HOMEgfs/sorc/ufs_coupled.fd/modulefiles/hera.intel" - module load fv3 - fi -elif [[ -d /work ]] ; then - # We are on MSU Orion - module load module_base.orion - if [[ -d $HOMEgfs/sorc/ufs_coupled.fd/GOCART ]] ; then - module use "$HOMEgfs/sorc/ufs_coupled.fd/modulefiles/orion.intel" - module load fv3 - fi -elif [[ -d /gpfs/hps && -e /etc/SuSE-release ]] ; then - # We are on NOAA Luna or Surge - module load module_base.wcoss_c -elif [[ -L /usrx && "$( readlink /usrx 2> /dev/null )" =~ dell ]] ; then - # We are on NOAA Mars or Venus - module load module_base.wcoss_dell_p3 -elif [[ -d /dcom && -d /hwrf ]] ; then - # We are on NOAA Tide or Gyre - module load module_base.wcoss -elif [[ -d /glade ]] ; then - # We are on NCAR Yellowstone - module load module_base.cheyenne -elif [[ -d /lustre && -d /ncrc ]] ; then - # We are on GAEA. - module load module_base.gaea -else - echo WARNING: UNKNOWN PLATFORM +tasktype= +if [ $# -eq 1 ] ; then + case "${1}" in + exclusive|forecast|service|shared) + tasktype="${1}" + ;; + *) + echo "Unsupported task type" + exit 1 + ;; + esac fi +platform=$( get_platform ) + +moduledir="$HOMEgfs/modulefiles" +modulelist="module_base.${platform}" + +# Load our modules: +module use ${moduledir} +module load ${modulelist} + # Restore stack soft limit: ulimit -S -s "$ulimit_s" unset ulimit_s diff --git a/ush/nems.configure.cpld.IN b/ush/nems.configure.cpld.IN index 08d40044c09..8a070787f51 100644 --- a/ush/nems.configure.cpld.IN +++ b/ush/nems.configure.cpld.IN @@ -31,6 +31,7 @@ OCN_attributes:: DumpFields = @[DumpFields] ProfileMemory = false OverwriteSlice = true + mesh_ocn = @[MESH_OCN_ICE] :: # ICE # @@ -41,7 +42,7 @@ ICE_attributes:: DumpFields = @[DumpFields] ProfileMemory = false OverwriteSlice = true - mesh_ice = @[MESHICE] + mesh_ice = @[MESH_OCN_ICE] stop_n = @[RESTART_N] stop_option = nhours stop_ymd = -999 @@ -99,4 +100,6 @@ ALLCOMP_attributes:: restart_ymd = -999 dbug_flag = @[cap_dbug_flag] use_coldstart = @[use_coldstart] + use_mommesh = @[use_mommesh] + eps_imesh = @[eps_imesh] :: diff --git a/ush/nems.configure.cpld_wave.IN b/ush/nems.configure.cpld_wave.IN index ee4443f2d90..2b8a49e56b6 100644 --- a/ush/nems.configure.cpld_wave.IN +++ b/ush/nems.configure.cpld_wave.IN @@ -31,6 +31,7 @@ OCN_attributes:: DumpFields = @[DumpFields] ProfileMemory = false OverwriteSlice = true + mesh_ocn = @[MESH_OCN_ICE] :: # ICE # @@ -41,7 +42,7 @@ ICE_attributes:: DumpFields = @[DumpFields] ProfileMemory = false OverwriteSlice = true - mesh_ice = @[MESHICE] + mesh_ice = @[MESH_OCN_ICE] stop_n = @[RESTART_N] stop_option = nhours stop_ymd = -999 @@ -113,4 +114,6 @@ ALLCOMP_attributes:: restart_ymd = -999 dbug_flag = @[cap_dbug_flag] use_coldstart = @[use_coldstart] + use_mommesh = @[use_mommesh] + eps_imesh = @[eps_imesh] :: diff --git a/ush/nems.configure.medcold_atm_ocn_ice.IN b/ush/nems.configure.medcold_atm_ocn_ice.IN index d54f6596a6f..80a1527b9aa 100644 --- a/ush/nems.configure.medcold_atm_ocn_ice.IN +++ b/ush/nems.configure.medcold_atm_ocn_ice.IN @@ -32,6 +32,7 @@ OCN_attributes:: ProfileMemory = false OverwriteSlice = true dbug_flag = 0 + mesh_ocn = @[MESH_OCN_ICE] :: # ICE # @@ -42,7 +43,7 @@ ICE_attributes:: DumpFields = @[DumpFields] ProfileMemory = false OverwriteSlice = true - mesh_ice = @[MESHICE] + mesh_ice = @[MESH_OCN_ICE] stop_n = @[FHMAX] stop_option = nhours stop_ymd = -999 @@ -99,4 +100,5 @@ ALLCOMP_attributes:: restart_option = nhours restart_ymd = -999 dbug_flag = 0 + eps_imesh = @[eps_imesh] :: diff --git a/ush/nems.configure.medcold_atm_ocn_ice_wav.IN b/ush/nems.configure.medcold_atm_ocn_ice_wav.IN index 53cfc8c09d4..2ef5f706bf3 100644 --- a/ush/nems.configure.medcold_atm_ocn_ice_wav.IN +++ b/ush/nems.configure.medcold_atm_ocn_ice_wav.IN @@ -31,6 +31,7 @@ OCN_attributes:: DumpFields = @[DumpFields] ProfileMemory = false OverwriteSlice = true + mesh_ocn = @[MESH_OCN_ICE] :: # ICE # @@ -41,7 +42,7 @@ ICE_attributes:: DumpFields = @[DumpFields] ProfileMemory = false OverwriteSlice = true - mesh_ice = @[MESHICE] + mesh_ice = @[MESH_OCN_ICE] stop_n = @[FHMAX] stop_option = nhours stop_ymd = -999 @@ -112,4 +113,5 @@ ALLCOMP_attributes:: restart_option = nhours restart_ymd = -999 dbug_flag = 0 + eps_imesh = @[eps_imesh] :: diff --git a/ush/nems_configure.sh b/ush/nems_configure.sh index 8e446271458..9d65adc2b06 100755 --- a/ush/nems_configure.sh +++ b/ush/nems_configure.sh @@ -36,7 +36,7 @@ ATM_model=${ATM_model:-'fv3'} OCN_model=${OCN_model:-'mom6'} ICE_model=${ICE_model:-'cice'} WAV_model=${WAV_model:-'ww3'} -CHM_model=${CHM_model:-'gsdchem'} +CHM_model=${CHM_model:-'gocart'} ATMPETS=${ATMPETS:-8} MEDPETS=${MEDPETS:-8} @@ -45,6 +45,9 @@ ICEPETS=${ICEPETS:-8} WAVPETS=${WAVPETS:-8} CHMPETS=${CHMPETS:-${ATMPETS}} +USE_MOMMESH=${USE_MOMMESH:-"true"} + + rm -f $DATA/nems.configure med_petlist_bounds=${med_petlist_bounds:-"0 $(( $MEDPETS-1 ))"} @@ -56,7 +59,7 @@ chm_petlist_bounds=${chm_petlist_bounds:-"0 $(( $CHMPETS-1 ))"} # Copy the selected template into run directory cp $SCRIPTDIR/nems.configure.$confignamevarfornems.IN tmp1 -sed -i -e "s;@\[med_model\];nems;g" tmp1 +sed -i -e "s;@\[med_model\];cmeps;g" tmp1 sed -i -e "s;@\[atm_model\];$ATM_model;g" tmp1 sed -i -e "s;@\[med_petlist_bounds\];$med_petlist_bounds;g" tmp1 sed -i -e "s;@\[atm_petlist_bounds\];$atm_petlist_bounds;g" tmp1 @@ -79,6 +82,8 @@ if [ $cplflx = .true. ]; then sed -i -e "s;@\[coupling_interval_slow_sec\];$CPL_SLOW;g" tmp1 sed -i -e "s;@\[coupling_interval_fast_sec\];$CPL_FAST;g" tmp1 sed -i -e "s;@\[RESTART_N\];$restart_interval_nems;g" tmp1 + sed -i -e "s;@\[use_mommesh\];$USE_MOMMESH;g" tmp1 + sed -i -e "s;@\[eps_imesh\];$ICERESdec;g" tmp1 fi if [ $cplwav = .true. ]; then sed -i -e "s;@\[wav_model\];ww3;g" tmp1 @@ -87,10 +92,10 @@ fi if [ $cplice = .true. ]; then sed -i -e "s;@\[ice_model\];$ICE_model;g" tmp1 sed -i -e "s;@\[ice_petlist_bounds\];$ice_petlist_bounds;g" tmp1 - sed -i -e "s;@\[MESHICE\];$MESHICE;g" tmp1 + sed -i -e "s;@\[MESH_OCN_ICE\];$MESH_OCN_ICE;g" tmp1 sed -i -e "s;@\[FHMAX\];$FHMAX_GFS;g" tmp1 fi -if [ $cplchem = .true. -o $cplgocart = .true. ]; then +if [ $cplchem = .true. ]; then sed -i -e "s;@\[chm_model\];$CHM_model;g" tmp1 sed -i -e "s;@\[chm_petlist_bounds\];$chm_petlist_bounds;g" tmp1 sed -i -e "s;@\[coupling_interval_fast_sec\];$CPL_FAST;g" tmp1 @@ -155,9 +160,9 @@ EOF echo "$(cat med_modelio.nml)" -cp $HOMEgfs/sorc/ufs_coupled.fd/CMEPS-interface/CMEPS/mediator/fd_nems.yaml fd_nems.yaml +fi -fi +cp $HOMEgfs/sorc/ufs_coupled.fd/tests/parm/fd_nems.yaml fd_nems.yaml echo "SUB ${FUNCNAME[0]}: Nems configured for $confignamevarfornems" diff --git a/ush/parsing_namelists_CICE.sh b/ush/parsing_namelists_CICE.sh index 60baa023e39..62cde8494b7 100644 --- a/ush/parsing_namelists_CICE.sh +++ b/ush/parsing_namelists_CICE.sh @@ -14,12 +14,13 @@ cat > ice_in < ice_in < ice_in < ice_in < ice_in < ice_in < ice_in < ice_in < ice_in < ice_in < ice_in < ice_in < ice_in < ice_in < ice_in < input.nml <> input.nml << EOF oz_phys = .false. oz_phys_2015 = .true. EOF -elif [ $CCPP_SUITE = "FV3_GSD_v0" ]; then + ;; + "FV3_GSD_v0") cat >> input.nml << EOF iovr = ${iovr:-"3"} ltaerosol = ${ltaerosol:-".F."} ! In config.fcst @@ -215,7 +216,8 @@ elif [ $CCPP_SUITE = "FV3_GSD_v0" ]; then min_lakeice = ${min_lakeice:-"0.15"} min_seaice = ${min_seaice:-"0.15"} EOF -elif [ $CCPP_SUITE = "FV3_GFS_v16_coupled" ]; then + ;; + "FV3_GFS_v16_coupled" | "FV3_GFS_v16_couplednsst") cat >> input.nml << EOF iovr = ${iovr:-"3"} ltaerosol = ${ltaerosol:-".false."} @@ -233,12 +235,25 @@ elif [ $CCPP_SUITE = "FV3_GFS_v16_coupled" ]; then min_lakeice = ${min_lakeice:-"0.15"} min_seaice = ${min_seaice:-"0.15"} EOF -else + ;; + "FV3_GFS_v16") + cat >> input.nml << EOF + iovr = ${iovr:-"3"} + ltaerosol = ${ltaerosol:-".false."} + oz_phys = ${oz_phys:-".false."} + oz_phys_2015 = ${oz_phys_2015:-".true."} + lsoil = ${lsoil:-"4"} + icloud_bl = ${icloud_bl:-"1"} + min_lakeice = ${min_lakeice:-"0.15"} + min_seaice = ${min_seaice:-"0.15"} +EOF + ;; + *) cat >> input.nml << EOF - iovr_lw = ${iovr_lw:-"3"} - iovr_sw = ${iovr_sw:-"3"} + iovr = ${iovr:-"3"} EOF -fi + ;; +esac cat >> input.nml <> input.nml <> input.nml << EOF + cplchm = ${cplchem:-".false."} cplflx = $cplflx cplwav2atm = ${cplwav2atm} ! CROW configured EOF diff --git a/ush/parsing_namelists_FV3_GOCART.sh b/ush/parsing_namelists_FV3_GOCART.sh deleted file mode 100755 index 0d2390515c3..00000000000 --- a/ush/parsing_namelists_FV3_GOCART.sh +++ /dev/null @@ -1,364 +0,0 @@ -#! /bin/sh -##### -## "parsing_namelist_FV3.sh" -## This script writes namelist for FV3 model -## -## This is the child script of ex-global forecast, -## writing namelist for FV3 -## This script is a direct execution. -##### - -FV3_namelists(){ - -# copy over the tables -DIAG_TABLE=${DIAG_TABLE:-$PARM_FV3DIAG/diag_table_aer} -DATA_TABLE=${DATA_TABLE:-$PARM_FV3DIAG/data_table} -FIELD_TABLE=${FIELD_TABLE:-$PARM_FV3DIAG/field_table_aer} - -# build the diag_table with the experiment name and date stamp -if [ $DOIAU = "YES" ]; then -cat > diag_table << EOF -FV3 Forecast -${gPDY:0:4} ${gPDY:4:2} ${gPDY:6:2} ${gcyc} 0 0 -EOF -cat $DIAG_TABLE >> diag_table -else -cat > diag_table << EOF -FV3 Forecast -${sPDY:0:4} ${sPDY:4:2} ${sPDY:6:2} ${scyc} 0 0 -EOF -cat $DIAG_TABLE >> diag_table -fi - -$NCP $DATA_TABLE data_table -$NCP $FIELD_TABLE field_table - -cat > input.nml <> input.nml <> input.nml - -cat >> input.nml <> input.nml << EOF -&nam_stochy -/ -&nam_sfcperts -/ -EOF - -echo "$(cat input.nml)" -} diff --git a/ush/parsing_namelists_MOM6.sh b/ush/parsing_namelists_MOM6.sh index 2af5e1d457d..e7ab58a0ae0 100644 --- a/ush/parsing_namelists_MOM6.sh +++ b/ush/parsing_namelists_MOM6.sh @@ -9,8 +9,9 @@ MOM_INPUT=MOM_input_template_$OCNRES #TODO: Make these variables configurable #Set to False for restart reproducibility -MOM6_REPRO_LA='True' -MOM6_THERMO_SPAN='False' +MOM6_REPRO_LA=${MOM6_REPRO_LA:-'True'} +MOM6_THERMO_SPAN=${MOM6_THERMO_SPAN:-'False'} +MOM6_ALLOW_LANDMASK_CHANGES=${MOM6_ALLOW_LANDMASK_CHANGES:-'False'} if [ $cplwav = ".true." ] ; then MOM6_USE_WAVES='True' @@ -74,6 +75,7 @@ sed -e "s/DT_THERM_MOM6/$DT_THERM_MOM6/g" \ -e "s/MOM6_THERMO_SPAN/$MOM6_THERMO_SPAN/g" \ -e "s/MOM6_REPRO_LA/$MOM6_REPRO_LA/g" \ -e "s/MOM6_USE_WAVES/$MOM6_USE_WAVES/g" \ + -e "s/MOM6_ALLOW_LANDMASK_CHANGES/$MOM6_ALLOW_LANDMASK_CHANGES/g" \ -e "s/NX_GLB/$NX_GLB/g" \ -e "s/NY_GLB/$NY_GLB/g" \ -e "s/CHLCLIM/$CHLCLIM/g" $DATA/INPUT/MOM_input_template_$OCNRES > $DATA/INPUT/MOM_input diff --git a/workflow/cases/aerosol_firex_forecast.yaml b/workflow/cases/aerosol_firex_forecast.yaml index ee8e96b8c7e..057b9c86159 100644 --- a/workflow/cases/aerosol_firex_forecast.yaml +++ b/workflow/cases/aerosol_firex_forecast.yaml @@ -4,18 +4,16 @@ case: places: workflow_file: layout/free_forecast_gfs.yaml - BASE_CPLIC: /scratch1/NCEPDEV/nems/Raffaele.Montuoro/data - OROFIX: /scratch1/NCEPDEV/nems/emc.nemspara/RT/NEMSfv3gfs/develop-20200914/INTEL/FV3_input_data_c384/INPUT - GRDFIX: /scratch1/NCEPDEV/nems/emc.nemspara/RT/NEMSfv3gfs/develop-20200914/INTEL/FV3_input_data_c384/INPUT + BASE_CPLIC: /scratch1/NCEPDEV/nems/Raffaele.Montuoro/data/ICS settings: SDATE: 2019-07-01t00:00:00 - EDATE: 2019-07-15t00:00:00 - STEP_GFS: !timedelta "24:00:00" + EDATE: 2019-07-02t00:00:00 + STEP_GFS: !timedelta "06:00:00" STEP_DA: !timedelta "00:00:00" max_job_tries: 1 - cplgocart: .true. + cplchem: .true. print_esmf: .true. nems_temp: 'atm_aer' @@ -28,12 +26,13 @@ case: KEEPDATA: Yes nsst: - NST_MODEL: 0 + NST_MODEL: 2 + NST_SPINUP: 1 output_settings: FHOUT_GFS: 6 FHMIN_GFS: 0 - FHMAX_GFS: 24 + FHMAX_GFS: 6 FHMAX_HF_GFS: 0 FHOUT_HF_GFS: -1 @@ -44,14 +43,16 @@ case: layout: x: 6 y: 8 - nth: 1 + nth: 2 WGRP: 1 WGRP_NTASKS: 24 WRTIOBUF: "32M" CPL_ATMIC: FV3ICS + CCPP_SUITE: FV3_GFS_v16 + fscav_aero: [ '*:0.6', 'seas1:1.0', 'seas2:1.0', 'seas3:1.0', 'seas4:1.0', 'seas5:1.0' ] chem_settings: - MOD: gsdchem + MOD: gocart ntdiag: 2 CFGDIR: /scratch1/NCEPDEV/nems/Raffaele.Montuoro/data/NASA/rc.firex INPDIR: /scratch1/NCEPDEV/nems/Raffaele.Montuoro/data/NASA/ExtData diff --git a/workflow/cases/aerosol_free_forecast.yaml b/workflow/cases/aerosol_free_forecast.yaml index 0c13067cfb9..7c04281ddbc 100644 --- a/workflow/cases/aerosol_free_forecast.yaml +++ b/workflow/cases/aerosol_free_forecast.yaml @@ -10,7 +10,7 @@ case: max_job_tries: 1 rocoto_cycle_throttle: 1 - cplgocart: .true. + cplchem: .true. print_esmf: .true. nems_temp: 'atm_aer' nems_temp_cold: 'atm_aer' @@ -24,7 +24,8 @@ case: KEEPDATA: Yes nsst: - NST_MODEL: 0 + NST_MODEL: 2 + NST_SPINUP: 1 output_settings: FHOUT_GFS: 6 @@ -38,15 +39,17 @@ case: LEVS: 65 DELTIM: 450 layout: - x: 6 - y: 8 - nth: 1 - WGRP: 1 - WGRP_NTASKS: 24 - WRTIOBUF: "32M" + x: 6 + y: 8 + nth: 1 + WGRP: 1 + WGRP_NTASKS: 24 + WRTIOBUF: "32M" + CCPP_SUITE: FV3_GFS_v16 + fscav_aero: [ '*:0.6', 'seas1:1.0', 'seas2:1.0', 'seas3:1.0', 'seas4:1.0', 'seas5:1.0' ] chem_settings: - MOD: gsdchem + MOD: gocart ntdiag: 2 # On Hera CFGDIR: /scratch1/NCEPDEV/nems/Raffaele.Montuoro/data/NASA/rc diff --git a/workflow/cases/coupled_free_forecast_wave.yaml b/workflow/cases/coupled_free_forecast_wave.yaml index acf39609daf..c6329bfd313 100644 --- a/workflow/cases/coupled_free_forecast_wave.yaml +++ b/workflow/cases/coupled_free_forecast_wave.yaml @@ -22,7 +22,11 @@ case: KEEPDATA: NO nsst: - NST_MODEL: 0 + NST_MODEL: 2 + NST_SPINUP: 1 + NST_RESV: 0 + ZSEA1: 0 + ZSEA2: 0 output_settings: OCN_INTERVAL: 24 @@ -39,7 +43,7 @@ case: min_lakeice: 0.15 min_seaice: 1.0e-11 SEEDLET: 10 - CCPP_SUITE: FV3_GFS_v16_coupled + CCPP_SUITE: FV3_GFS_v16_couplednsst CPL_ATMIC: CFSRfracL127 nst_anl: yes psm_bc: 1 @@ -66,7 +70,7 @@ case: wave_settings: WAVPETS: 160 - CPL_WAVIC: CFSRwave20200925 + CPL_WAVIC: GEFSwave20210623 waveGRD: 'gwes_30m' wavepostGRD: 'gwes_30m' waveesmfGRD: '' diff --git a/workflow/config/base.yaml b/workflow/config/base.yaml index f118f180d72..7e8845ea006 100644 --- a/workflow/config/base.yaml +++ b/workflow/config/base.yaml @@ -26,13 +26,13 @@ config_base: # Coupling settings export cpl="{doc.settings.cpl}" export cplflx="{doc.settings.cplflx}" - export cplgocart="{doc.settings.cplgocart}" + export cplchem="{doc.settings.cplchem}" export cplice="{doc.settings.cplice}" export cplwav="{doc.settings.cplwav}" export cplwav2atm="{doc.settings.cplwav2atm}" # Temporarily override settings for aerosol coupling - if [ $cplgocart = ".true." ]; then + if [ $cplchem = ".true." ]; then export cplflx=".false." export cplice=".false." export cplocn=".false." diff --git a/workflow/config/fcst.yaml b/workflow/config/fcst.yaml index a89a9e2e84d..5dbe5cfb482 100644 --- a/workflow/config/fcst.yaml +++ b/workflow/config/fcst.yaml @@ -5,7 +5,7 @@ config_fcst: filename: config.fcst FCSTEXEC: !FirstTrue - - when: !calc ( doc.settings.cplflx==".true." or doc.settings.cplgocart==".true." ) + - when: !calc ( doc.settings.cplflx==".true." or doc.settings.cplchem==".true." ) do: "ufs_model" - otherwise: "global_fv3gfs.x" more_exports_for_microphys: !FirstTrue @@ -40,7 +40,7 @@ config_fcst: - otherwise: !calc doc.partition_common.resources.run_gfsfcst restart_interval_gfs: !FirstTrue - - when: !calc doc.settings.cplgocart == ".false." + - when: !calc doc.settings.cplchem == ".false." do: !calc doc.fv3_gfs_settings.restart_interval - otherwise: !FirstTrue - when: !calc doc.fv3_gfs_settings.restart_interval == "0" @@ -110,7 +110,7 @@ config_fcst: # CICE parameters export NX_GLB="{doc.ice_settings.NX_GLB}" export NY_GLB="{doc.ice_settings.NY_GLB}" - export MESHICE="mesh.mx{doc.ice_settings.ICERES}.nc" + export MESH_OCN_ICE="mesh.mx{doc.ice_settings.ICERES}.nc" if [[ "$machine" == "WCOSS_C" ]]; then export memory_fcst="1024M" @@ -144,6 +144,8 @@ config_fcst: export dddmp={doc.fv3_gfs_settings.dddmp} # gfs_physics_nml section + export fscav_aero="{tools.fort(doc.fv3_gfs_settings.fscav_aero)}" + export h2o_phys="{tools.fort(doc.fv3_gfs_settings.h2o_phys)}" export ncld={doc.fv3_gfs_settings.phy_dependent_var.ncld} @@ -245,7 +247,7 @@ config_fcst: export nth_remap={doc.partition_common.resources.fallback_run_gfsremap[0].OMP_NUM_THREADS} fi - if [ $cplgocart = .true. ]; then # temporary settings for aerosol coupling + if [ $cplchem = .true. ]; then # temporary settings for aerosol coupling export DIAG_TABLE="$HOMEgfs/parm/parm_fv3diag/diag_table_aer" export FIELD_TABLE="$HOMEgfs/parm/parm_fv3diag/field_table_aer" export CHM_CFGDIR="{doc.chem_settings.CFGDIR}" diff --git a/workflow/config/nsst.yaml b/workflow/config/nsst.yaml index 6a188a03771..bc965adf4b5 100644 --- a/workflow/config/nsst.yaml +++ b/workflow/config/nsst.yaml @@ -4,14 +4,6 @@ config_nsst: filename: config.nsst - nst_spinup_logic: !FirstTrue - - when: !calc doc.nsst.get("NST_SPINUP","") - do: !expand "export NST_SPINUP={doc.nsst.NST_SPINUP}" - - otherwise: | - export NST_SPINUP=0 - #if [[ "$CDATE" = $SDATE ]]; then - # export NST_SPINUP=1 - #fi content: !expand | #!/bin/ksh -x @@ -30,7 +22,7 @@ config_nsst: export NST_MODEL={doc.nsst.NST_MODEL} # nstf_name(2) : NST_SPINUP : 0 = OFF, 1 = ON, - {nst_spinup_logic} + export NST_SPINUP={doc.nsst.NST_SPINUP} # nstf_name(3) : NST_RESV (Reserved, NSST Analysis) : 0 = OFF, 1 = ON export NST_RESV={doc.nsst.NST_RESV} diff --git a/workflow/defaults/chem.yaml b/workflow/defaults/chem.yaml index 58f45cd8aab..f26ab117202 100644 --- a/workflow/defaults/chem.yaml +++ b/workflow/defaults/chem.yaml @@ -1,13 +1,13 @@ # default settings for chemistry model core chem_defaults: &chem_defaults - MOD: gsdchem + MOD: gocart ntdiag: 0 CFGDIR: !FirstTrue - - when: !calc (doc.settings.cplgocart != ".true.") + - when: !calc (doc.settings.cplchem != ".true.") do: "not_set" - otherwise: INPDIR: !FirstTrue - - when: !calc (doc.settings.cplgocart != ".true.") + - when: !calc (doc.settings.cplchem != ".true.") do: "not_set" - otherwise: diff --git a/workflow/defaults/fv3_gfs.yaml b/workflow/defaults/fv3_gfs.yaml index e241a93c050..7487a0ac9ae 100644 --- a/workflow/defaults/fv3_gfs.yaml +++ b/workflow/defaults/fv3_gfs.yaml @@ -82,6 +82,7 @@ fv3_gfs_defaults: &fv3_gfs_defaults # WRTTASK_PER_GROUP: layout.WGRP_NTASKS # WRTIOBUF: layout.WRTIOBUF + fscav_aero: [ '*:0.0' ] new_o3force: yes h2o_phys: yes do_vort_damp: yes diff --git a/workflow/defaults/nsst.yaml b/workflow/defaults/nsst.yaml index 1ac69093986..f426364e9dc 100644 --- a/workflow/defaults/nsst.yaml +++ b/workflow/defaults/nsst.yaml @@ -1,8 +1,8 @@ nsst_defaults: &nsst_defaults NST_MODEL: 2 + NST_SPINUP: 0 NST_RESV: 0 ZSEA1: 0 ZSEA2: 0 NST_GSI: 3 NSTINFO: 0 - NST_SPINUP: 0 diff --git a/workflow/defaults/settings.yaml b/workflow/defaults/settings.yaml index d954f925d89..920c3836dbe 100644 --- a/workflow/defaults/settings.yaml +++ b/workflow/defaults/settings.yaml @@ -54,7 +54,6 @@ default_settings: &default_settings cplwav: .false. cplwav2atm: .false. cplchem: .false. - cplgocart: .false. cpl: !FirstTrue - when: !calc doc.settings.cplflx==".true." do: .true. @@ -64,8 +63,6 @@ default_settings: &default_settings do: .true. - when: !calc doc.settings.cplchem==".true." do: .true. - - when: !calc doc.settings.cplgocart==".true." - do: .true. - otherwise: .false. ic_source: coupled_ic # choices: coupled_ic, fv3_ic; default: coupled_ic. This option controls which diff --git a/workflow/layout/free_forecast_gfs.yaml b/workflow/layout/free_forecast_gfs.yaml index fff63b344d6..624202e7fc1 100644 --- a/workflow/layout/free_forecast_gfs.yaml +++ b/workflow/layout/free_forecast_gfs.yaml @@ -47,7 +47,7 @@ suite: !Cycle jgfs_init_chem: !Task <<: *exclusive_task_template RUN: 'gfs' - Disable: !calc doc.settings.cplgocart != '.true.' + Disable: !calc doc.settings.cplchem != '.true.' Trigger: !Depend jgfs_emc_mom6ic & up.gfs.forecast.at('-' + tools.dt_to_HMS(doc.settings.STEP_GFS)) resources: !calc partition.resources.run_init_chem J_JOB: rocoto/init_chem.sh @@ -82,7 +82,7 @@ suite: !Cycle forecast: !Family medcold: !Task - <<: *exclusive_task_template + <<: *forecast_task_template Disable: !calc doc.settings.cplflx == '.false.' or doc.settings.onestep == '.true.' Trigger: !FirstTrue - when: !calc doc.settings.cplwav=='.true.' @@ -93,13 +93,13 @@ suite: !Cycle J_JOB: JGLOBAL_FORECAST_MEDCOLD highres: !Task - <<: *exclusive_task_template + <<: *forecast_task_template Trigger: !FirstTrue - when: !calc doc.settings.cplflx=='.true.' and doc.settings.onestep=='.false.' do: !Depend medcold - when: !calc doc.settings.cplwav=='.true.' do: !Depend up.prep - - when: !calc doc.settings.cplgocart=='.true.' + - when: !calc doc.settings.cplchem=='.true.' do: !Depend up.up.ics.jgfs_init_chem & up.up.ics.jgfs_emc_mom6ic - otherwise: !Depend up.up.ics.jgfs_emc_mom6ic resources_remap: !JobRequest [ { <<: *remap_resource_template } ] diff --git a/workflow/schema/chem.yaml b/workflow/schema/chem.yaml index 64b10900a33..eb49adf9f53 100644 --- a/workflow/schema/chem.yaml +++ b/workflow/schema/chem.yaml @@ -5,7 +5,7 @@ chem_settings_template: !Template &chem_settings_template MOD: type: string - allowed: [ gsdchem ] + allowed: [ gocart ] description: "model selection for aerosols" CFGDIR: type: string diff --git a/workflow/schema/fv3.yaml b/workflow/schema/fv3.yaml index acdea9ef9e5..48d1677501a 100644 --- a/workflow/schema/fv3.yaml +++ b/workflow/schema/fv3.yaml @@ -32,6 +32,10 @@ fv3_settings_template: !Template &fv3_settings_template agrid_vel_rst: type: bool description: "write velocity restarts on A grid?" + fscav_aero: + type: string list + description: aerosol convective scavenging coefficients + optional: true # cal_pre: { type: bool } # do_sat_adjust: { type: bool } diff --git a/workflow/schema/nsst.yaml b/workflow/schema/nsst.yaml index 1efcc8eb05a..7ffd0b319bc 100644 --- a/workflow/schema/nsst.yaml +++ b/workflow/schema/nsst.yaml @@ -5,6 +5,10 @@ nsst_schema: &nsst_schema !Template description: >- nstf_name(1) : NST_MODEL (NSST Model) : 0 = OFF, 1 = ON but uncoupled, 2 = ON and coupled + NST_SPINUP: + type: int + allowed: [ 0, 1] + optional: yes NST_RESV: type: int allowed: [ 0, 1 ] @@ -24,7 +28,3 @@ nsst_schema: &nsst_schema !Template NSTINFO: type: int description: number of elements added in obs. data array - NST_SPINUP: - type: int - allowed: [ 0, 1] - optional: yes diff --git a/workflow/schema/wave.yaml b/workflow/schema/wave.yaml index 47df41acbf1..1da284f41ec 100644 --- a/workflow/schema/wave.yaml +++ b/workflow/schema/wave.yaml @@ -9,4 +9,4 @@ wave_settings_template: !Template &wave_settings_template description: "model selection for wave" CPL_WAVIC: type: string - allowed: [ 'CFSR', 'CFSRwave20200925' ] + allowed: [ 'CFSR', 'CFSRwave20200925', 'GEFSwave20210623' ]