diff --git a/AGCM.rc.tmpl b/AGCM.rc.tmpl
index 727d48c3..f989acc2 100644
--- a/AGCM.rc.tmpl
+++ b/AGCM.rc.tmpl
@@ -19,20 +19,36 @@ AGCM.LM: @AGCM_LM
AGCM.IM_WORLD: @AGCM_IM
@LATLON_AGCM AGCM.JM_WORLD: @AGCM_JM
+@CONUS AGCM.STRETCH_FACTOR: @STRETCH_FACTOR
+@CONUS AGCM.TARGET_LAT: 39.5
+@CONUS AGCM.TARGET_LON: -98.35
+
+###########################################################
+# long physics DT options
+# ----------------------------------------
+ADJUST_DT: .FALSE.
+CHEMISTRY_RUN_AT_INTERVAL_START: .TRUE.
+CHEMISTRY_DT: @LONG_DT
+GOCART_DT: @LONG_DT
+HEMCO_DT: @LONG_DT
+GF_DT: @LONG_DT
+UW_DT: @LONG_DT
+###########################################################
+
###########################################################
# dynamics options
# ----------------------------------------
DYCORE: @DYCORE
-#FV3_CONFIG: MONOTONIC
+@CONUS FV3_CONFIG: HWT
AdvCore_Advection: 0
###########################################################
###########################################################
# radiation options
# ----------------------------------------
- SOLAR_DT: 3600
- IRRAD_DT: 3600
-SATSIM_DT: 3600
+ SOLAR_DT: @SOLAR_DT
+ IRRAD_DT: @IRRAD_DT
+SATSIM_DT: @IRRAD_DT
SOLARAvrg: 0
IRRADAvrg: 0
EOT: .TRUE.
@@ -50,7 +66,6 @@ ORBIT_ANAL2B: .TRUE.
# ----------------------------------------
@GFDL_1M_CLDMICR_OPTION: GFDL_1M
@GFDL_1M_HYDROSTATIC: @GFDL_HYDRO
-@GFDL_1M_USE_AEROSOL_NN: .FALSE.
###########################################################
###########################################################
@@ -91,7 +106,8 @@ CLOSURE_CONGESTUS: 3
###########################################################
# Enable wet scavenging
-MTRI_increments::
+# NOTE: this section should be commented out when running gocart.data
+MCHEMTRI_increments::
DU::DU default
SS::SS default
SU::SO4 default
diff --git a/HISTORY.AGCM.rc.tmpl b/HISTORY.AGCM.rc.tmpl
index ae84551c..7ed8fa6e 100644
--- a/HISTORY.AGCM.rc.tmpl
+++ b/HISTORY.AGCM.rc.tmpl
@@ -991,13 +991,13 @@ PC@HIST_IMx@HIST_JM-DC.LM: @AGCM_LM
'NIFLUXV' , 'NI' ,
'NH3SV' , 'NI' ,
'NH4SV' , 'NI' ,
- 'MTRI%DU::DUIM' , 'PHYSICS' , 'DUSV' ,
- 'MTRI%SS::SSIM' , 'PHYSICS' , 'SSSV' ,
- 'MTRI%CA.oc::CA.ocphilicIM' , 'PHYSICS' , 'OCSV' ,
- 'MTRI%CA.bc::CA.bcphilicIM' , 'PHYSICS' , 'BCSV' ,
- 'MTRI%CA.br::CA.brphilicIM' , 'PHYSICS' , 'BRSV' ,
- 'MTRI%SU::SO4IM' , 'PHYSICS' , 'SUSV' ,
- 'MTRI%NI::NO3an1IM' , 'PHYSICS' , 'NISV' ,
+ 'MCHEMTRI%DU::DUIM' , 'PHYSICS' , 'DUSV' ,
+ 'MCHEMTRI%SS::SSIM' , 'PHYSICS' , 'SSSV' ,
+ 'MCHEMTRI%CA.oc::CA.ocphilicIM' , 'PHYSICS' , 'OCSV' ,
+ 'MCHEMTRI%CA.bc::CA.bcphilicIM' , 'PHYSICS' , 'BCSV' ,
+ 'MCHEMTRI%CA.br::CA.brphilicIM' , 'PHYSICS' , 'BRSV' ,
+ 'MCHEMTRI%SU::SO4IM' , 'PHYSICS' , 'SUSV' ,
+ 'MCHEMTRI%NI::NO3an1IM' , 'PHYSICS' , 'NISV' ,
::
tavg3d_aer_p.template: '%y4%m2%d2_%h2%n2z.nc4',
diff --git a/fvcore_layout.rc b/fvcore_layout.rc
index 50603168..834bad2b 100644
--- a/fvcore_layout.rc
+++ b/fvcore_layout.rc
@@ -2,6 +2,10 @@
@FV_HYDRO
range_warn = .T.
fv_debug = .F.
+ @FV_SCHMIDT
+ @FV_STRETCH_FAC
+ @FV_TARGET_LON
+ @FV_TARGET_LAT
/
&main_nml
@@ -28,8 +32,8 @@
do_qa = .false.
tau_l2v = 150.
tau_i2v = 150.
- tau_revp = 300.
- tau_frz = 300.
+ tau_revp = 450.
+ tau_frz = 450.
dw_land = 0.05
dw_ocean = 0.10
rh_inc = 0.30
diff --git a/gcm_regress.j b/gcm_regress.j
index 03e89e3a..2b98be46 100755
--- a/gcm_regress.j
+++ b/gcm_regress.j
@@ -26,15 +26,68 @@ limit stacksize unlimited
# -----------------------------------------------
setenv OMP_NUM_THREADS 1
+#######################################################################
+# Command Line Arguments
+#######################################################################
+
+# Set the defaults for our arguments
+# ----------------------------------
+
+# We use positive logic here. So if we want to run
+# both tests, we set both to TRUE. If we want to
+# run only one, we set the other to FALSE
+
+set RUN_STARTSTOP = TRUE
+set RUN_LAYOUT = TRUE
+
+while ($#argv > 0)
+ switch ($1)
+ case --startstop:
+ set RUN_LAYOUT = FALSE
+ shift
+ breaksw
+ case --layout:
+ set RUN_STARTSTOP = FALSE
+ shift
+ breaksw
+ case -[Hh]:
+ case --[Hh]elp:
+ echo "Usage: $0 [--startstop] [--layout]"
+ echo ""
+ echo "By default, both the start/stop and layout tests are run."
+ echo "You can specify one or the other with the following options:"
+ echo " --startstop: Only run the start/stop test"
+ echo " --layout: Only run the layout test"
+ echo " -h, --help: Print this help message"
+ exit 0
+ default:
+ echo "Unknown argument: $1"
+ echo "Usage: $0 [--startstop] [--layout]"
+ echo ""
+ echo "By default, both the start/stop and layout tests are run."
+ echo "You can specify one or the other with the following options:"
+ echo " --startstop: Only run the start/stop test"
+ echo " --layout: Only run the layout test"
+ echo " -h, --help: Print this help message"
+ exit 1
+ endsw
+end
+
+# Now because of g5_modules we have to "clear" argv
+# otherwise g5_modules will go into script mode and not
+# source the modules
+
+set argv = ()
+
#######################################################################
# Architecture Specific Environment Variables
#######################################################################
setenv ARCH `uname`
-setenv SITE @SITE
-setenv GEOSDIR @GEOSDIR
-setenv GEOSBIN @GEOSBIN
+setenv SITE @SITE
+setenv GEOSDIR @GEOSDIR
+setenv GEOSBIN @GEOSBIN
source $GEOSBIN/g5_modules
setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}:${BASEDIR}/${ARCH}/lib:${GEOSDIR}/lib
@@ -45,17 +98,17 @@ setenv RUN_CMD "$GEOSBIN/esma_mpirun -np "
# Experiment Specific Environment Variables
#######################################################################
-setenv EXPID @EXPID
-setenv EXPDIR @EXPDIR
-setenv HOMDIR @HOMDIR
-setenv SCRDIR $EXPDIR/scratch
+setenv EXPID @EXPID
+setenv EXPDIR @EXPDIR
+setenv HOMDIR @HOMDIR
+setenv SCRDIR $EXPDIR/scratch
#######################################################################
# Create Clean Regress Sub-Directory
#######################################################################
-mkdir -p $EXPDIR/regress
-cd $EXPDIR/regress
+mkdir -p $EXPDIR/regress
+cd $EXPDIR/regress
/bin/rm -rf `/bin/ls | grep -v gcm_regress.j | grep -v slurm`
# Copy RC Files from Home Directory
@@ -63,8 +116,8 @@ cd $EXPDIR/regress
cd $HOMDIR
set files = `ls -1 *.rc`
foreach file ($files)
- set fname = `echo $file | cut -d "." -f1`
- cp $fname.rc $EXPDIR/regress
+ set fname = `echo $file | cut -d "." -f1`
+ cp $fname.rc $EXPDIR/regress
end
cd $EXPDIR/regress
@@ -85,13 +138,6 @@ set IM = `grep AGCM_IM: $HOMDIR/AGCM.rc | cut -d':' -f2`
set JM = `grep AGCM_JM: $HOMDIR/AGCM.rc | cut -d':' -f2`
set LM = `grep AGCM_LM: $HOMDIR/AGCM.rc | cut -d':' -f2`
-@ IM6 = 6 * $IM
-if( $IM6 == $JM ) then
- set CUBE = TRUE
-else
- set CUBE = FALSE
-endif
-
# Create Restart List
# -------------------
set rst_files = `cat AGCM.rc | grep "RESTART_FILE" | grep -v VEGDYN | grep -v "#" | cut -d ":" -f1 | cut -d "_" -f1-2`
@@ -165,8 +211,32 @@ cat << _EOF_ > $FILE
EXPID: ${EXPID}
EXPDSC: ${EXPID}_Regression_Test
-COLLECTIONS:
+COLLECTIONS: test_collection
::
+
+ test_collection.template: '%y4%m2%d2_%h2%n2z.nc4' ,
+ test_collection.archive: '%c/Y%y4' ,
+ test_collection.format: 'CFIO' ,
+ test_collection.deflate: 1 ,
+ test_collection.frequency: 060000 ,
+@DATAOCEAN test_collection.fields: 'PHIS', 'AGCM' ,
+@DATAOCEAN 'SLP' , 'DYN' ,
+@DATAOCEAN 'T' , 'DYN' ,
+@DATAOCEAN 'U;V' , 'DYN' ,
+@DATAOCEAN 'Q' , 'MOIST', 'QV',
+@MOM5 test_collection.fields: 'UW' ,'MOM' , 'US',
+@MOM5 'VW' ,'MOM' , 'VS',
+@MOM5 'TW' ,'MOM' , 'TS',
+@MOM5 'SW' ,'MOM' , 'SS',
+@MOM5 'SLV' ,'MOM' ,
+@MOM5 'QFLUX','OCEAN' ,
+@MOM6 test_collection.fields: 'UW' ,'MOM6' , 'US',
+@MOM6 'VW' ,'MOM6' , 'VS',
+@MOM6 'TW' ,'MOM6' , 'TS',
+@MOM6 'SW' ,'MOM6' , 'SS',
+@MOM6 'SLV' ,'MOM6' ,
+@MOM6 'QFLUX','OCEAN' ,
+ ::
_EOF_
##################################################################
@@ -220,9 +290,9 @@ if( @EMISSIONS == AMIP_EMISSIONS ) then
set AMIP_Transition_Date = 20000301
if( $nymd0 < ${AMIP_Transition_Date} ) then
- set AMIP_EMISSIONS_DIRECTORY = $EXPDIR/RC/AMIP.20C
+ set AMIP_EMISSIONS_DIRECTORY = $EXPDIR/RC/AMIP.20C
else
- set AMIP_EMISSIONS_DIRECTORY = $EXPDIR/RC/AMIP
+ set AMIP_EMISSIONS_DIRECTORY = $EXPDIR/RC/AMIP
endif
else
set AMIP_EMISSIONS_DIRECTORY = $EXPDIR/RC/AMIP
@@ -307,6 +377,48 @@ if( $REPLAY_MODE == 'Exact' | $REPLAY_MODE == 'Regular' ) then
endif
+# Copy the original files
+
+cp CAP.rc CAP.rc.orig
+cp AGCM.rc AGCM.rc.orig
+cp HISTORY.rc0 HISTORY.rc
+
+# Capture the original NX and NY
+
+set NX0 = `grep "^ *NX:" AGCM.rc.orig | cut -d':' -f2`
+set NY0 = `grep "^ *NY:" AGCM.rc.orig | cut -d':' -f2`
+
+# Set the test_durations for the various tests in HHMMSS format
+#
+# We can generically set the lengths of startstop and layout tests
+# and use those values to set the test durations for the various steps
+
+set length_of_startstop_test = 240000
+set length_of_layout_test = 060000
+
+# Now for safety, we need to make sure that the test durations
+# are divisible by 3 hours due to a limitation in GOCART. We'll use modulo
+# for this
+@ length_of_startstop_test_mod = $length_of_startstop_test % 030000
+@ length_of_layout_test_mod = $length_of_layout_test % 030000
+
+# If either of these is not zero, then we exit with an error
+if( $length_of_startstop_test_mod != 0 || $length_of_layout_test_mod != 0 ) then
+ echo "ERROR: Both the length_of_startstop_test and length_of_layout_test"
+ echo " must be divisible by 3 hours due to a limitation in GOCART."
+ exit 1
+endif
+
+# Now we can set the test durations for the various steps
+set test_duration_step1 = $length_of_startstop_test
+set test_duration_step2 = $length_of_layout_test
+
+# The step3 duration is step1 - step2
+@ test_duration_step3 = $test_duration_step1 - $test_duration_step2
+
+# The step4 duration is identical to step2
+set test_duration_step4 = $test_duration_step2
+
##################################################################
######
###### Perform Regression Test # 1
@@ -314,94 +426,112 @@ endif
######
##################################################################
-set test_duration = 240000
+# This only needs to be run in the startstop case
-cp CAP.rc CAP.rc.orig
-cp AGCM.rc AGCM.rc.orig
-cp HISTORY.rc0 HISTORY.rc
+if( $RUN_STARTSTOP == TRUE ) then
-set NX0 = `grep "^ *NX:" AGCM.rc.orig | cut -d':' -f2`
-set NY0 = `grep "^ *NY:" AGCM.rc.orig | cut -d':' -f2`
+ ./strip CAP.rc
+ set oldstring = `cat CAP.rc | grep JOB_SGMT:`
+ set newstring = "JOB_SGMT: 00000000 ${test_duration_step1}"
+ /bin/mv CAP.rc CAP.tmp
+ cat CAP.tmp | sed -e "s?$oldstring?$newstring?g" > CAP.rc
-@ NPES0 = $NX0 * $NY0
+ set NX = `grep "^ *NX": AGCM.rc | cut -d':' -f2`
+ set NY = `grep "^ *NY": AGCM.rc | cut -d':' -f2`
+ @ NPES = $NX * $NY
+ echo "=== Running test of duration ${test_duration_step1} with NX = $NX and NY = $NY starting at $nymd0 $nhms0 ==="
-./strip CAP.rc
-set oldstring = `cat CAP.rc | grep JOB_SGMT:`
-set newstring = "JOB_SGMT: 00000000 ${test_duration}"
-/bin/mv CAP.rc CAP.tmp
-cat CAP.tmp | sed -e "s?$oldstring?$newstring?g" > CAP.rc
+ @OCEAN_PRELOAD $RUN_CMD $NPES ./GEOSgcm.x --logging_config 'logging.yaml'
-set NX = `grep "^ *NX": AGCM.rc | cut -d':' -f2`
-set NY = `grep "^ *NY": AGCM.rc | cut -d':' -f2`
-@ NPES = $NX * $NY
-@OCEAN_PRELOAD $RUN_CMD $NPES ./GEOSgcm.x
+ set date = `cat cap_restart`
+ set nymde1 = $date[1]
+ set nhmse1 = $date[2]
+ foreach chk ( $chk_file_names )
+ /bin/mv -v $chk ${chk}.${nymde1}_${nhmse1}.1
+ end
+ @MOM6/bin/mv -v RESTART/MOM.res.nc MOM.res.nc.1
-set date = `cat cap_restart`
-set nymde = $date[1]
-set nhmse = $date[2]
+ # Move history as well
+ set hist_file_names = `ls -1 ${EXPID}.test_collection.*.nc4`
+ # Need also make another variable storing all the history files
+ set complete_startstop_hist_file_names = `ls -1 ${EXPID}.test_collection.*.nc4`
-foreach chk ( $chk_file_names )
- /bin/mv $chk ${chk}.${nymde}_${nhmse}.1
-end
-@MOM6/bin/mv RESTART/MOM.res.nc MOM.res.nc.1
+ foreach hist ( $hist_file_names )
+ /bin/mv -v $hist ${hist}.${nymde1}_${nhmse1}.1
+ end
+
+endif
##################################################################
######
###### Perform Regression Test # 2
+###### (6-Hour Using NX:NY Layout)
######
##################################################################
-set test_duration = 180000
-
-@DATAOCEAN if( $CUBE == TRUE ) then
-@DATAOCEAN @ test_NX = $NPES0 / 6
-@DATAOCEAN @ test_NP = $IM / $test_NX
-@DATAOCEAN if($test_NP < 4 ) then
-@DATAOCEAN @ test_NX = $IM / 4 # To ensure enough gridpoints for HALO
-@DATAOCEAN endif
-@DATAOCEAN set test_NY = 6
-@DATAOCEAN else
-@DATAOCEAN set test_NX = $NY0
-@DATAOCEAN set test_NY = $NX0
-@DATAOCEAN endif
-
-@COUPLED set test_NX = $NX0
-@COUPLED set test_NY = $NY0
+# This case runs for both startstop and layout
/bin/rm cap_restart
echo $nymd0 $nhms0 > cap_restart
-cp CAP.rc.orig CAP.rc
-cp AGCM.rc.orig AGCM.rc
+cp CAP.rc.orig CAP.rc
+cp AGCM.rc.orig AGCM.rc
cp HISTORY.rc0 HISTORY.rc
+@COUPLED /bin/rm -rf INPUT
+@COUPLED /bin/mkdir INPUT
+@COUPLED cp $EXPDIR/RESTART/* INPUT
+
./strip CAP.rc
-set oldstring = `cat CAP.rc | grep JOB_SGMT:`
-set newstring = "JOB_SGMT: 00000000 ${test_duration}"
+set oldstring = `cat CAP.rc | grep JOB_SGMT:`
+set newstring = "JOB_SGMT: 00000000 ${test_duration_step2}"
/bin/mv CAP.rc CAP.tmp
cat CAP.tmp | sed -e "s?$oldstring?$newstring?g" > CAP.rc
-./strip AGCM.rc
-set oldstring = `cat AGCM.rc | grep "^ *NX:"`
-set newstring = "NX: ${test_NX}"
-/bin/mv AGCM.rc AGCM.tmp
-cat AGCM.tmp | sed -e "s?$oldstring?$newstring?g" > AGCM.rc
-set oldstring = `cat AGCM.rc | grep "^ *NY:"`
-set newstring = "NY: ${test_NY}"
-/bin/mv AGCM.rc AGCM.tmp
-cat AGCM.tmp | sed -e "s?$oldstring?$newstring?g" > AGCM.rc
-
setenv YEAR `cat cap_restart | cut -c1-4`
./linkbcs
set NX = `grep "^ *NX": AGCM.rc | cut -d':' -f2`
set NY = `grep "^ *NY": AGCM.rc | cut -d':' -f2`
@ NPES = $NX * $NY
-@OCEAN_PRELOAD $RUN_CMD $NPES ./GEOSgcm.x
+
+echo "=== Running test of duration ${test_duration_step2} with NX = $NX and NY = $NY starting at $nymd0 $nhms0 ==="
+
+@OCEAN_PRELOAD $RUN_CMD $NPES ./GEOSgcm.x --logging_config 'logging.yaml'
+
+set date = `cat cap_restart`
+set nymde2 = $date[1]
+set nhmse2 = $date[2]
+
+# If we are doing startstop we need to copy the checkpoints
+# If we run layout only, we need to move the checkpoints
+if ($RUN_STARTSTOP == TRUE) then
+ set MOVE_OR_COPY = "/bin/cp -v"
+else
+ set MOVE_OR_COPY = "/bin/mv -v"
+endif
+
+foreach chk ( $chk_file_names )
+ $MOVE_OR_COPY $chk ${chk}.${nymde2}_${nhmse2}.2
+end
+@MOM6 $MOVE_OR_COPY RESTART/MOM.res.nc MOM.res.nc.2
+
+# *Copy* history as well
+set hist_file_names = `ls -1 ${EXPID}.test_collection.*.nc4`
+
+# Need also make another variable storing all the history files
+set complete_layout_hist_file_names = `ls -1 ${EXPID}.test_collection.*.nc4`
+
+# Note: We copy the history here because this lets the file(s)
+# be available for Test #3 so a full compare can be made
+# with Test #1
+foreach hist ( $hist_file_names )
+ $MOVE_OR_COPY $hist ${hist}.${nymde2}_${nhmse2}.2
+end
foreach rst ( $rst_file_names )
- /bin/rm -f $rst
+ /bin/rm -f $rst
end
set numrst = `echo $rst_files | wc -w`
set numchk = `echo $chk_files | wc -w`
@@ -431,132 +561,375 @@ end
##################################################################
######
###### Perform Regression Test # 3
+###### (18-Hour Using NX:NY Layout)
######
##################################################################
-set test_duration = 060000
+# This case is only needed for startstop
+
+if ($RUN_STARTSTOP == TRUE) then
+
+ cp HISTORY.rc0 HISTORY.rc
+
+ @MOM6# When you restart in MOM6 mode, you must change input_filename
+ @MOM6# in the input.nml file from 'n' to 'r'
+ @MOM6 /bin/cp input.nml input.nml.orig
+ @MOM6 sed -i -e "s/input_filename = 'n'/input_filename = 'r'/g" input.nml
+
+ ./strip CAP.rc
+ set oldstring = `cat CAP.rc | grep JOB_SGMT:`
+ set newstring = "JOB_SGMT: 00000000 ${test_duration_step3}"
+ /bin/mv CAP.rc CAP.tmp
+ cat CAP.tmp | sed -e "s?$oldstring?$newstring?g" > CAP.rc
+
+ setenv YEAR `cat cap_restart | cut -c1-4`
+ ./linkbcs
+ set NX = `grep "^ *NX": AGCM.rc | cut -d':' -f2`
+ set NY = `grep "^ *NY": AGCM.rc | cut -d':' -f2`
+ @ NPES = $NX * $NY
+
+ set date = `cat cap_restart`
+ set nymdb = $date[1]
+ set nhmsb = $date[2]
+
+ echo "=== Running test of duration ${test_duration_step3} with NX = $NX and NY = $NY starting at $nymdb $nhmsb ==="
+
+ @OCEAN_PRELOAD $RUN_CMD $NPES ./GEOSgcm.x --logging_config 'logging.yaml'
+
+ set date = `cat cap_restart`
+ set nymde3 = $date[1]
+ set nhmse3 = $date[2]
+
+ foreach chk ( $chk_file_names )
+ /bin/mv -v $chk ${chk}.${nymde3}_${nhmse3}.3
+ end
+ @MOM6/bin/mv -v RESTART/MOM.res.nc MOM.res.nc.3
+
+ # Move history as well
+ set hist_file_names = `ls -1 ${EXPID}.test_collection.*.nc4`
+
+ foreach hist ( $hist_file_names )
+ /bin/mv -v $hist ${hist}.${nymde3}_${nhmse3}.3
+ end
-if( $CUBE == TRUE ) then
- set test_NX = 1
- set test_NY = 6
- set test_Cores = 6
-else
- set test_NX = 1
- set test_NY = 2
- set test_Cores = 2
endif
-./strip CAP.rc
-set oldstring = `cat CAP.rc | grep JOB_SGMT:`
-set newstring = "JOB_SGMT: 00000000 ${test_duration}"
-/bin/mv CAP.rc CAP.tmp
-cat CAP.tmp | sed -e "s?$oldstring?$newstring?g" > CAP.rc
+##################################################################
+######
+###### Perform Regression Test # 4
+###### (6-Hour Using 1:6 Layout)
+######
+##################################################################
-./strip AGCM.rc
-set oldstring = `cat AGCM.rc | grep "^ *NX:"`
-set newstring = "NX: ${test_NX}"
-/bin/mv AGCM.rc AGCM.tmp
-cat AGCM.tmp | sed -e "s?$oldstring?$newstring?g" > AGCM.rc
-set oldstring = `cat AGCM.rc | grep "^ *NY:"`
-set newstring = "NY: ${test_NY}"
-/bin/mv AGCM.rc AGCM.tmp
-cat AGCM.tmp | sed -e "s?$oldstring?$newstring?g" > AGCM.rc
-@COUPLED set oldstring = `cat AGCM.rc | grep "^ *OGCM.NX:"`
-@COUPLED set newstring = "OGCM.NX: ${test_NY}"
-@COUPLED /bin/mv AGCM.rc AGCM.tmp
-@COUPLED cat AGCM.tmp | sed -e "s?$oldstring?$newstring?g" > AGCM.rc
-@COUPLED set oldstring = `cat AGCM.rc | grep "^ *OGCM.NY:"`
-@COUPLED set newstring = "OGCM.NY: ${test_NX}"
-@COUPLED /bin/mv AGCM.rc AGCM.tmp
-@COUPLED cat AGCM.tmp | sed -e "s?$oldstring?$newstring?g" > AGCM.rc
-
-@MOM5sed -r -i -e "/^ *layout/ s#= ([0-9]+),*([0-9]+)#= ${test_NY},${test_NX}#" input.nml
-@MOM6sed -r -i -e "/^ *LAYOUT/ s#= ([0-9]+), *([0-9]+)#= ${test_NY}, ${test_NX}#" MOM_input
+# This case runs only for layout
+
+if ( $RUN_LAYOUT == TRUE) then
+
+ set test_NX = 1
+ set test_NY = 6
+
+ # Copy Original Restarts to Regress directory
+ # -------------------------------------------
+ foreach rst ( $rst_file_names )
+ /bin/rm -f $rst
+ cp $EXPDIR/$rst $EXPDIR/regress
+ end
+
+ @COUPLED /bin/rm -rf INPUT
+ @COUPLED /bin/mkdir INPUT
+ @COUPLED cp $EXPDIR/RESTART/* INPUT
+
+ @COUPLED # restore original input.nml
+ @COUPLED /bin/mv input.nml.orig input.nml
+
+ /bin/rm cap_restart
+ echo $nymd0 $nhms0 > cap_restart
+
+ cp CAP.rc.orig CAP.rc
+ cp AGCM.rc.orig AGCM.rc
+ cp HISTORY.rc0 HISTORY.rc
+
+ ./strip CAP.rc
+ set oldstring = `cat CAP.rc | grep JOB_SGMT:`
+ set newstring = "JOB_SGMT: 00000000 ${test_duration_step4}"
+ /bin/mv CAP.rc CAP.tmp
+ cat CAP.tmp | sed -e "s?$oldstring?$newstring?g" > CAP.rc
+
+ ./strip AGCM.rc
+ set oldstring = `cat AGCM.rc | grep "^ *NX:"`
+ set newstring = "NX: ${test_NX}"
+ /bin/mv AGCM.rc AGCM.tmp
+ cat AGCM.tmp | sed -e "s?$oldstring?$newstring?g" > AGCM.rc
+ set oldstring = `cat AGCM.rc | grep "^ *NY:"`
+ set newstring = "NY: ${test_NY}"
+ /bin/mv AGCM.rc AGCM.tmp
+ cat AGCM.tmp | sed -e "s?$oldstring?$newstring?g" > AGCM.rc
+ @COUPLED set oldstring = `cat AGCM.rc | grep "^ *OGCM.NX:"`
+ @COUPLED set newstring = "OGCM.NX: ${test_NY}"
+ @COUPLED /bin/mv AGCM.rc AGCM.tmp
+ @COUPLED cat AGCM.tmp | sed -e "s?$oldstring?$newstring?g" > AGCM.rc
+ @COUPLED set oldstring = `cat AGCM.rc | grep "^ *OGCM.NY:"`
+ @COUPLED set newstring = "OGCM.NY: ${test_NX}"
+ @COUPLED /bin/mv AGCM.rc AGCM.tmp
+ @COUPLED cat AGCM.tmp | sed -e "s?$oldstring?$newstring?g" > AGCM.rc
+
+ @MOM5sed -r -i -e "/^ *layout/ s#= ([0-9]+),*([0-9]+)#= ${test_NY},${test_NX}#" input.nml
+ @MOM6sed -r -i -e "s/#override LAYOUT = 3, 2/#override LAYOUT = ${test_NY}, ${test_NX}/g" MOM_override
+
+ setenv YEAR `cat cap_restart | cut -c1-4`
+ ./linkbcs
+ set NX = `grep "^ *NX": AGCM.rc | cut -d':' -f2`
+ set NY = `grep "^ *NY": AGCM.rc | cut -d':' -f2`
+ @ NPES = $NX * $NY
+
+ echo "=== Running test of duration ${test_duration_step4} with NX = $test_NX and NY = $test_NY starting at $nymd0 $nhms0 ==="
+
+ @OCEAN_PRELOAD $RUN_CMD $NPES ./GEOSgcm.x --logging_config 'logging.yaml'
+
+ set date = `cat cap_restart`
+ set nymde4 = $date[1]
+ set nhmse4 = $date[2]
+
+ foreach chk ( $chk_file_names )
+ /bin/mv -v $chk ${chk}.${nymde4}_${nhmse4}.4
+ end
+ @MOM6/bin/mv -v RESTART/MOM.res.nc MOM.res.nc.4
+
+ # Move history as well
+ set hist_file_names = `ls -1 ${EXPID}.test_collection.*.nc4`
+
+ foreach hist ( $hist_file_names )
+ /bin/mv -v $hist ${hist}.${nymde4}_${nhmse4}.4
+ end
-setenv YEAR `cat cap_restart | cut -c1-4`
-./linkbcs
-set NX = `grep "^ *NX": AGCM.rc | cut -d':' -f2`
-set NY = `grep "^ *NY": AGCM.rc | cut -d':' -f2`
-@ NPES = $NX * $NY
-@OCEAN_PRELOAD $RUN_CMD $NPES ./GEOSgcm.x
+endif
-set date = `cat cap_restart`
-set nymde = $date[1]
-set nhmse = $date[2]
+#######################################################################
+# Compare Restarts
+# for start stop regression
+#######################################################################
-foreach chk ( $chk_file_names )
- /bin/mv $chk ${chk}.${nymde}_${nhmse}.2
-end
-@MOM6/bin/mv RESTART/MOM.res.nc MOM.res.nc.2
+# This part compares the restarts from the 24-hour NXxNY run (.1) with the
+# restarts at the end of the 6-hour + 18-hour runs (.3)
+
+if ($RUN_STARTSTOP == TRUE) then
+
+ set NCCMP = `echo ${BASEDIR}/${ARCH}/bin/nccmp -dmfgBq `
+
+ if( -e startstop_regress_test ) /bin/rm startstop_regress_test
+
+ echo "=== Comparing restarts from ${NX0}x${NY0} run of duration ${test_duration_step1} with restarts from ${test_duration_step2} + ${test_duration_step3} ${NX0}x${NY0} runs ==="
+
+ set startstop_pass = true
+ foreach chk ( $chk_file_names )
+ set file1 = ${chk}.${nymde1}_${nhmse1}.1
+ set file2 = ${chk}.${nymde3}_${nhmse3}.3
+ if( -e $file1 && -e $file2 ) then
+ set check = true
+ foreach exempt (${EXEMPT_chk})
+ if( $chk == $exempt ) set check = false
+ end
+ if( $check == true ) then
+ echo Comparing ${chk}
+
+ # compare binary checkpoint files
+ cmp $file1 $file2
+ if( $status == 0 ) then
+ echo Start-Stop Success!
+ echo " "
+ else
+ echo Start-Stop Failed!
+ echo " "
+ set startstop_pass = false
+ endif
+
+ # compare NetCDF-4 checkpoint files
+ # ${NCCMP} $file1 $file2
+ # if( status == 0 ) then
+ # echo Start-Stop Success!
+ # echo " "
+ # else
+ # echo Start-Stop Failed!
+ # echo " "
+ # set startstop_pass = false
+ # endif
+
+ endif
+ endif
+ end
+
+ @MOM6# check MOM.res.nc (MOM6 restart)
+ @MOM6set file1 = MOM.res.nc.1
+ @MOM6set file2 = MOM.res.nc.3
+ @MOM6if( -e $file1 && -e $file2 ) then
+ @MOM6 set check = true
+ @MOM6 if( $check == true ) then
+ @MOM6 echo Comparing "MOM6 restarts"
+ @MOM6 cmp $file1 $file2
+ @MOM6 if( $status == 0 ) then
+ @MOM6 echo Start-Stop Success!
+ @MOM6 echo " "
+ @MOM6 else
+ @MOM6 echo Start-Stop Failed!
+ @MOM6 echo " "
+ @MOM6 set pass = false
+ @MOM6 endif
+ @MOM6 endif
+ @MOM6endif
+
+ echo "=== Comparing history files from ${NX0}x${NY0} run of duration ${test_duration_step1} with restarts from ${test_duration_step2} + ${test_duration_step3} ${NX0}x${NY0} runs ==="
+
+ # Check history files
+ foreach hist ( $complete_startstop_hist_file_names )
+ set file1 = ${hist}.${nymde1}_${nhmse1}.1
+ set file2 = ${hist}.${nymde3}_${nhmse3}.3
+ if( -e $file1 && -e $file2 ) then
+ set check = true
+ if( $check == true ) then
+ echo Comparing ${hist}
+
+ # compare history files
+ ${NCCMP} $file1 $file2
+ if( $status == 0 ) then
+ echo Start-Stop Success!
+ echo " "
+ else
+ echo Start-Stop Failed!
+ echo " "
+ set startstop_pass = false
+ endif
+
+ endif
+ endif
+ end
+
+ if( $startstop_pass == true ) then
+ echo " PASS " > startstop_regress_test
+ else
+ echo " " > startstop_regress_test
+ endif
+
+else
+
+ # We need to set something here for the "overall" regress_test file
+ set startstop_pass = true
+
+endif
#######################################################################
# Compare Restarts
+# for layout regression
#######################################################################
-set CDO = `echo ${BASEDIR}/${ARCH}/bin/cdo -Q -s diffn`
+# This part compares the restarts from the 6-hour NXxNY run (.2) with the
+# restarts from the 6-hour 1x6 run (.4)
+
+if ($RUN_LAYOUT == TRUE) then
+
+ set NCCMP = `echo ${BASEDIR}/${ARCH}/bin/nccmp -dmfgBq `
+
+ if( -e layout_regress_test ) /bin/rm layout_regress_test
+
+ echo "=== Comparing restarts from ${NX0}x${NY0} run of duration ${test_duration_step2} with restarts from ${test_NX}x${test_NY} run of duration ${test_duration_step4} ==="
+
+ set layout_pass = true
+ foreach chk ( $chk_file_names )
+ set file1 = ${chk}.${nymde2}_${nhmse2}.2
+ set file2 = ${chk}.${nymde4}_${nhmse4}.4
+ if( -e $file1 && -e $file2 ) then
+ set check = true
+ foreach exempt (${EXEMPT_chk})
+ if( $chk == $exempt ) set check = false
+ end
+ if( $check == true ) then
+ echo Comparing ${chk}
+
+ # compare binary checkpoint files
+ cmp $file1 $file2
+ if( $status == 0 ) then
+ echo Layout Success!
+ echo " "
+ else
+ echo Layout Failed!
+ echo " "
+ set layout_pass = false
+ endif
+
+ # compare NetCDF-4 checkpoint files
+ # ${NCCMP} $file1 $file2
+ # if( status == 0 ) then
+ # echo Layout Success!
+ # echo " "
+ # else
+ # echo Layout Failed!
+ # echo " "
+ # set layout_pass = false
+ # endif
-if( -e regress_test ) /bin/rm regress_test
+ endif
+ endif
+ end
+
+ @MOM6# check MOM.res.nc (MOM6 restart)
+ @MOM6set file1 = MOM.res.nc.2
+ @MOM6set file2 = MOM.res.nc.4
+ @MOM6if( -e $file1 && -e $file2 ) then
+ @MOM6 set check = true
+ @MOM6 if( $check == true ) then
+ @MOM6 echo Comparing "MOM6 restarts"
+ @MOM6 cmp $file1 $file2
+ @MOM6 if( $status == 0 ) then
+ @MOM6 echo Layout Success!
+ @MOM6 echo " "
+ @MOM6 else
+ @MOM6 echo Layout Failed!
+ @MOM6 echo " "
+ @MOM6 set pass = false
+ @MOM6 endif
+ @MOM6 endif
+ @MOM6endif
+
+ echo "=== Comparing history files from 6-hour ${NX0}x${NY0} run with restarts from 6-hour ${test_NX}x${test_NY} run ==="
+
+ # Check history files
+ foreach hist ( $complete_layout_hist_file_names )
+ set file1 = ${hist}.${nymde2}_${nhmse4}.2
+ set file2 = ${hist}.${nymde2}_${nhmse4}.4
+ if( -e $file1 && -e $file2 ) then
+ set check = true
+ if( $check == true ) then
+ echo Comparing ${hist}
+
+ # compare history files
+ ${NCCMP} $file1 $file2
+ if( $status == 0 ) then
+ echo Layout Success!
+ echo " "
+ else
+ echo Layout Failed!
+ echo " "
+ set layout_pass = false
+ endif
-set pass = true
-foreach chk ( $chk_file_names )
- set file1 = ${chk}.${nymde}_${nhmse}.1
- set file2 = ${chk}.${nymde}_${nhmse}.2
- if( -e $file1 && -e $file2 ) then
- set check = true
- foreach exempt (${EXEMPT_chk})
- if( $chk == $exempt ) set check = false
- end
- if( $check == true ) then
- echo Comparing ${chk}
-
-# compare binary checkpoint files
- cmp $file1 $file2
- if( $status == 0 ) then
- echo Success!
- echo " "
- else
- echo Failed!
- echo " "
- set pass = false
endif
+ endif
+ end
-# compare NetCDF-4 checkpoint files
-# set NUMDIFF = `${CDO} $file1 $file2 | awk '{print $1}'`
-# if( "$NUMDIFF" == "" ) then
-# echo Success!
-# echo " "
-# else
-# echo Failed!
-# echo `${CDO} $file1 $file2`
-# echo " "
-# set pass = false
-# endif
-
- endif
- endif
-end
+ if( $layout_pass == true ) then
+ echo " PASS " > layout_regress_test
+ else
+ echo " " > layout_regress_test
+ endif
+
+else
+
+ # We need to set something here for the "overal" regress_test file
+ set layout_pass = true
+
+endif
-# check MOM.res.nc (MOM6 restart)
-@MOM6set file1 = MOM.res.nc.1
-@MOM6set file2 = MOM.res.nc.2
-@MOM6if( -e $file1 && -e $file2 ) then
-@MOM6 set check = true
-@MOM6 if( $check == true ) then
-@MOM6 echo Comparing "MOM6 restarts"
-@MOM6 cmp $file1 $file2
-@MOM6 if( $status == 0 ) then
-@MOM6 echo Success!
-@MOM6 echo " "
-@MOM6 else
-@MOM6 echo Failed!
-@MOM6 echo " "
-@MOM6 set pass = false
-@MOM6 endif
-@MOM6 endif
-@MOM6endif
-
-if( $pass == true ) then
- echo " PASS " > regress_test
+if( $startstop_pass == true && $layout_pass == true ) then
+ echo " PASS " > regress_test
else
- echo " " > regress_test
+ echo " " > regress_test
endif
diff --git a/gcm_setup b/gcm_setup
index 6e8600f4..89ed8288 100755
--- a/gcm_setup
+++ b/gcm_setup
@@ -198,14 +198,11 @@ echo " ${C2}c1440 - 1/16 deg (${C1} 6.25 km${C2}) ${CN}"
echo " ${C2}c2880 - 1/32 deg (${C1} 3.125 km${C2}) ${CN}"
echo " ${C2}c5760 - 1/64 deg (${C1} 1.5625 km${C2}) ${CN}"
echo " ${C2} CONUS Stretched Grids "
-echo " ${C2}c270 -- ${C1} 13.0 -100 km${C2}) ${CN} "
-echo " ${C2}c540 -- ${C1} 7.0 - 50 km${C2}) ${CN} "
-echo " ${C2}c1080 - ${C1} 3.5 - 25 km${C2}) ${CN} "
-echo " ${C2}c2160 - ${C1} 1.25- 12 km${C2}) ${CN} "
-echo " ${C2} DYAMOND Grids "
-echo " ${C2}c768 -- 1/8 deg (${C1} 12.0 km${C2}) ${CN}"
-echo " ${C2}c1536 - 1/16 deg (${C1} 6.0 km${C2}) ${CN}"
-echo " ${C2}c3072 - 1/32 deg (${C1} 3.0 km${C2}) ${CN}"
+echo " ${C2}c270 -- ${C1} 16.0 -100 km${C2}) ${CN} "
+echo " ${C2}c540 -- ${C1} 8.0 - 50 km${C2}) ${CN} "
+echo " ${C2}c1080 - ${C1} 4.0 - 25 km${C2}) ${CN} "
+echo " ${C2}c1536 - ${C1} 2.0 - 20 km${C2}) ${CN} "
+echo " ${C2}c2160 - ${C1} 2.0 - 12 km${C2}) ${CN} "
echo " "
set HRCODE = `echo $<`
set HRCODE = `echo $HRCODE | tr "[:upper:]" "[:lower:]"`
@@ -223,10 +220,8 @@ if( $HRCODE != 'c12' & \
$HRCODE != 'c270' & \
$HRCODE != 'c540' & \
$HRCODE != 'c1080' & \
- $HRCODE != 'c2160' & \
- $HRCODE != 'c768' & \
$HRCODE != 'c1536' & \
- $HRCODE != 'c3072' ) goto HRCODE
+ $HRCODE != 'c2160' ) goto HRCODE
set Resolution = $HRCODE
@@ -327,10 +322,8 @@ if( $HRCODE == 'c180' | \
$HRCODE == 'c270' | \
$HRCODE == 'c540' | \
$HRCODE == 'c1080' | \
- $HRCODE == 'c2160' | \
- $HRCODE == 'c768' | \
$HRCODE == 'c1536' | \
- $HRCODE == 'c3072' ) then
+ $HRCODE == 'c2160' ) then
set DEFAULT_DO_IOS = TRUE
echo "Do you wish to ${C1}IOSERVER${CN}? (Default: ${C2}YES${CN} or ${C2}TRUE${CN})"
@@ -815,7 +808,7 @@ if( $AGCM_IM == "c12" ) then
set SOLAR_DT = 3600
set IRRAD_DT = 3600
set OCEAN_DT = $IRRAD_DT
- set CHEM_DT = $DT
+ set LONG_DT = $DT
set AGCM_IM = 12
set AGCM_JM = `expr $AGCM_IM \* 6`
# C12 MOM6 should be 1x6 to match the default 3x2 ocean layout
@@ -841,7 +834,7 @@ if( $AGCM_IM == "c24" ) then
set SOLAR_DT = 3600
set IRRAD_DT = 3600
set OCEAN_DT = $IRRAD_DT
- set CHEM_DT = $DT
+ set LONG_DT = $DT
set AGCM_IM = 24
set AGCM_JM = `expr $AGCM_IM \* 6`
set NX = 4
@@ -862,7 +855,7 @@ if( $AGCM_IM == "c48" ) then
set SOLAR_DT = 3600
set IRRAD_DT = 3600
set OCEAN_DT = $IRRAD_DT
- set CHEM_DT = $DT
+ set LONG_DT = $DT
set AGCM_IM = 48
set AGCM_JM = `expr $AGCM_IM \* 6`
set NX = 4
@@ -877,9 +870,10 @@ if( $AGCM_IM == "c48" ) then
set POST_NDS = 4
endif
if( $AGCM_IM == "c90" ) then
- set DT = 900
+ set DT = 1800
set SOLAR_DT = 3600
set IRRAD_DT = 3600
+ set LONG_DT = $DT
set AGCM_IM = 90
set AGCM_JM = `expr $AGCM_IM \* 6`
if( $OGCM == TRUE ) then
@@ -887,11 +881,10 @@ if( $AGCM_IM == "c90" ) then
set NY = $OGCM_NX
set OCEAN_DT = $DT
else
- set NX = 4
+ set NX = 3
set NY = `expr $NX \* 6`
set OCEAN_DT = $IRRAD_DT
endif
- set CHEM_DT = $DT
set HYDROSTATIC = $USE_HYDROSTATIC
set HIST_IM = `expr $AGCM_IM \* 4`
set HIST_JM = `expr $AGCM_IM \* 2 + 1`
@@ -902,10 +895,10 @@ if( $AGCM_IM == "c90" ) then
set POST_NDS = 8
endif
if( $AGCM_IM == "c180" ) then
- set DT = 600
+ set DT = 900
set SOLAR_DT = 3600
set IRRAD_DT = 3600
- set CHEM_DT = $DT
+ set LONG_DT = $DT
set AGCM_IM = 180
set AGCM_JM = `expr $AGCM_IM \* 6`
if( $OGCM == TRUE ) then
@@ -932,7 +925,7 @@ if( $AGCM_IM == "c360" ) then
set SOLAR_DT = 3600
set IRRAD_DT = 3600
set OCEAN_DT = $IRRAD_DT
- set CHEM_DT = $DT
+ set LONG_DT = $DT
set AGCM_IM = 360
set AGCM_JM = `expr $AGCM_IM \* 6`
set NX = 12
@@ -953,10 +946,10 @@ if( $AGCM_IM == "c720" ) then
set SOLAR_DT = 3600
set IRRAD_DT = 3600
set OCEAN_DT = $IRRAD_DT
- set CHEM_DT = $DT
+ set LONG_DT = 450
set AGCM_IM = 720
set AGCM_JM = `expr $AGCM_IM \* 6`
- set NX = 16
+ set NX = 24
set NY = `expr $NX \* 6`
set HYDROSTATIC = $USE_HYDROSTATIC
set HIST_IM = `expr $AGCM_IM \* 4`
@@ -972,13 +965,13 @@ if( $AGCM_IM == "c720" ) then
endif
if( $AGCM_IM == "c1440" ) then
set DT = 150
- set SOLAR_DT = 3600
- set IRRAD_DT = 3600
+ set SOLAR_DT = 1800
+ set IRRAD_DT = 1800
set OCEAN_DT = $IRRAD_DT
- set CHEM_DT = $DT
+ set LONG_DT = 300
set AGCM_IM = 1440
set AGCM_JM = `expr $AGCM_IM \* 6`
- set NX = 30
+ set NX = 48
set NY = `expr $NX \* 6`
set HYDROSTATIC = $USE_HYDROSTATIC
set HIST_IM = `expr $AGCM_IM \* 4`
@@ -994,13 +987,13 @@ if( $AGCM_IM == "c1440" ) then
endif
if( $AGCM_IM == "c2880" ) then
set DT = 75
- set SOLAR_DT = 3600
- set IRRAD_DT = 3600
+ set SOLAR_DT = 1800
+ set IRRAD_DT = 1800
set OCEAN_DT = $IRRAD_DT
- set CHEM_DT = $DT
+ set LONG_DT = 300
set AGCM_IM = 2880
set AGCM_JM = `expr $AGCM_IM \* 6`
- set NX = 30
+ set NX = 96
set NY = `expr $NX \* 6 \* 2`
set HYDROSTATIC = $USE_HYDROSTATIC
set HIST_IM = `expr $AGCM_IM \* 4`
@@ -1016,14 +1009,14 @@ if( $AGCM_IM == "c2880" ) then
set DEF_IOS_NDS = 4
endif
if( $AGCM_IM == "c5760" ) then
- set DT = 150
- set SOLAR_DT = 3600
- set IRRAD_DT = 3600
+ set DT = 30
+ set SOLAR_DT = 900
+ set IRRAD_DT = 900
set OCEAN_DT = $IRRAD_DT
- set CHEM_DT = $DT
+ set LONG_DT = 300
set AGCM_IM = 5760
set AGCM_JM = `expr $AGCM_IM \* 6`
- set NX = 60
+ set NX = 192
set NY = `expr $NX \* 6`
set HYDROSTATIC = $USE_HYDROSTATIC
set HIST_IM = `expr $AGCM_IM \* 4`
@@ -1039,15 +1032,16 @@ if( $AGCM_IM == "c5760" ) then
set DEF_IOS_NDS = 4
endif
# CONUS Stretched Grids
+set CONUS = '#'
if( $AGCM_IM == "c270" ) then
- set DT = 225
+ set DT = 600
set SOLAR_DT = 3600
set IRRAD_DT = 3600
set OCEAN_DT = $IRRAD_DT
- set CHEM_DT = $DT
+ set LONG_DT = $DT
set AGCM_IM = 270
set AGCM_JM = `expr $AGCM_IM \* 6`
- set NX = 9
+ set NX = 18
set NY = `expr $NX \* 6 \* 2`
set HYDROSTATIC = $USE_HYDROSTATIC
set HIST_IM = `expr $AGCM_IM \* 4`
@@ -1060,16 +1054,18 @@ if( $AGCM_IM == "c270" ) then
set CNV_NX = 8
set POST_NDS = 32
set USE_SHMEM = 1
+ set CONUS = ''
+ set STRETCH_FACTOR = 2.5
endif
if( $AGCM_IM == "c540" ) then
- set DT = 150
+ set DT = 300
set SOLAR_DT = 3600
set IRRAD_DT = 3600
set OCEAN_DT = $IRRAD_DT
- set CHEM_DT = $DT
+ set LONG_DT = $DT
set AGCM_IM = 540
set AGCM_JM = `expr $AGCM_IM \* 6`
- set NX = 18
+ set NX = 36
set NY = `expr $NX \* 6 \* 2`
set HYDROSTATIC = $USE_HYDROSTATIC
set HIST_IM = `expr $AGCM_IM \* 4`
@@ -1082,37 +1078,17 @@ if( $AGCM_IM == "c540" ) then
set CNV_NX = 8
set POST_NDS = 32
set USE_SHMEM = 1
+ set CONUS = ''
+ set STRETCH_FACTOR = 2.5
endif
if( $AGCM_IM == "c1080" ) then
- set DT = 75
- set SOLAR_DT = 3600
- set IRRAD_DT = 3600
+ set DT = 150
+ set SOLAR_DT = 900
+ set IRRAD_DT = 900
set OCEAN_DT = $IRRAD_DT
- set CHEM_DT = $DT
+ set LONG_DT = 300
set AGCM_IM = 1080
set AGCM_JM = `expr $AGCM_IM \* 6`
- set NX = 36
- set NY = `expr $NX \* 6 \* 2`
- set HYDROSTATIC = $USE_HYDROSTATIC
- set HIST_IM = `expr $AGCM_IM \* 4`
- set HIST_JM = `expr $AGCM_IM \* 2 + 1`
- set GRID_FILE = "Gnomonic_c${AGCM_IM}.dat"
- set NUM_READERS = 6
- set JOB_SGMT = 00000001
- set NUM_SGMT = 1
- set ATMOS_RES = CF1080x6C
- set CNV_NX = 8
- set POST_NDS = 32
- set USE_SHMEM = 1
-endif
-if( $AGCM_IM == "c2160" ) then
- set DT = 60
- set SOLAR_DT = 3600
- set IRRAD_DT = 3600
- set OCEAN_DT = $IRRAD_DT
- set CHEM_DT = $DT
- set AGCM_IM = 2160
- set AGCM_JM = `expr $AGCM_IM \* 6`
set NX = 72
set NY = `expr $NX \* 6 \* 2`
set HYDROSTATIC = $USE_HYDROSTATIC
@@ -1122,43 +1098,22 @@ if( $AGCM_IM == "c2160" ) then
set NUM_READERS = 6
set JOB_SGMT = 00000001
set NUM_SGMT = 1
- set ATMOS_RES = CF2160x6C
+ set ATMOS_RES = CF1080x6C
set CNV_NX = 8
set POST_NDS = 32
set USE_SHMEM = 1
-endif
-# DYAMOND Resolutions
-if( $AGCM_IM == "c768" ) then
- set DT = 180
- set SOLAR_DT = 3600
- set IRRAD_DT = 3600
- set OCEAN_DT = $IRRAD_DT
- set CHEM_DT = 900
- set AGCM_IM = 768
- set AGCM_JM = `expr $AGCM_IM \* 6`
- set NX = 32
- set NY = `expr $NX \* 6`
- set HYDROSTATIC = $USE_HYDROSTATIC
- set HIST_IM = `expr $AGCM_IM \* 4`
- set HIST_JM = `expr $AGCM_IM \* 2 + 1`
- set GRID_FILE = "Gnomonic_c${AGCM_IM}.dat"
- set NUM_READERS = 6
- set JOB_SGMT = 00000005
- set NUM_SGMT = 1
- set ATMOS_RES = CF0768x6C
- set CNV_NX = 8
- set POST_NDS = 16
- set USE_SHMEM = 1
+ set CONUS = ''
+ set STRETCH_FACTOR = 2.5
endif
if( $AGCM_IM == "c1536" ) then
- set DT = 90
- set SOLAR_DT = 3600
- set IRRAD_DT = 3600
+ set DT = 75
+ set SOLAR_DT = 900
+ set IRRAD_DT = 900
set OCEAN_DT = $IRRAD_DT
- set CHEM_DT = 900
+ set LONG_DT = 300
set AGCM_IM = 1536
set AGCM_JM = `expr $AGCM_IM \* 6`
- set NX = 64
+ set NX = 96
set NY = `expr $NX \* 6`
set HYDROSTATIC = $USE_HYDROSTATIC
set HIST_IM = `expr $AGCM_IM \* 4`
@@ -1169,30 +1124,34 @@ if( $AGCM_IM == "c1536" ) then
set NUM_SGMT = 1
set ATMOS_RES = CF1536x6C
set CNV_NX = 8
- set POST_NDS = 16
+ set POST_NDS = 16
set USE_SHMEM = 1
+ set CONUS = ''
+ set STRETCH_FACTOR = 3.0
endif
-if( $AGCM_IM == "c3072" ) then
- set DT = 45
- set SOLAR_DT = 3600
- set IRRAD_DT = 3600
+if( $AGCM_IM == "c2160" ) then
+ set DT = 60
+ set SOLAR_DT = 900
+ set IRRAD_DT = 900
set OCEAN_DT = $IRRAD_DT
- set CHEM_DT = 900
- set AGCM_IM = 3072
+ set LONG_DT = 300
+ set AGCM_IM = 2160
set AGCM_JM = `expr $AGCM_IM \* 6`
- set NX = 64
- set NY = `expr $NX \* 6`
+ set NX = 192
+ set NY = `expr $NX \* 6 \* 2`
set HYDROSTATIC = $USE_HYDROSTATIC
set HIST_IM = `expr $AGCM_IM \* 4`
set HIST_JM = `expr $AGCM_IM \* 2 + 1`
set GRID_FILE = "Gnomonic_c${AGCM_IM}.dat"
set NUM_READERS = 6
- set JOB_SGMT = 00000005
+ set JOB_SGMT = 00000001
set NUM_SGMT = 1
- set ATMOS_RES = CF3072x6C
+ set ATMOS_RES = CF2160x6C
set CNV_NX = 8
- set POST_NDS = 16
+ set POST_NDS = 32
set USE_SHMEM = 1
+ set CONUS = ''
+ set STRETCH_FACTOR = 2.5
endif
set IS_FCST = 0
@@ -1270,6 +1229,17 @@ else
endif
endif
+if ($CONUS == '#') then
+ set SCHMIDT = "do_schmidt = .false."
+ set STRETCH_FAC = "stretch_fac = 1.0"
+ set TARGET_LON = "target_lon = 0.0"
+ set TARGET_LAT = "target_lat = 0.0"
+else
+ set SCHMIDT = "do_schmidt = .true."
+ set STRETCH_FAC = "stretch_fac = $STRETCH_FACTOR"
+ set TARGET_LON = "target_lon = -98.35"
+ set TARGET_LAT = "target_lat = 39.5"
+endif
#######################################################################
# Check for land surface and runoff routing models #
@@ -1423,6 +1393,7 @@ set RATS_PROVIDER = PCHEM
# Per W. Putman recommendation, set heartbeat to 450s anytime BACM_1M is selected
if( "$CLDMICRO" == "BACM_1M" ) then
set DT = 450
+ set LONG_DT = 450
endif
ASKHB:
@@ -2251,7 +2222,7 @@ s/@DT/$DT/g
s/@SOLAR_DT/$SOLAR_DT/g
s/@IRRAD_DT/$IRRAD_DT/g
s/@OCEAN_DT/$OCEAN_DT/g
-s/@CHEM_DT/$CHEM_DT/g
+s/@LONG_DT/$LONG_DT/g
s/@NX/$NX/g
s/@NY/$NY/g
s/@USE_SHMEM/$USE_SHMEM/g
@@ -2281,6 +2252,9 @@ s/@END_DATE/${END_DATE}/g
s/@JOB_SGMT/${JOB_SGMT}/g
s/@NUM_SGMT/${NUM_SGMT}/g
+s/@CONUS/${CONUS}/g
+s/@STRETCH_FAC/${STRETCH_FAC}/g
+
s/@INTERPOLATE_SST/$INTERPOLATE_SST/g
s/@HIST_IM/$HIST_IM/g
s/@HIST_JM/$HIST_JM/g
@@ -2303,23 +2277,24 @@ s?@BACM_1M_?$BACM_1M_?g
s?@GFDL_1M_?$GFDL_1M_?g
s?@MGB2_2M_?$MGB2_2M_?g
-s?@GFDL_HYDRO?$GFDL_HYDRO?g
-
-s?@FV_MAKENH?$FV_MAKENH?g
-s?@FV_HYDRO?$FV_HYDRO?g
-
-s?@GFDL_PROG_CCN?$GFDL_PROG_CCN?g
-s?@GFDL_USE_CCN?$GFDL_USE_CCN?g
-
EOF
-# Added FV3 Specific Parameters
-# -----------------------------
+# Added FV3/GFDL-MP Specific Parameters
+# -------------------------------------
cat >> $HOMDIR/sedfile << EOF
s^@HYDROSTATIC^$HYDROSTATIC^g
s/@GRID_FILE/$GRID_FILE/g
+s?@FV_SCHMIDT?$SCHMIDT?g
+s?@FV_STRETCH_FAC?$STRETCH_FAC?g
+s?@FV_TARGET_LON?$TARGET_LON?g
+s?@FV_TARGET_LAT?$TARGET_LAT?g
+s?@FV_MAKENH?$FV_MAKENH?g
+s?@FV_HYDRO?$FV_HYDRO?g
+s?@GFDL_PROG_CCN?$GFDL_PROG_CCN?g
+s?@GFDL_USE_CCN?$GFDL_USE_CCN?g
+s?@GFDL_HYDRO?$GFDL_HYDRO?g
EOF