Some tips for E3SM users about create new cases and modify the setups.
Create new cases
ELM-MOSART two way coupling at global 0.5 degree
./create_newcase --case XX/newcase --res ne30_oEC --compset IMCLM45 --project climate
after creating the case, adjusting some xml user settings
./xmlchange RUN_STARTDATE=1972-01-01,STOP_OPTION=nyears,STOP_N=2,CLM_BLDNML_OPTS="-bgc cn -crop -irrig .true.",CLM_CONFIG_OPTS="-phys clm4_5 -bgc cn -crop on",DATM_CLMNCEP_YR_ALIGN=1972,REST_N=1,JOB_WALLCLOCK_TIME=2:00:00,JOB_QUEUE=slurm
MOSART only at global 0.5 degree
./create_newcase --case XX/newcase --res hcru_hcru --compset RMGLB05 --project climate
MOSART only at NLDAS grid
./create_newcase --case XX/newcase --res NLDAS_NLDAS --compset RM --project climate
Change number of nodes of the job
Just modify the env_mach_pes.xml
file right after creating a new case. To do it, change every value in NTASKS
to -1
.
Some modifications not included in the source code
- in
MOSARTinund_Core_MOD.F90
! override the negative Hydraulic radius elseif ( rr_ .eq. 0._r8 ) then ManningEq = 0._r8 else ! rr_ < 0 write( iulog, * ) trim( subname ) // ' WARNING_TIAN: Hydraulic radius is negative !' ManningEq = 0._r8 ! Tian Dec 2017 !call shr_sys_abort( trim( subname ) // ' ERROR: Hydraulic radius is negative !' ) end if
- in
RtmMod.F90
if ( TUnit%areaTotal(n) .le. 0._r8 ) then
write( iulog, * ) trim( subname ) // ' WARNING_TIAN: TUnit%areaTotal(n) <= 0 for n=', n
TUnit%areaTotal(n) = 1 !! Tian 10/9/2017
!call shr_sys_abort( trim( subname ) // ' ERROR: TUnit%areaTotal(n) <= 0 ')
end if
if ( TUnit%hslp(n) .LT. 0._r8 ) then
write( iulog, * ) trim( subname ) // ' WARNING_TIAN: TUnit%hslp(n) < 0 for n=', n
TUnit%hslp(n) = 0._r8 !! Tian 10/9/2017
!call shr_sys_abort( trim( subname ) // ' ERROR: TUnit%hslp(n) < 0 ')
end if
if ( TUnit%tslp(n) .LT. 0._r8 ) then
write( iulog, * ) trim( subname ) // ' WARNING_TIAN: TUnit%tslp(n) < 0 for n=', n
TUnit%tslp(n) = 0._r8 !! Tian 10/9/2017
!call shr_sys_abort( trim( subname ) // ' ERROR: TUnit%tslp(n) < 0 ')
end if
if ( TUnit%rslp(n) .LT. 0._r8 ) then
write( iulog, * ) trim( subname ) // ' WARNING_TIAN: TUnit%rslp(n) < 0 for n=', n
TUnit%rslp(n) = 0._r8 !! Tian 10/9/2017
!call shr_sys_abort( trim( subname ) // ' ERROR: TUnit%rslp(n) < 0 ')
end if