diff --git a/cime_config/buildnml b/cime_config/buildnml index af6ba9011..00b3dad35 100755 --- a/cime_config/buildnml +++ b/cime_config/buildnml @@ -516,6 +516,24 @@ def buildnml(case, caseroot, component): if component != "drv": raise AttributeError +# Do a check here of ESMF VERSION, requires 8.1.0 or newer (8.2.0 or newer for esmf_aware_threading) + esmf_aware_threading = case.get_value("ESMF_AWARE_THREADING") + esmfmkfile = os.getenv("ESMFMKFILE") + expect(esmfmkfile and os.path.isfile(esmfmkfile),"ESMFMKFILE not found {}".format(esmfmkfile)) + with open(esmfmkfile, 'r') as f: + major = None + minor = None + for line in f.readlines(): + if 'ESMF_VERSION' in line: + major = line[-2] if 'MAJOR' in line else major + minor = line[-2] if 'MINOR' in line else minor + logger.debug("ESMF version major {} minor {}".format(major,minor)) + expect(int(major) >=8,"ESMF version should be 8.1 or newer") + if esmf_aware_threading: + expect(int(minor) >= 2, "ESMF version should be 8.2.0 or newer when using ESMF_AWARE_THREADING") + else: + expect(int(minor) >= 1, "ESMF version should be 8.1.0 or newer") + confdir = os.path.join(case.get_value("CASEBUILD"), "cplconf") if not os.path.isdir(confdir): os.makedirs(confdir) diff --git a/drivers/cime/esm.F90 b/drivers/cime/esm.F90 index ecf6d931d..e1a18f135 100644 --- a/drivers/cime/esm.F90 +++ b/drivers/cime/esm.F90 @@ -981,14 +981,6 @@ subroutine esm_init_pelayout(driver, maxthreads, rc) call ESMF_InfoSet(info, key="/NUOPC/Hint/PePerPet/MaxCount", value=nthrds, rc=rc) if (chkerr(rc,__LINE__,u_FILE_u)) return -! call ESMF_InfoSet(info, key="/NUOPC/Hint/PePerPet/MinStackSize", value='40MiB', rc=rc) -! if (chkerr(rc,__LINE__,u_FILE_u)) return - - if (nthrds == 1) then - call ESMF_InfoSet(info, key="/NUOPC/Hint/PePerPet/OpenMpHandling", value='none', rc=rc) - if (chkerr(rc,__LINE__,u_FILE_u)) return - endif - call NUOPC_CompAttributeGet(driver, name=trim(namestr)//'_rootpe', value=cvalue, rc=rc) if (chkerr(rc,__LINE__,u_FILE_u)) return read(cvalue,*) rootpe