diff --git a/trunk/NDHMS/CPL/NUOPC_cpl/WRFHydro_NUOPC_Cap.F90 b/trunk/NDHMS/CPL/NUOPC_cpl/WRFHydro_NUOPC_Cap.F90 index e18ddff01..77f64099b 100644 --- a/trunk/NDHMS/CPL/NUOPC_cpl/WRFHydro_NUOPC_Cap.F90 +++ b/trunk/NDHMS/CPL/NUOPC_cpl/WRFHydro_NUOPC_Cap.F90 @@ -372,15 +372,15 @@ subroutine InitializeP0(gcomp, importState, exportState, clock, rc) defaultValue="0", convention="NUOPC", purpose="Instance", rc=rc) if (ESMF_STDERRORCHECK(rc)) return ! bail out diagnostic = ESMF_UtilString2Int(value, & - specialStringList=(/"min","max","bit16","maxplus"/), & - specialValueList=(/0,65535,65536,131071/), rc=rc) + specialStringList=(/"max ","high","low ","off "/), & + specialValueList= (/ 65535, 65535, 65535, 0/), rc=rc) if (ESMF_STDERRORCHECK(rc)) return ! bail out call ESMF_AttributeGet(gcomp, name="Verbosity", value=value, & defaultValue="0", convention="NUOPC", purpose="Instance", rc=rc) if (ESMF_STDERRORCHECK(rc)) return ! bail out verbosity = ESMF_UtilString2Int(value, & - specialStringList=(/"min","max","bit16","maxplus"/), & - specialValueList=(/0,65535,65536,131071/), rc=rc) + specialStringList=(/"max ","high","low ","off "/), & + specialValueList= (/ 65535, 65281, 8193, 0/), rc=rc) if (ESMF_STDERRORCHECK(rc)) return ! bail out ! query Component for its internal State @@ -454,6 +454,8 @@ subroutine WRFHydro_AttributeGet(rc) atVal = ESMF_UtilStringUpperCase(atVal, rc=rc) if (ESMF_STDERRORCHECK(rc)) return ! bail out is%wrap%realizeAllImport = (trim(atVal)=="TRUE") + else + is%wrap%realizeAllImport = .false. endif ! Realize all export fields @@ -466,6 +468,8 @@ subroutine WRFHydro_AttributeGet(rc) atVal = ESMF_UtilStringUpperCase(atVal, rc=rc) if (ESMF_STDERRORCHECK(rc)) return ! bail out is%wrap%realizeAllExport = (trim(atVal)=="TRUE") + else + is%wrap%realizeAllExport = .false. endif ! Determine hydro configuration filename @@ -476,6 +480,8 @@ subroutine WRFHydro_AttributeGet(rc) call NUOPC_CompAttributeGet(gcomp, name=atName, value=atVal, rc=rc) if (ESMF_STDERRORCHECK(rc)) return ! bail out is%wrap%configFile = atVal + else + is%wrap%configFile = "hydro.namelist" endif ! Determine DAS configuration filename @@ -486,6 +492,8 @@ subroutine WRFHydro_AttributeGet(rc) call NUOPC_CompAttributeGet(gcomp, name=atName, value=atVal, rc=rc) if (ESMF_STDERRORCHECK(rc)) return ! bail out is%wrap%dasConfigFile = atVal + else + is%wrap%configFile = "namelist.hrldas" endif ! Time Step @@ -502,6 +510,8 @@ subroutine WRFHydro_AttributeGet(rc) line=__LINE__,file=__FILE__,rcToReturn=rc) return ! bail out endif + else + is%wrap%timeStepInt = 0 endif ! Forcing Directory @@ -512,6 +522,8 @@ subroutine WRFHydro_AttributeGet(rc) call NUOPC_CompAttributeGet(gcomp, name=atName, value=atVal, rc=rc) if (ESMF_STDERRORCHECK(rc)) return ! bail out is%wrap%forcingDir = trim(atVal) + else + is%wrap%forcingDir = "WRFHYDRO_FORCING" endif ! Determine Domain ID @@ -523,6 +535,8 @@ subroutine WRFHydro_AttributeGet(rc) if (ESMF_STDERRORCHECK(rc)) return ! bail out is%wrap%did = ESMF_UtilString2Int(atVal, rc=rc) if (ESMF_STDERRORCHECK(rc)) return ! bail out + else + is%wrap%did = 1 endif ! Connect Nest to Nest @@ -535,6 +549,8 @@ subroutine WRFHydro_AttributeGet(rc) atVal = ESMF_UtilStringUpperCase(atVal, rc=rc) if (ESMF_STDERRORCHECK(rc)) return ! bail out is%wrap%nestToNest = (trim(atVal)=="TRUE") + else + is%wrap%nestToNest = .false. endif ! import data memory type @@ -545,6 +561,8 @@ subroutine WRFHydro_AttributeGet(rc) call NUOPC_CompAttributeGet(gcomp, name=atName, value=atVal, rc=rc) if (ESMF_STDERRORCHECK(rc)) return ! bail out is%wrap%memr_import = atVal + else + is%wrap%memr_import = MEMORY_POINTER endif ! export data memory type @@ -555,6 +573,8 @@ subroutine WRFHydro_AttributeGet(rc) call NUOPC_CompAttributeGet(gcomp, name=atName, value=atVal, rc=rc) if (ESMF_STDERRORCHECK(rc)) return ! bail out is%wrap%memr_export = atVal + else + is%wrap%memr_export = MEMORY_POINTER endif ! import data initialization type @@ -565,6 +585,8 @@ subroutine WRFHydro_AttributeGet(rc) call NUOPC_CompAttributeGet(gcomp, name=atName, value=atVal, rc=rc) if (ESMF_STDERRORCHECK(rc)) return ! bail out is%wrap%init_import = atVal + else + is%wrap%init_import = FILLV_MODEL endif ! backwards compatible setting (overrides initialize_import) @@ -587,6 +609,8 @@ subroutine WRFHydro_AttributeGet(rc) call NUOPC_CompAttributeGet(gcomp, name=atName, value=atVal, rc=rc) if (ESMF_STDERRORCHECK(rc)) return ! bail out is%wrap%init_export = atVal + else + is%wrap%init_export = FILLV_MODEL endif ! backwards compatible setting (overrides initialize_export) @@ -609,6 +633,8 @@ subroutine WRFHydro_AttributeGet(rc) call NUOPC_CompAttributeGet(gcomp, name=atName, value=atVal, rc=rc) if (ESMF_STDERRORCHECK(rc)) return ! bail out is%wrap%chck_import = atVal + else + is%wrap%chck_import = CHECKCLOCK_CURRT endif ! Get missing import handler @@ -619,6 +645,8 @@ subroutine WRFHydro_AttributeGet(rc) call NUOPC_CompAttributeGet(gcomp, name=atName, value=atVal, rc=rc) if (ESMF_STDERRORCHECK(rc)) return ! bail out is%wrap%misg_import = atVal + else + is%wrap%misg_import = MISSINGVAL_FAIL endif ! Get reset import handler @@ -631,6 +659,8 @@ subroutine WRFHydro_AttributeGet(rc) atVal = ESMF_UtilStringUpperCase(atVal, rc=rc) if (ESMF_STDERRORCHECK(rc)) return ! bail out is%wrap%reset_import = (trim(atVal)=="TRUE") + else + is%wrap%reset_import = .false. endif ! Get component output directory @@ -641,6 +671,8 @@ subroutine WRFHydro_AttributeGet(rc) call NUOPC_CompAttributeGet(gcomp, name=atName, value=atVal, rc=rc) if (ESMF_STDERRORCHECK(rc)) return ! bail out is%wrap%dirOutput = trim(atVal) + else + is%wrap%dirOutput = "./HYD_OUTPUT" endif ! Get component input directory @@ -651,6 +683,8 @@ subroutine WRFHydro_AttributeGet(rc) call NUOPC_CompAttributeGet(gcomp, name=atName, value=atVal, rc=rc) if (ESMF_STDERRORCHECK(rc)) return ! bail out is%wrap%dirInput = trim(atVal) + else + is%wrap%dirInput = "./HYD_INPUT" endif ! Write cap restart state @@ -675,6 +709,8 @@ subroutine WRFHydro_AttributeGet(rc) atVal = ESMF_UtilStringUpperCase(atVal, rc=rc) if (ESMF_STDERRORCHECK(rc)) return ! bail out is%wrap%multiInstance = (trim(atVal)=="TRUE") + else + is%wrap%multiInstance = .false. endif if (btest(verbosity,16)) then @@ -783,15 +819,15 @@ subroutine InitializeP1(gcomp, importState, exportState, clock, rc) defaultValue="0", convention="NUOPC", purpose="Instance", rc=rc) if (ESMF_STDERRORCHECK(rc)) return ! bail out diagnostic = ESMF_UtilString2Int(value, & - specialStringList=(/"min","max","bit16","maxplus"/), & - specialValueList=(/0,65535,65536,131071/), rc=rc) + specialStringList=(/"max ","high","low ","off "/), & + specialValueList= (/ 65535, 65535, 65535, 0/), rc=rc) if (ESMF_STDERRORCHECK(rc)) return ! bail out call ESMF_AttributeGet(gcomp, name="Verbosity", value=value, & defaultValue="0", convention="NUOPC", purpose="Instance", rc=rc) if (ESMF_STDERRORCHECK(rc)) return ! bail out verbosity = ESMF_UtilString2Int(value, & - specialStringList=(/"min","max","bit16","maxplus"/), & - specialValueList=(/0,65535,65536,131071/), rc=rc) + specialStringList=(/"max ","high","low ","off "/), & + specialValueList= (/ 65535, 65281, 8193, 0/), rc=rc) if (ESMF_STDERRORCHECK(rc)) return ! bail out ! query Component for its internal State @@ -875,15 +911,15 @@ subroutine InitializeP3(gcomp, importState, exportState, clock, rc) defaultValue="0", convention="NUOPC", purpose="Instance", rc=rc) if (ESMF_STDERRORCHECK(rc)) return ! bail out diagnostic = ESMF_UtilString2Int(value, & - specialStringList=(/"min","max","bit16","maxplus"/), & - specialValueList=(/0,65535,65536,131071/), rc=rc) + specialStringList=(/"max ","high","low ","off "/), & + specialValueList= (/ 65535, 65535, 65535, 0/), rc=rc) if (ESMF_STDERRORCHECK(rc)) return ! bail out call ESMF_AttributeGet(gcomp, name="Verbosity", value=value, & defaultValue="0", convention="NUOPC", purpose="Instance", rc=rc) if (ESMF_STDERRORCHECK(rc)) return ! bail out verbosity = ESMF_UtilString2Int(value, & - specialStringList=(/"min","max","bit16","maxplus"/), & - specialValueList=(/0,65535,65536,131071/), rc=rc) + specialStringList=(/"max ","high","low ","off "/), & + specialValueList= (/ 65535, 65281, 8193, 0/), rc=rc) if (ESMF_STDERRORCHECK(rc)) return ! bail out ! query Component for its internal State @@ -985,15 +1021,15 @@ subroutine DataInitialize(gcomp, rc) defaultValue="0", convention="NUOPC", purpose="Instance", rc=rc) if (ESMF_STDERRORCHECK(rc)) return ! bail out diagnostic = ESMF_UtilString2Int(value, & - specialStringList=(/"min","max","bit16","maxplus"/), & - specialValueList=(/0,65535,65536,131071/), rc=rc) + specialStringList=(/"max ","high","low ","off "/), & + specialValueList= (/ 65535, 65535, 65535, 0/), rc=rc) if (ESMF_STDERRORCHECK(rc)) return ! bail out call ESMF_AttributeGet(gcomp, name="Verbosity", value=value, & defaultValue="0", convention="NUOPC", purpose="Instance", rc=rc) if (ESMF_STDERRORCHECK(rc)) return ! bail out verbosity = ESMF_UtilString2Int(value, & - specialStringList=(/"min","max","bit16","maxplus"/), & - specialValueList=(/0,65535,65536,131071/), rc=rc) + specialStringList=(/"max ","high","low ","off "/), & + specialValueList= (/ 65535, 65281, 8193, 0/), rc=rc) if (ESMF_STDERRORCHECK(rc)) return ! bail out ! query Component for its internal State @@ -1186,15 +1222,15 @@ subroutine SetClock(gcomp, rc) defaultValue="0", convention="NUOPC", purpose="Instance", rc=rc) if (ESMF_STDERRORCHECK(rc)) return ! bail out diagnostic = ESMF_UtilString2Int(value, & - specialStringList=(/"min","max","bit16","maxplus"/), & - specialValueList=(/0,65535,65536,131071/), rc=rc) + specialStringList=(/"max ","high","low ","off "/), & + specialValueList= (/ 65535, 65535, 65535, 0/), rc=rc) if (ESMF_STDERRORCHECK(rc)) return ! bail out call ESMF_AttributeGet(gcomp, name="Verbosity", value=value, & defaultValue="0", convention="NUOPC", purpose="Instance", rc=rc) if (ESMF_STDERRORCHECK(rc)) return ! bail out verbosity = ESMF_UtilString2Int(value, & - specialStringList=(/"min","max","bit16","maxplus"/), & - specialValueList=(/0,65535,65536,131071/), rc=rc) + specialStringList=(/"max ","high","low ","off "/), & + specialValueList= (/ 65535, 65281, 8193, 0/), rc=rc) if (ESMF_STDERRORCHECK(rc)) return ! bail out ! query Component for its internal State @@ -1305,15 +1341,15 @@ subroutine CheckImport(gcomp, rc) defaultValue="0", convention="NUOPC", purpose="Instance", rc=rc) if (ESMF_STDERRORCHECK(rc)) return ! bail out diagnostic = ESMF_UtilString2Int(value, & - specialStringList=(/"min","max","bit16","maxplus"/), & - specialValueList=(/0,65535,65536,131071/), rc=rc) + specialStringList=(/"max ","high","low ","off "/), & + specialValueList= (/ 65535, 65535, 65535, 0/), rc=rc) if (ESMF_STDERRORCHECK(rc)) return ! bail out call ESMF_AttributeGet(gcomp, name="Verbosity", value=value, & defaultValue="0", convention="NUOPC", purpose="Instance", rc=rc) if (ESMF_STDERRORCHECK(rc)) return ! bail out verbosity = ESMF_UtilString2Int(value, & - specialStringList=(/"min","max","bit16","maxplus"/), & - specialValueList=(/0,65535,65536,131071/), rc=rc) + specialStringList=(/"max ","high","low ","off "/), & + specialValueList= (/ 65535, 65281, 8193, 0/), rc=rc) if (ESMF_STDERRORCHECK(rc)) return ! bail out ! query Component for its internal State @@ -1373,15 +1409,15 @@ subroutine ModelAdvance(gcomp, rc) defaultValue="0", convention="NUOPC", purpose="Instance", rc=rc) if (ESMF_STDERRORCHECK(rc)) return ! bail out diagnostic = ESMF_UtilString2Int(value, & - specialStringList=(/"min","max","bit16","maxplus"/), & - specialValueList=(/0,65535,65536,131071/), rc=rc) + specialStringList=(/"max ","high","low ","off "/), & + specialValueList= (/ 65535, 65535, 65535, 0/), rc=rc) if (ESMF_STDERRORCHECK(rc)) return ! bail out call ESMF_AttributeGet(gcomp, name="Verbosity", value=value, & defaultValue="0", convention="NUOPC", purpose="Instance", rc=rc) if (ESMF_STDERRORCHECK(rc)) return ! bail out verbosity = ESMF_UtilString2Int(value, & - specialStringList=(/"min","max","bit16","maxplus"/), & - specialValueList=(/0,65535,65536,131071/), rc=rc) + specialStringList=(/"max ","high","low ","off "/), & + specialValueList= (/ 65535, 65281, 8193, 0/), rc=rc) if (ESMF_STDERRORCHECK(rc)) return ! bail out ! query component for its internal State @@ -1578,15 +1614,15 @@ subroutine ModelFinalize(gcomp,rc) defaultValue="0", convention="NUOPC", purpose="Instance", rc=rc) if (ESMF_STDERRORCHECK(rc)) return ! bail out diagnostic = ESMF_UtilString2Int(value, & - specialStringList=(/"min","max","bit16","maxplus"/), & - specialValueList=(/0,65535,65536,131071/), rc=rc) + specialStringList=(/"max ","high","low ","off "/), & + specialValueList= (/ 65535, 65535, 65535, 0/), rc=rc) if (ESMF_STDERRORCHECK(rc)) return ! bail out call ESMF_AttributeGet(gcomp, name="Verbosity", value=value, & defaultValue="0", convention="NUOPC", purpose="Instance", rc=rc) if (ESMF_STDERRORCHECK(rc)) return ! bail out verbosity = ESMF_UtilString2Int(value, & - specialStringList=(/"min","max","bit16","maxplus"/), & - specialValueList=(/0,65535,65536,131071/), rc=rc) + specialStringList=(/"max ","high","low ","off "/), & + specialValueList= (/ 65535, 65281, 8193, 0/), rc=rc) if (ESMF_STDERRORCHECK(rc)) return ! bail out ! query Component for its internal State diff --git a/trunk/NDHMS/CPL/NUOPC_cpl/WRFHydro_NUOPC_Gluecode.F90 b/trunk/NDHMS/CPL/NUOPC_cpl/WRFHydro_NUOPC_Gluecode.F90 index 019646bd0..918da5ade 100644 --- a/trunk/NDHMS/CPL/NUOPC_cpl/WRFHydro_NUOPC_Gluecode.F90 +++ b/trunk/NDHMS/CPL/NUOPC_cpl/WRFHydro_NUOPC_Gluecode.F90 @@ -147,11 +147,11 @@ subroutine wrfhydro_nuopc_ini(did,vm,clock,forcingDir,rc) call orchestrator%init() ! Set default namelist values - read (startTimeStr(1:4),"(I)") nlst(did)%START_YEAR - read (startTimeStr(6:7),"(I)") nlst(did)%START_MONTH - read (startTimeStr(9:10),"(I)") nlst(did)%START_DAY - read (startTimeStr(12:13),"(I)") nlst(did)%START_HOUR - read (startTimeStr(15:16),"(I)") nlst(did)%START_MIN + read (startTimeStr(1:4),"(I4)") nlst(did)%START_YEAR + read (startTimeStr(6:7),"(I2)") nlst(did)%START_MONTH + read (startTimeStr(9:10),"(I2)") nlst(did)%START_DAY + read (startTimeStr(12:13),"(I2)") nlst(did)%START_HOUR + read (startTimeStr(15:16),"(I2)") nlst(did)%START_MIN nlst(did)%startdate(1:19) = startTimeStr(1:19) nlst(did)%olddate(1:19) = startTimeStr(1:19) nlst(did)%dt = dt @@ -293,11 +293,11 @@ subroutine wrfhydro_nuopc_ini(did,vm,clock,forcingDir,rc) #endif ! Override the clock configuration in hyro.namelist - read (startTimeStr(1:4),"(I)") nlst(did)%START_YEAR - read (startTimeStr(6:7),"(I)") nlst(did)%START_MONTH - read (startTimeStr(9:10),"(I)") nlst(did)%START_DAY - read (startTimeStr(12:13),"(I)") nlst(did)%START_HOUR - read (startTimeStr(15:16),"(I)") nlst(did)%START_MIN + read (startTimeStr(1:4),"(I4)") nlst(did)%START_YEAR + read (startTimeStr(6:7),"(I2)") nlst(did)%START_MONTH + read (startTimeStr(9:10),"(I2)") nlst(did)%START_DAY + read (startTimeStr(12:13),"(I2)") nlst(did)%START_HOUR + read (startTimeStr(15:16),"(I2)") nlst(did)%START_MIN nlst(did)%startdate(1:19) = startTimeStr(1:19) nlst(did)%olddate(1:19) = startTimeStr(1:19) nlst(did)%dt = dt