Port Validation
These are tests meant to check the validity of the Keeling port, and should be done after implementing out-of-the-box capability.
Functionality tests
Try running these following tests:
ERS_D.T31_g37_rx1.A
ERI.ne30_g16.X
ERI.T31_g37_rx1.A
ERS.T62_g16.C
You can create the tests as per the following (put the name of any test in place of ERS_D.T31_g37_rx1.A):
./create_test -mach keeling -testname ERS_D.T31_g37_rx1.A -testid t01 -compiler intel
This creates a directory called ERS_D.T31_g37_rx1.A.
cd ERS_D.T31_g37_rx1.A.keeling.intel.t01
./ERS_D.T31_g37_rx1.A.keeling_intel.t01.test_build
./ERS_D.T31_g37_rx1.A.keeling_intel.t01.submit
When the job is done running, check TestStatus to see if the test ran correctly. The first word should be PASS.
Reproducibility
Try running a compset for a year twice. We suggest doing the control for your own experiment twice, like how we do below:
This is the CAM 5 Aquaplanet with a resolution of 1.9x1.9.
./create_newcase -case cam5aquaFixSST -compset FC5AQUAP -res f19_f19 -mach keeling
To set it to run for a year, set the following in env_run.xml: <entry id="STOP_N" value="365" />
Run the first test normally for a year.
For the second test, try setting it so it restarts every so often to check for reproducibility between restarts.
This can be done so in env_run.xml:
<entry id="STOP_N" value="365" />
<entry id="REST_N" value="2" />
<entry id="REST_OPTION" value="nmonths" />
<entry id="DOUT_S_ROOT" value="$HOME/a/CESM_DATA/$CASE/outputdata_restart" />
To check if the two tests are bit-for-bit the same, use the following Python code.
import xarray as xr
data = xr.open_dataset("cam5aquaFixSST.cam.h0.0001-12.nc") #End of year for first run
data2 = xr.open_dataset("cam5aquaFixSST_restart.cam.h0.0001-12.nc") #End of year for second run
for variable in data.data_vars:
print(variable, data[variable].equals(data2[variable]))
Check everything is the same between the two except for the date and time written!