diff --git a/README.md b/README.md index a3c6aef0..7c1c0afa 100644 --- a/README.md +++ b/README.md @@ -30,6 +30,8 @@ EMC_verif-global is supported on the following machines: * Orion * S4 * Jet +* Gaea-C5 +* Gaea-C6 For questions or issues, please e-mail Mallory Row at mallory.row@noaa.gov. diff --git a/modulefiles/emc_verif_global_gaeac5.lua b/modulefiles/emc_verif_global_gaeac5.lua new file mode 100644 index 00000000..a384f0dd --- /dev/null +++ b/modulefiles/emc_verif_global_gaeac5.lua @@ -0,0 +1,38 @@ +help([[ +Load environment to run EMC_verif-global on Gaea-C5 using Intel +]]) + +prepend_path("MODULEPATH", "/ncrc/proj/epic/spack-stack/spack-stack-1.6.0/envs/gsi-addon-dev/install/modulefiles/Core") + +stack_intel_ver=os.getenv("stack_intel_ver") or "2023.2.0" +load(pathJoin("stack-intel", stack_intel_ver)) + +Core_ver=os.getenv("Core_ver") or "24.10" +load(pathJoin("Core", Core_ver)) + +prod_util_ver=os.getenv("prod_util_ver") or "2.1.1" +load(pathJoin("prod_util", prod_util_ver)) + +grib_util_ver=os.getenv("grib_util_ver") or "1.3.0" +load(pathJoin("grib-util", grib_util_ver)) + +intel_oneapi_ver=os.getenv("stack_cray_mpich_ver") or "8.1.28" +load(pathJoin("stack-cray-mpich", stack_cray_mpich_ver)) + +netcdf_c_ver=os.getenv("netcdf_c_ver") or "4.9.2" +load(pathJoin("netcdf-c", netcdf_c_ver)) + +nco_ver=os.getenv("nco_ver") or "5.1.9" +load(pathJoin("nco", nco_ver)) + +grads_ver=os.getenv("grads_ver") or "2.2.3" +load(pathJoin("grads", grads_ver)) + +imagemagick_ver=os.getenv("imagemagick_ver") or "7.1.1-29" +load(pathJoin("imagemagick", imagemagick_ver)) + +met_ver=os.getenv("met_ver") or "9.1.3" +load(pathJoin("met", met_ver)) + +metplus_ver=os.getenv("metplus_ver") or "3.1.1" +load(pathJoin("metplus", metplus_ver)) diff --git a/modulefiles/emc_verif_global_gaeac6.lua b/modulefiles/emc_verif_global_gaeac6.lua new file mode 100644 index 00000000..4d7195dd --- /dev/null +++ b/modulefiles/emc_verif_global_gaeac6.lua @@ -0,0 +1,38 @@ +help([[ +Load environment to run EMC_verif-global on Gaea-C6 using Intel +]]) + +prepend_path("MODULEPATH", "/ncrc/proj/epic/spack-stack/c6/spack-stack-1.6.0/envs/gsi-addon/install/modulefiles/Core") + +stack_intel_ver=os.getenv("stack_intel_ver") or "2023.2.0" +load(pathJoin("stack-intel", stack_intel_ver)) + +Core_ver=os.getenv("Core_ver") or "24.11" +load(pathJoin("Core", Core_ver)) + +prod_util_ver=os.getenv("prod_util_ver") or "2.1.1" +load(pathJoin("prod_util", prod_util_ver)) + +grib_util_ver=os.getenv("grib_util_ver") or "1.3.0" +load(pathJoin("grib-util", grib_util_ver)) + +intel_oneapi_ver=os.getenv("stack_cray_mpich_ver") or "8.1.29" +load(pathJoin("stack-cray-mpich", stack_cray_mpich_ver)) + +netcdf_c_ver=os.getenv("netcdf_c_ver") or "4.9.2" +load(pathJoin("netcdf-c", netcdf_c_ver)) + +nco_ver=os.getenv("nco_ver") or "5.1.9" +load(pathJoin("nco", nco_ver)) + +grads_ver=os.getenv("grads_ver") or "2.2.3" +load(pathJoin("grads", grads_ver)) + +imagemagick_ver=os.getenv("imagemagick_ver") or "7.1.1-29" +load(pathJoin("imagemagick", imagemagick_ver)) + +met_ver=os.getenv("met_ver") or "9.1.3" +load(pathJoin("met", met_ver)) + +metplus_ver=os.getenv("metplus_ver") or "3.1.1" +load(pathJoin("metplus", metplus_ver)) \ No newline at end of file diff --git a/scripts/exgrid2grid_step1.sh b/scripts/exgrid2grid_step1.sh index b3bd26d4..7a4d2165 100755 --- a/scripts/exgrid2grid_step1.sh +++ b/scripts/exgrid2grid_step1.sh @@ -89,7 +89,7 @@ if [ $MPMD = YES ]; then if [ $machine = WCOSS2 ]; then export LD_LIBRARY_PATH=/apps/dev/pmi-fix:$LD_LIBRARY_PATH launcher="mpiexec -np ${nproc} -ppn ${nproc} --cpu-bind verbose,core cfp" - elif [ $machine = HERA -o $machine = ORION -o $machine = S4 -o $machine = JET -o $machine = HERCULES ]; then + elif [ $machine = HERA -o $machine = ORION -o $machine = S4 -o $machine = JET -o $machine = HERCULES -o $machine = GAEAC5 -o $machine = GAEAC6 ]; then launcher="srun --export=ALL --multi-prog" fi $launcher $MP_CMDFILE diff --git a/scripts/exgrid2grid_step2.sh b/scripts/exgrid2grid_step2.sh index 6f7df12d..492efe39 100755 --- a/scripts/exgrid2grid_step2.sh +++ b/scripts/exgrid2grid_step2.sh @@ -89,7 +89,7 @@ if [ $MPMD = YES ]; then if [ $machine = WCOSS2 ]; then export LD_LIBRARY_PATH=/apps/dev/pmi-fix:$LD_LIBRARY_PATH launcher="mpiexec -np ${nproc} -ppn ${nproc} --cpu-bind verbose,core cfp" - elif [ $machine = HERA -o $machine = ORION -o $machine = S4 -o $machine = JET -o $machine = HERCULES ]; then + elif [ $machine = HERA -o $machine = ORION -o $machine = S4 -o $machine = JET -o $machine = HERCULES -o $machine = GAEAC5 -o $machine = GAEAC6 ]; then launcher="srun --export=ALL --multi-prog" fi $launcher $MP_CMDFILE diff --git a/scripts/exgrid2obs_step1.sh b/scripts/exgrid2obs_step1.sh index 9d6b4f9f..1d4c11a4 100755 --- a/scripts/exgrid2obs_step1.sh +++ b/scripts/exgrid2obs_step1.sh @@ -89,7 +89,7 @@ if [ $MPMD = YES ]; then if [ $machine = WCOSS2 ]; then export LD_LIBRARY_PATH=/apps/dev/pmi-fix:$LD_LIBRARY_PATH launcher="mpiexec -np ${nproc} -ppn ${nproc} --cpu-bind verbose,core cfp" - elif [ $machine = HERA -o $machine = ORION -o $machine = S4 -o $machine = JET -o $machine = HERCULES ]; then + elif [ $machine = HERA -o $machine = ORION -o $machine = S4 -o $machine = JET -o $machine = HERCULES -o $machine = GAEAC5 -o $machine = GAEAC6 ]; then launcher="srun --export=ALL --multi-prog" fi $launcher $MP_CMDFILE diff --git a/scripts/exgrid2obs_step2.sh b/scripts/exgrid2obs_step2.sh index 3fd0c9ca..e432d68e 100755 --- a/scripts/exgrid2obs_step2.sh +++ b/scripts/exgrid2obs_step2.sh @@ -89,7 +89,7 @@ if [ $MPMD = YES ]; then if [ $machine = WCOSS2 ]; then export LD_LIBRARY_PATH=/apps/dev/pmi-fix:$LD_LIBRARY_PATH launcher="mpiexec -np ${nproc} -ppn ${nproc} --cpu-bind verbose,core cfp" - elif [ $machine = HERA -o $machine = ORION -o $machine = S4 -o $machine = JET -o $machine = HERCULES ]; then + elif [ $machine = HERA -o $machine = ORION -o $machine = S4 -o $machine = JET -o $machine = HERCULES -o $machine = GAEAC5 -o $machine = GAEAC6 ]; then launcher="srun --export=ALL --multi-prog" fi $launcher $MP_CMDFILE diff --git a/scripts/exmaps2d.sh b/scripts/exmaps2d.sh index 0d558eb1..82ebf055 100755 --- a/scripts/exmaps2d.sh +++ b/scripts/exmaps2d.sh @@ -89,7 +89,7 @@ if [ $MPMD = YES ]; then if [ $machine = WCOSS2 ]; then export LD_LIBRARY_PATH=/apps/dev/pmi-fix:$LD_LIBRARY_PATH launcher="mpiexec -np ${nproc} -ppn ${nproc} --cpu-bind verbose,core cfp" - elif [ $machine = HERA -o $machine = ORION -o $machine = S4 -o $machine = JET -o $machine = HERCULES ]; then + elif [ $machine = HERA -o $machine = ORION -o $machine = S4 -o $machine = JET -o $machine = HERCULES -o $machine = GAEAC5 -o $machine = GAEAC6 ]; then launcher="srun --export=ALL --multi-prog" fi $launcher $MP_CMDFILE diff --git a/scripts/exmapsda.sh b/scripts/exmapsda.sh index 3a34d3c2..35f63633 100755 --- a/scripts/exmapsda.sh +++ b/scripts/exmapsda.sh @@ -90,7 +90,7 @@ if [ $MPMD = YES ]; then if [ $machine = WCOSS2 ]; then export LD_LIBRARY_PATH=/apps/dev/pmi-fix:$LD_LIBRARY_PATH launcher="mpiexec -np ${nproc} -ppn ${nproc} --cpu-bind verbose,core cfp" - elif [ $machine = HERA -o $machine = ORION -o $machine = S4 -o $machine = JET -o $machine = HERCULES ]; then + elif [ $machine = HERA -o $machine = ORION -o $machine = S4 -o $machine = JET -o $machine = HERCULES -o $machine = GAEAC5 -o $machine = GAEAC6 ]; then launcher="srun --export=ALL --multi-prog" fi $launcher $MP_CMDFILE diff --git a/scripts/exprecip_step1.sh b/scripts/exprecip_step1.sh index 2654baa5..1bd783b3 100755 --- a/scripts/exprecip_step1.sh +++ b/scripts/exprecip_step1.sh @@ -89,7 +89,7 @@ if [ $MPMD = YES ]; then if [ $machine = WCOSS2 ]; then export LD_LIBRARY_PATH=/apps/dev/pmi-fix:$LD_LIBRARY_PATH launcher="mpiexec -np ${nproc} -ppn ${nproc} --cpu-bind verbose,core cfp" - elif [ $machine = HERCULES -o $machine = HERA -o $machine = ORION -o $machine = S4 -o $machine = JET ]; then + elif [ $machine = HERCULES -o $machine = HERA -o $machine = ORION -o $machine = S4 -o $machine = JET -o $machine = GAEAC5 -o $machine = GAEAC6 ]; then launcher="srun --export=ALL --multi-prog" fi $launcher $MP_CMDFILE diff --git a/scripts/exprecip_step2.sh b/scripts/exprecip_step2.sh index 52b844cd..26c862c4 100755 --- a/scripts/exprecip_step2.sh +++ b/scripts/exprecip_step2.sh @@ -89,7 +89,7 @@ if [ $MPMD = YES ]; then if [ $machine = WCOSS2 ]; then export LD_LIBRARY_PATH=/apps/dev/pmi-fix:$LD_LIBRARY_PATH launcher="mpiexec -np ${nproc} -ppn ${nproc} --cpu-bind verbose,core cfp" - elif [ $machine = HERA -o $machine = ORION -o $machine = S4 -o $machine = JET -o $machine = HERCULES ]; then + elif [ $machine = HERA -o $machine = ORION -o $machine = S4 -o $machine = JET -o $machine = HERCULES -o $machine = GAEAC5 -o $machine = GAEAC6 ]; then launcher="srun --export=ALL --multi-prog" fi $launcher $MP_CMDFILE diff --git a/scripts/exsatellite_step1.sh b/scripts/exsatellite_step1.sh index dadd8aa0..0d474ca2 100755 --- a/scripts/exsatellite_step1.sh +++ b/scripts/exsatellite_step1.sh @@ -89,7 +89,7 @@ if [ $MPMD = YES ]; then if [ $machine = WCOSS2 ]; then export LD_LIBRARY_PATH=/apps/dev/pmi-fix:$LD_LIBRARY_PATH launcher="mpiexec -np ${nproc} -ppn ${nproc} --cpu-bind verbose,core cfp" - elif [ $machine = HERA -o $machine = ORION -o $machine = S4 -o $machine = JET -o $machine = HERCULES ]; then + elif [ $machine = HERA -o $machine = ORION -o $machine = S4 -o $machine = JET -o $machine = HERCULES -o $machine = GAEAC5 -o $machine = GAEAC6 ]; then launcher="srun --export=ALL --multi-prog" fi $launcher $MP_CMDFILE diff --git a/scripts/exsatellite_step2.sh b/scripts/exsatellite_step2.sh index a02f2fbf..4126d00c 100755 --- a/scripts/exsatellite_step2.sh +++ b/scripts/exsatellite_step2.sh @@ -89,7 +89,7 @@ if [ $MPMD = YES ]; then if [ $machine = WCOSS2 ]; then export LD_LIBRARY_PATH=/apps/dev/pmi-fix:$LD_LIBRARY_PATH launcher="mpiexec -np ${nproc} -ppn ${nproc} --cpu-bind verbose,core cfp" - elif [ $machine = HERA -o $machine = ORION -o $machine = S4 -o $machine = JET -o $machine = HERCULES ]; then + elif [ $machine = HERA -o $machine = ORION -o $machine = S4 -o $machine = JET -o $machine = HERCULES -o $machine = GAEAC5 -o $machine = GAEAC6 ]; then launcher="srun --export=ALL --multi-prog" fi $launcher $MP_CMDFILE diff --git a/scripts/extropcyc.sh b/scripts/extropcyc.sh index 495c2e2b..e260781d 100755 --- a/scripts/extropcyc.sh +++ b/scripts/extropcyc.sh @@ -91,7 +91,7 @@ if [ $MPMD = YES ]; then if [ $machine = WCOSS2 ]; then export LD_LIBRARY_PATH=/apps/dev/pmi-fix:$LD_LIBRARY_PATH launcher="mpiexec -np ${nproc} -ppn ${nproc} --cpu-bind verbose,core cfp" - elif [ $machine = HERA -o $machine = ORION -o $machine = S4 -o $machine = JET -o $machine = HERCULES ]; then + elif [ $machine = HERA -o $machine = ORION -o $machine = S4 -o $machine = JET -o $machine = HERCULES -o $machine = GAEAC5 -o $machine = GAEAC6 ]; then launcher="srun --export=ALL --multi-prog" fi $launcher $MP_CMDFILE @@ -131,7 +131,7 @@ if [ $MPMD = YES ]; then if [ $machine = WCOSS2 ]; then export LD_LIBRARY_PATH=/apps/dev/pmi-fix:$LD_LIBRARY_PATH launcher="mpiexec -np ${nproc} -ppn ${nproc} --cpu-bind verbose,core cfp" - elif [ $machine = HERA -o $machine = ORION -o $machine = S4 -o $machine = JET -o $machine = HERCULES ]; then + elif [ $machine = HERA -o $machine = ORION -o $machine = S4 -o $machine = JET -o $machine = HERCULES -o $machine = GAEAC5 -o $machine = GAEAC6 ]; then launcher="srun --export=ALL --multi-prog" fi $launcher $MP_CMDFILE diff --git a/ush/build_webpage.py b/ush/build_webpage.py index 5a22e3f1..dce95af8 100644 --- a/ush/build_webpage.py +++ b/ush/build_webpage.py @@ -944,6 +944,16 @@ def tropcyc_write_template_body2(template_filename): +'--partition='+QUEUESERV+' --account='+ACCOUNT+' ' +'--output='+web_job_output+' ' +'--job-name='+web_job_name+' '+web_job_filename) +elif machine == 'GAEAC5': + os.system('sbatch --ntasks=1 --time='+walltime.strftime('%H:%M:%S')+' ' + +'--clusters='+CLUSTERS+' --account='+ACCOUNT+' ' + +'--output='+web_job_output+' ' + +'--job-name='+web_job_name+' '+web_job_filename) +elif machine == 'GAEAC6': + os.system('sbatch --ntasks=1 --time='+walltime.strftime('%H:%M:%S')+' ' + +'--clusters='+CLUSTERS+' --account='+ACCOUNT+' ' + +'--output='+web_job_output+' ' + +'--job-name='+web_job_name+' '+web_job_filename) elif machine == 'JET': if webhost == 'emcrzdm.ncep.noaa.gov': print("ERROR: Currently "+machine.title()+" cannot connect to " @@ -953,7 +963,7 @@ def tropcyc_write_template_body2(template_filename): +'--partition='+QUEUESERV+' --account='+ACCOUNT+' ' +'--output='+web_job_output+' ' +'--job-name='+web_job_name+' '+web_job_filename) -elif machine in ["ORION", "HERCULES", "S4"]: +elif machine in ["ORION", "HERCULES", "S4","GAEAC5","GAEAC6"]: if webhost == 'emcrzdm.ncep.noaa.gov': print("ERROR: Currently " + machine + " cannot connect to "+webhost) else: diff --git a/ush/create_METplus_job_scripts.py b/ush/create_METplus_job_scripts.py index 747dd9c8..149f3d8a 100644 --- a/ush/create_METplus_job_scripts.py +++ b/ush/create_METplus_job_scripts.py @@ -1920,7 +1920,7 @@ def create_job_scripts_maps(start_date_dt, end_date_dt, case, case_abbrev, node = 1 while njob <= njob_files: job = 'job'+str(njob) - if machine in ['HERA', 'ORION', 'S4', 'JET', 'HERCULES']: + if machine in ['HERA', 'ORION', 'S4', 'JET', 'HERCULES', 'GAEAC5', 'GAEAC6']: if iproc >= nproc: poe_file.close() iproc = 0 @@ -1930,7 +1930,7 @@ def create_job_scripts_maps(start_date_dt, end_date_dt, case, case_abbrev, if iproc == 0: poe_file = open(poe_filename, 'w') iproc+=1 - if machine in ['HERA', 'ORION', 'S4', 'JET', 'HERCULES']: + if machine in ['HERA', 'ORION', 'S4', 'JET', 'HERCULES', 'GAEAC5', 'GAEAC6']: poe_file.write( str(iproc-1)+' ' +os.path.join(DATA, RUN, 'metplus_job_scripts', job)+'\n' @@ -1947,7 +1947,7 @@ def create_job_scripts_maps(start_date_dt, end_date_dt, case, case_abbrev, poe_file = open(poe_filename, 'a') iproc+=1 while iproc <= nproc: - if machine in ['HERA', 'ORION', 'S4', 'JET', 'HERCULES']: + if machine in ['HERA', 'ORION', 'S4', 'JET', 'HERCULES', 'GAEAC5', 'GAEAC6']: poe_file.write( str(iproc-1)+' /bin/echo '+str(iproc)+'\n' ) diff --git a/ush/get_data_files.py b/ush/get_data_files.py index 58d36ce2..f2466e91 100644 --- a/ush/get_data_files.py +++ b/ush/get_data_files.py @@ -177,7 +177,7 @@ def wget_data(wget_job_filename, wget_job_name, wget_job_output): +'-l select=1:ncpus=1 '+wget_job_filename) job_check_cmd = ('qselect -s QR -u '+os.environ['USER']+' ' +'-N '+wget_job_name+' | wc -l') - elif machine in ['HERA', 'ORION', 'S4', 'JET', 'HERCULES']: + elif machine in ['HERA', 'ORION', 'S4', 'JET', 'HERCULES', 'GAEAC5', 'GAEAC6']: os.system('sbatch --ntasks=1 --time=' +walltime.strftime('%H:%M:%S')+' --partition='+QUEUESERV+' ' +'--account='+ACCOUNT+' --output='+wget_job_output+' ' @@ -460,9 +460,9 @@ def get_hpss_data(hpss_job_filename, save_data_dir, save_data_file, +'--job-name='+hpss_job_name+' '+hpss_job_filename) job_check_cmd = ('squeue -u '+os.environ['USER']+' -n ' +hpss_job_name+' -t R,PD -h | wc -l') - elif machine in ['ORION', 'S4', 'HERCULES']: + elif machine in ['ORION', 'S4', 'HERCULES', 'GAEAC5', 'GAEAC6']: print("ERROR: No HPSS access from "+machine) - if machine not in ['ORION', 'S4', 'HERCULES']: + if machine not in ['ORION', 'S4', 'HERCULES', 'GAEAC5', 'GAEAC6']: sleep_counter, sleep_checker = 1, 10 while (sleep_counter*sleep_checker) <= walltime_seconds: sleep(sleep_checker) diff --git a/ush/get_machine.py b/ush/get_machine.py index 2d2f9671..dddc27b4 100644 --- a/ush/get_machine.py +++ b/ush/get_machine.py @@ -16,7 +16,7 @@ print("BEGIN: "+os.path.basename(__file__)) EMC_verif_global_machine_list = [ - 'HERA', 'ORION', 'S4', 'JET', 'WCOSS2', 'HERCULES' + 'HERA', 'ORION', 'S4', 'JET', 'WCOSS2', 'HERCULES', 'GAEAC5', 'GAEAC6' ] # Read in environment variables @@ -57,6 +57,8 @@ ) s4_match = re.match(re.compile(r"s4-submit.ssec.wisc.edu"), hostname) jet_match = re.match(re.compile(r"^fe[0-9]{1}"), hostname) + gaeac5_match = re.match(re.compile(r"^gaea5[1-8]{1}"), hostname) + gaeac6_match = re.match(re.compile(r"^gaea6[1-8]{1}"), hostname) if cactus_match or dogwood_match or cactus_match2 or dogwood_match2: machine = 'WCOSS2' elif hera_match: @@ -69,6 +71,10 @@ machine = 'S4' elif jet_match: machine = 'JET' + elif gaeac5_match: + machine = 'GAEAC5' + elif gaeac6_match: + machine = 'GAEAC6' else: print("Cannot find match for "+hostname) sys.exit(1) diff --git a/ush/load_modules.sh b/ush/load_modules.sh index 42050798..f62ee798 100755 --- a/ush/load_modules.sh +++ b/ush/load_modules.sh @@ -51,7 +51,7 @@ elif [ $machine = HERA ]; then module use ${HOMEverif_global}/modulefiles module load emc_verif_global_hera if [ $MET_version = 9.1 ]; then - export HOMEMET="/contrib/met/9.1" + export HOMEMET="/contrib/met/9.1.3" export HOMEMET_bin_exec="bin" else "ERROR: $MET_version is not supported on $machine" @@ -120,6 +120,42 @@ elif [ $machine = JET ]; then "ERROR: $METplus_version is not supported on $machine" exit 1 fi +elif [ $machine = GAEAC5 ]; then + module reset + module use ${HOMEverif_global}/modulefiles + module load emc_verif_global_gaeac5 + module swap python/3.11.6 python/3.9 + if [[ "${MET_version}" =~ ^(9.1) ]]; then + export HOMEMET="${met_ROOT}" + export HOMEMET_bin_exec="bin" + else + "ERROR: $MET_version is not supported on $machine" + exit 1 + fi + if [[ "${METplus_version}" =~ ^(3.1) ]]; then + export HOMEMETplus="${metplus_ROOT}" + else + "ERROR: $METplus_version is not supported on $machine" + exit 1 + fi +elif [ $machine = GAEAC6 ]; then + module reset + module use ${HOMEverif_global}/modulefiles + module load emc_verif_global_gaeac6 + module swap python/3.11.6 python/3.11 + if [ $MET_version = 9.1 ]; then + export HOMEMET="${met_ROOT}" + export HOMEMET_bin_exec="bin" + else + "ERROR: $MET_version is not supported on $machine" + exit 1 + fi + if [ $METplus_version = 3.1 ]; then + export HOMEMETplus="${metplus_ROOT}" + else + "ERROR: $METplus_version is not supported on $machine" + exit 1 + fi else echo "ERROR: $machine is not supported" exit 1 diff --git a/ush/load_to_METviewer_AWS.py b/ush/load_to_METviewer_AWS.py index 362e00eb..0c045de7 100644 --- a/ush/load_to_METviewer_AWS.py +++ b/ush/load_to_METviewer_AWS.py @@ -177,7 +177,7 @@ +'-q '+QUEUESERV+' -A '+ACCOUNT+' -o '+AWS_job_output+' ' +'-e '+AWS_job_output+' -N '+AWS_job_name+' ' +'-l select=1:ncpus=1 '+AWS_job_filename) -elif machine in ['HERA', 'ORION', 'S4', 'JET', 'HERCULES']: +elif machine in ['HERA', 'ORION', 'S4', 'JET', 'HERCULES', 'GAEAC5', 'GAEAC6']: os.system('sbatch --ntasks=1 --time='+walltime.strftime('%H:%M:%S')+' ' +'--partition='+QUEUESERV+' --account='+ACCOUNT+' ' +'--output='+AWS_job_output+' ' diff --git a/ush/plotting_scripts/plot_maps2d_lat_lon_errors.py b/ush/plotting_scripts/plot_maps2d_lat_lon_errors.py index fe533fdd..9a76f253 100644 --- a/ush/plotting_scripts/plot_maps2d_lat_lon_errors.py +++ b/ush/plotting_scripts/plot_maps2d_lat_lon_errors.py @@ -287,15 +287,19 @@ def plot_subplot_data(ax_tmp, map_ax_tmp, plot_data, plot_data_lat, if machine == 'WCOSS2': config['data_dir']='/u/emc.vpppg/.local/share/cartopy' elif machine == 'HERA': - config['data_dir']='/home/Mallory.Row/.local/share/cartopy' + config['data_dir']='/scratch1/NCEPDEV/global/glopara/data/metplus.data/cartopy' elif machine == 'S4': config['data_dir']='/data/prod/glopara/contrib/share/cartopy' elif machine == 'JET': config['data_dir']='/home/Mallory.Row/.local/share/cartopy' -elif machine == 'ORION': - config['data_dir']='/home/mrow/.local/share/cartopy' -elif machine == 'HERCULES': - config['data_dir']='/home/dhuber/.local/share/cartopy' +elif machine == 'ORION': + config['data_dir']='/work2/noaa/global/role-global/data/metplus.data/cartopy' +elif machine == 'HERCULES': + config['data_dir']='/work2/noaa/global/role-global/data/metplus.data/cartopy' +elif machine == 'GAEAC5': + config['data_dir']='/gpfs/f5/nggps_emc/world-shared/role.glopara/DATA/metplus.data/cartopy' +elif machine == 'GAEAC6': + config['data_dir']='/gpfs/f6/drsa-precip3/world-shared/role.glopara/data/metplus.data/cartopy' # Set up information env_var_model_list = [] diff --git a/ush/plotting_scripts/plot_maps2d_model2obs_calc_vars_lat_lon_errors.py b/ush/plotting_scripts/plot_maps2d_model2obs_calc_vars_lat_lon_errors.py index 6c6a4eef..7e3e53b0 100644 --- a/ush/plotting_scripts/plot_maps2d_model2obs_calc_vars_lat_lon_errors.py +++ b/ush/plotting_scripts/plot_maps2d_model2obs_calc_vars_lat_lon_errors.py @@ -281,15 +281,19 @@ def plot_subplot_data(ax_tmp, map_ax_tmp, plot_data, plot_data_lat, if machine == 'WCOSS2': config['data_dir']='/u/emc.vpppg/.local/share/cartopy' elif machine == 'HERA': - config['data_dir']='/home/Mallory.Row/.local/share/cartopy' + config['data_dir']='/scratch1/NCEPDEV/global/glopara/data/metplus.data/cartopy' elif machine == 'S4': config['data_dir']='/data/prod/glopara/contrib/share/cartopy' elif machine == 'JET': config['data_dir']='/home/Mallory.Row/.local/share/cartopy' elif machine == 'ORION': - config['data_dir']='/home/mrow/.local/share/cartopy' + config['data_dir']='/work2/noaa/global/role-global/data/metplus.data/cartopy' elif machine == 'HERCULES': - config['data_dir']='/home/dhuber/.local/share/cartopy' + config['data_dir']='/work2/noaa/global/role-global/data/metplus.data/cartopy' +elif machine == 'GAEAC5': + config['data_dir']='/gpfs/f5/nggps_emc/world-shared/role.glopara/DATA/metplus.data/cartopy' +elif machine == 'GAEAC6': + config['data_dir']='/gpfs/f6/drsa-precip3/world-shared/role.glopara/data/metplus.data/cartopy' # Set up information RUN_type = 'model2obs' diff --git a/ush/plotting_scripts/plot_mapsda_lat_lon_errors.py b/ush/plotting_scripts/plot_mapsda_lat_lon_errors.py index a54a19b9..c83ab47a 100644 --- a/ush/plotting_scripts/plot_mapsda_lat_lon_errors.py +++ b/ush/plotting_scripts/plot_mapsda_lat_lon_errors.py @@ -333,15 +333,19 @@ def plot_subplot_data(ax_tmp, map_ax_tmp, plot_data, plot_data_lat, if machine == 'WCOSS2': config['data_dir']='/u/emc.vpppg/.local/share/cartopy' elif machine == 'HERA': - config['data_dir']='/home/Mallory.Row/.local/share/cartopy' + config['data_dir']='/scratch1/NCEPDEV/global/glopara/data/metplus.data/cartopy' elif machine == 'S4': config['data_dir']='/data/prod/glopara/contrib/share/cartopy' elif machine == 'JET': config['data_dir']='/home/Mallory.Row/.local/share/cartopy' -elif machine == 'HERCULES': - config['data_dir']='/home/dhuber/.local/share/cartopy' elif machine == 'ORION': - config['data_dir']='/home/mrow/.local/share/cartopy' + config['data_dir']='/work2/noaa/global/role-global/data/metplus.data/cartopy' +elif machine == 'HERCULES': + config['data_dir']='/work2/noaa/global/role-global/data/metplus.data/cartopy' +elif machine == 'GAEAC5': + config['data_dir']='/gpfs/f5/nggps_emc/world-shared/role.glopara/DATA/metplus.data/cartopy' +elif machine == 'GAEAC6': + config['data_dir']='/gpfs/f6/drsa-precip3/world-shared/role.glopara/data/metplus.data/cartopy' # Set up information env_var_model_list = [] diff --git a/ush/plotting_scripts/plot_scorecard.py b/ush/plotting_scripts/plot_scorecard.py index 2df40567..afbee9e7 100644 --- a/ush/plotting_scripts/plot_scorecard.py +++ b/ush/plotting_scripts/plot_scorecard.py @@ -537,7 +537,7 @@ def get_day_value(filename, filename_cols, day): +'-q '+QUEUESERV+' -A '+ACCOUNT+' -o '+web_job_output+' ' +'-e '+web_job_output+' -N '+web_job_name+' ' +'-l select=1:ncpus=1 '+web_job_filename) - elif machine in ['HERA', 'ORION', 'S4', 'HERCULES', 'JET']: + elif machine in ['HERA', 'ORION', 'S4', 'HERCULES', 'JET', 'GAEAC5', 'GAEAC6']: os.system('sbatch --ntasks=1 --time='+walltime.strftime('%H:%M:%S')+' ' +'--partition='+QUEUESERV+' --account='+ACCOUNT+' ' +'--output='+web_job_output+' ' diff --git a/ush/run_batch.py b/ush/run_batch.py index 4bad20df..f8a41d9c 100644 --- a/ush/run_batch.py +++ b/ush/run_batch.py @@ -70,6 +70,26 @@ job_card.write('#SBATCH --nodes=1\n') job_card.write('#SBATCH --ntasks-per-node='+nproc+'\n') job_card.write('#SBATCH --time=6:00:00\n') + elif machine == 'GAEAC5': + job_card.write('#!/bin/sh\n') + job_card.write('#SBATCH --partition='+PARTITION_BATCH+'\n') + job_card.write('#SBATCH --account='+ACCOUNT+'\n') + job_card.write('#SBATCH --job-name='+job_name+'\n') + job_card.write('#SBATCH --output='+job_output_filename+'\n') + job_card.write('#SBATCH --nodes=1\n') + job_card.write('#SBATCH --clusters=c5\n') + job_card.write('#SBATCH --ntasks-per-node='+nproc+'\n') + job_card.write('#SBATCH --time=6:00:00\n') + elif machine == 'GAEAC6': + job_card.write('#!/bin/sh\n') + job_card.write('#SBATCH --partition='+PARTITION_BATCH+'\n') + job_card.write('#SBATCH --account='+ACCOUNT+'\n') + job_card.write('#SBATCH --job-name='+job_name+'\n') + job_card.write('#SBATCH --output='+job_output_filename+'\n') + job_card.write('#SBATCH --nodes=1\n') + job_card.write('#SBATCH --clusters=c6\n') + job_card.write('#SBATCH --ntasks-per-node='+nproc+'\n') + job_card.write('#SBATCH --time=6:00:00\n') job_card.write('\n') job_card.write('/bin/sh '+script) @@ -78,7 +98,7 @@ print("Output sent to "+job_output_filename) if machine == 'WCOSS2': os.system('qsub '+job_card_filename) -elif machine in ['HERA', 'ORION', 'S4', 'JET', 'HERCULES']: +elif machine in ['HERA', 'ORION', 'S4', 'JET', 'HERCULES', 'GAEAC5', 'GAEAC6']: os.system('sbatch '+job_card_filename) print("END: "+os.path.basename(__file__)) diff --git a/ush/run_verif_global_in_global_workflow.sh b/ush/run_verif_global_in_global_workflow.sh index a72d52f0..0630f40a 100755 --- a/ush/run_verif_global_in_global_workflow.sh +++ b/ush/run_verif_global_in_global_workflow.sh @@ -197,7 +197,7 @@ cd $DATA ## Get machine #### Need upper case machine name defined machine=$(echo $machine | tr '[a-z]' '[A-Z]') -if [[ "$machine" =~ ^(HERA|ORION|S4|JET|WCOSS2|HERCULES)$ ]]; then +if [[ "$machine" =~ ^(HERA|ORION|S4|JET|WCOSS2|HERCULES|GAEAC5|GAEAC6)$ ]]; then echo else echo "ERROR: $machine is not a supported machine" @@ -293,6 +293,14 @@ elif [ $machine = "WCOSS2" ]; then export global_archive="/lfs/h2/emc/vpppg/noscrub/emc.vpppg/verification/global/archive/model_data" export prepbufr_arch_dir="/lfs/h2/emc/vpppg/noscrub/emc.vpppg/verification/global/archive/obs_data/prepbufr" export ccpa_24hr_arch_dir="/lfs/h2/emc/vpppg/noscrub/emc.vpppg/verification/global/archive/obs_data/ccpa_accum24hr" +elif [ $machine = "GAEAC5" ]; then + export global_archive="/gpfs/f5/nggps_emc/world-shared/role.glopara/DATA/metplus.data/archive" + export prepbufr_arch_dir="/gpfs/f5/nggps_emc/world-shared/role.glopara/DATA/metplus.data/prepbufr" + export ccpa_24hr_arch_dir="/gpfs/f5/nggps_emc/world-shared/role.glopara/DATA/metplus.data/obdata/ccpa_accum24hr" +elif [ $machine = "GAEAC6" ]; then + export global_archive="/gpfs/f6/drsa-precip3/world-shared/role.glopara/data/metplus.data/archive" + export prepbufr_arch_dir="/gpfs/f6/drsa-precip3/world-shared/role.glopara/data/metplus.data/prepbufr" + export ccpa_24hr_arch_dir="/gpfs/f6/drsa-precip3/world-shared/role.glopara/data/metplus.data/obdata/ccpa_accum24hr" fi ## Set operational directories diff --git a/ush/set_up_verif_global.sh b/ush/set_up_verif_global.sh index cff902c1..89b810c9 100755 --- a/ush/set_up_verif_global.sh +++ b/ush/set_up_verif_global.sh @@ -76,7 +76,7 @@ if [ -s config.machine ]; then [[ $status -eq 0 ]] && echo "Succesfully sourced config.machine" fi -if [[ "$machine" =~ ^(HERA|ORION|S4|JET|WCOSS2|HERCULES)$ ]]; then +if [[ "$machine" =~ ^(HERA|ORION|S4|JET|WCOSS2|HERCULES|GAEAC5|GAEAC6)$ ]]; then echo else echo "ERROR: $machine is not a supported machine" @@ -114,6 +114,10 @@ elif [ $machine = "S4" ]; then export FIXverif_global="/data/prod/glopara/fix/verif/20220805" elif [ $machine = "JET" ]; then export FIXverif_global="/lfs4/HFIP/hfv3gfs/glopara/git/fv3gfs/fix/verif/20220805" +elif [ $machine = "GAEAC5" ]; then + export FIXverif_global="/gpfs/f5/nggps_emc/world-shared/role.glopara/FIX/fix/verif/20220805" +elif [ $machine = "GAEAC6" ]; then + export FIXverif_global="/gpfs/f6/drsa-precip3/world-shared/role.glopara/fix/verif/20220805" fi ## Set machine specific account, queues, and run settings @@ -165,6 +169,24 @@ elif [ $machine = "JET" ]; then export PARTITION_BATCH="xjet" export nproc="10" export MPMD="YES" +elif [ $machine = "GAEAC5" ]; then + export ACCOUNT="ufs-ard" + export QUEUE="normal" + export QUEUESHARED="normal" + export QUEUESERV="service" + export CLUSTERS="c5" + export PARTITION_BATCH="batch" + export nproc="128" + export MPMD="YES" +elif [ $machine = "GAEAC6" ]; then + export ACCOUNT="bil-fire8" + export QUEUE="normal" + export QUEUESHARED="normal" + export QUEUESERV="service" + export CLUSTERS="c6" + export PARTITION_BATCH="batch" + export nproc="192" + export MPMD="YES" fi ## Set machine and user specific directories @@ -185,22 +207,22 @@ elif [ $machine = "HERA" ]; then export STMP="/scratch1/NCEPDEV/stmp2/$USER" export PTMP="/scratch1/NCEPDEV/stmp4/$USER" export NOSCRUB="/scratch1/NCEPDEV/global/$USER" - export global_archive="/scratch1/NCEPDEV/global/Mallory.Row/archive" - export prepbufr_arch_dir="/scratch1/NCEPDEV/global/Mallory.Row/prepbufr" - export obdata_dir="/scratch1/NCEPDEV/global/Mallory.Row/obdata" - export ccpa_24hr_arch_dir="/scratch1/NCEPDEV/global/Mallory.Row/obdata/ccpa_accum24hr" - export METviewer_AWS_scripts_dir="/scratch1/NCEPDEV/global/Mallory.Row/VRFY/METviewer_AWS" + export global_archive="/scratch1/NCEPDEV/global/glopara/data/metplus.data/archive" + export prepbufr_arch_dir="/scratch1/NCEPDEV/global/glopara/data/metplus.data/prepbufr" + export obdata_dir="/scratch1/NCEPDEV/global/glopara/data/metplus.data/obdata" + export ccpa_24hr_arch_dir="/scratch1/NCEPDEV/global/glopara/data/metplus.data/obdata/ccpa_accum24hr" + export METviewer_AWS_scripts_dir="/scratch1/NCEPDEV/global/glopara/data/metplus.data/VRFY/METviewer_AWS" elif [ $machine = "ORION" ] || [ $machine = "HERCULES" ]; then export NWROOT=${NWROOT:-"/work/noaa/global/glopara/nwpara"} export HOMEDIR="/work/noaa/nems/$USER" export STMP="/work/noaa/stmp/$USER" export PTMP="/work/noaa/stmp/$USER" export NOSCRUB="/work/noaa/nems/$USER" - export global_archive="/work/noaa/ovp/mrow/archive" - export prepbufr_arch_dir="/work/noaa/ovp/mrow/prepbufr" - export obdata_dir="/work/noaa/ovp/mrow/obdata" - export ccpa_24hr_arch_dir="/work/noaa/ovp/mrow/obdata/ccpa_accum24hr" - export METviewer_AWS_scripts_dir="/work/noaa/ovp/mrow/VRFY/METviewer_AWS" + export global_archive="/work2/noaa/global/role-global/data/metplus.data/archive" + export prepbufr_arch_dir="/work2/noaa/global/role-global/data/metplus.data/prepbufr" + export obdata_dir="/work2/noaa/global/role-global/data/metplus.data/obdata" + export ccpa_24hr_arch_dir="/work2/noaa/global/role-global/data/metplus.data/obdata/ccpa_accum24hr" + export METviewer_AWS_scripts_dir="/work2/noaa/global/role-global/data/metplus.data/VRFY/METviewer_AWS" elif [ $machine = "S4" ]; then export NWROOT=${NWROOT:-"/data/prod/glopara/nwpara"} export HOMEDIR="/data/users/$USER" @@ -223,6 +245,29 @@ elif [ $machine = "JET" ]; then export obdata_dir="/lfs4/HFIP/hfv3gfs/Mallory.Row/obdata" export ccpa_24hr_arch_dir="/lfs4/HFIP/hfv3gfs/Mallory.Row/obdata/ccpa_accum24hr" export METviewer_AWS_scripts_dir="/lfs4/HFIP/hfv3gfs/Mallory.Row/VRFY/METviewer_AWS" +elif [ $machine = "GAEAC5" ]; then + export NWROOT="/gpfs/f5/${ACCOUNT}/world-shared/global/glopara/data/nwpara" + export HOMEDIR="/gpfs/f5/${ACCOUNT}/scratch/${USER}" + export STMP="/gpfs/f5/${ACCOUNT}/scratch/${USER}/stmp2" + export PTMP="/gpfs/f5/${ACCOUNT}/scratch/${USER}/stmp4" + export NOSCRUB="/gpfs/f5/${ACCOUNT}/scratch/${USER}/noscrub" + export global_archive="/gpfs/f5/nggps_emc/world-shared/role.glopara/DATA/metplus.data/archive" + export prepbufr_arch_dir="/gpfs/f5/nggps_emc/world-shared/role.glopara/DATA/metplus.data/prepbufr" + export obdata_dir="/gpfs/f5/nggps_emc/world-shared/role.glopara/DATA/metplus.data/obdata" + export ccpa_24hr_arch_dir="/gpfs/f5/nggps_emc/world-shared/role.glopara/DATA/metplus.data/obdata/ccpa_accum24hr" + export METviewer_AWS_scripts_dir="/gpfs/f5/nggps_emc/world-shared/role.glopara/DATA/metplus.data/VRFY/METviewer_AWS" +elif [ $machine = "GAEAC6" ]; then + export NWROOT="/gpfs/f6/${ACCOUNT}/world-shared/global/glopara/data/nwpara" + export HOMEDIR="/gpfs/f6/${ACCOUNT}/scratch/${USER}" + export STMP="/gpfs/f6/${ACCOUNT}/scratch/${USER}/stmp2" + export PTMP="/gpfs/f6/${ACCOUNT}/scratch/${USER}/stmp4" + export NOSCRUB="/gpfs/f6/${ACCOUNT}/scratch/${USER}/noscrub" + export global_archive="/gpfs/f6/drsa-precip3/world-shared/role.glopara/data/metplus.data/archive" + export prepbufr_arch_dir="/gpfs/f6/drsa-precip3/world-shared/role.glopara/data/metplus.data/prepbufr" + export obdata_dir="/gpfs/f6/drsa-precip3/world-shared/role.glopara/data/metplus.data/obdata" + export ccpa_24hr_arch_dir="/gpfs/f6/drsa-precip3/world-shared/role.glopara/data/metplus.data/obdata/ccpa_accum24hr" + export METviewer_AWS_scripts_dir="/gpfs/f6/drsa-precip3/world-shared/role.glopara/data/metplus.data/VRFY/METviewer_AWS" + fi ## Set operational directories