Allow LUNA & mortality parameters to vary by PFT
The PPE team would like to have several 'universal' parameters converted to 'pft' parameters:
LUNA: Jmaxb0 (parameter file) Jmaxb1 (namelist) wc2wjb0 (parameter file)
other: r_mort (parameter file)
Jmax1 transferred from namelist to parameter file and made pft-dimensioned as part of https://github.com/ESCOMP/CTSM/issues/2831.
jmaxb0, wc2wjb0, and r_mort are now pft-dimensioned. I've run the following test subset with bfb results with ctsm5.3.002 (current base for b4b-dev branch). SMS_D_Ld5.f10_f10_mg37.I2000Clm45Fates.derecho_intel.clm-FatesCold SMS_Ld5.f10_f10_mg37.I1850Clm45BgcCrop.derecho_intel.clm-crop ERI_D_Ld9.f10_f10_mg37.I1850Clm45Bgc.derecho_gnu.clm-default ERP_P64x2_D_Ld5.f10_f10_mg37.I1850Clm45BgcCrop.derecho_intel.clm-crop ERP_P64x2_D_Ld5.f10_f10_mg37.IHistClm45BgcCru.derecho_intel.clm-decStart SMS_Ld5.f10_f10_mg37.I2000Clm50FatesRs.derecho_intel.clm-FatesCold SMS_Ln9.ne30pg2_ne30pg2_mg17.I2000Clm50BgcCrop.derecho_intel.clm-clm50cam6LndTuningMode ERI_D_Ld9.f10_f10_mg37.I2000Clm50BgcCru.derecho_intel.clm-default ERP_D_P64x2_Ld3.f10_f10_mg37.I1850Clm50BgcCrop.derecho_gnu.clm-default ERP_D_P64x2_Ld3.f10_f10_mg37.I1850Clm50BgcCrop.derecho_intel.clm-default ERP_D_Ld5.ne30pg3_t232.IHistClm51Sp.derecho_intel.clm-default ERI_D_Ld9.f10_f10_mg37.I1850Clm60Bgc.derecho_gnu.clm-default ERP_D_Ld5.f10_f10_mg37.IHistClm60Sp.derecho_intel.clm-default ERI_D_Ld9.f10_f10_mg37.I1850Clm60Bgc.derecho_gnu.clm-default ERP_D_Ld9.ne30pg3_t232.I1850Clm60BgcCropG.derecho_intel.clm-clm60cam7LndTuningModeLDust SMS_D.f10_f10_mg37.I2000Clm60Bgc.derecho_gnu SMS_D.f10_f10_mg37.I2000Clm60Bgc.derecho_intel
Next step is to run aux_clm on Derecho and Izumi. There may be other testing that should be done, perhaps python, unit, namelist testing? @slevis-lmwg
When in doubt, it does not hurt to run more testing.
From bld/unit_testers I do:
nohup ./build-namelist_test.pl > test.out &
...and follow the progress with
tail -f test.out
If you can do conda activate ctsm_pylib, then you can concurrently try from the /python directory:
./run_ctsm_py_tests -s
./run_ctsm_py_tests -u
The former is slow, while the latter is quick.
And, if you touch python code, then also from the /python directory:
make black
make lint
Keith, if you need me to run any of these, pls let me know the PR where I can get the code.
Derecho aux_clm: PASS Izumi aux_clm: PEND nohup ./build-namelist_test.pl PASS ./run_ctsm_py_tests -u PASS (OK) ./run_ctsm_py_tests -s PASS (OK)
I didn't touch any python code. Will update when Izumi testing is complete.
I had trouble with testing on Izumi as jobs were dying for unknown reasons, and the STDIN jobs ran out of wallclock time. I'm not sure what that last problem implies, but I reran the failing tests and all now PASS except for the expected:
SMS_Ld10_D_Mmpi-serial.CLM_USRDAT.I1PtClm60Bgc.izumi_nag.clm-NEON-MOAB--clm-PRISM
I also resurrected the SMS_Lm1.f10_f10_mg37.I1850Clm60Bgc.derecho_intel.clm-clm60_monthly_matrixcn_soilCN30 test and it PASSed using my code. It also PASSed in ctsm5.3.002 using ctsm60_params_cn30.c240814.nc. It failed using ctsm60_params_cn30.c240822.nc as expected because I found that file to be corrupted (filled with NaNs).
Next step is to update my b4b-dev branch.
@olyson thank you for working through all this.