From 6107b440fb9789a8b7103a6acfd4aa2b04e44584 Mon Sep 17 00:00:00 2001
From: lkugler <lukas.kugler@gmail.com>
Date: Fri, 21 Apr 2023 12:31:25 +0200
Subject: [PATCH] separate definition of modules for WRF

---
 config/jet.py          | 3 +++
 dartwrf/run_ens.jet.sh | 4 +---
 dartwrf/workflows.py   | 7 +++++--
 3 files changed, 9 insertions(+), 5 deletions(-)

diff --git a/config/jet.py b/config/jet.py
index 24bb533..757b95c 100755
--- a/config/jet.py
+++ b/config/jet.py
@@ -56,6 +56,9 @@ cluster.ncks = '/jetfs/spack/opt/spack/linux-rhel8-skylake_avx512/intel-2021.7.1
 cluster.ideal = '/jetfs/home/lkugler/bin/ideal-v4.3_v1.22.exe'
 cluster.wrfexe = '/jetfs/home/lkugler/bin/wrf-v4.3_v1.22_ifort_20230413.exe'
 cluster.dart_modules = 'module purge; module load netcdf-fortran/4.5.3-gcc-8.5.0-qsqbozc;'
+cluster.wrf_modules = """module purge; module load intel-oneapi-compilers/2022.2.1-zkofgc5 hdf5/1.12.2-intel-2021.7.1-w5sw2dq netcdf-fortran/4.5.3-intel-2021.7.1-27ldrnt netcdf-c/4.7.4-intel-2021.7.1-lnfs5zz intel-oneapi-mpi/2021.7.1-intel-2021.7.1-pt3unoz
+export HDF5=/jetfs/spack/opt/spack/linux-rhel8-skylake_avx512/intel-2021.7.1/hdf5-1.12.2-w5sw2dqpcq2orlmeowleamoxr65dhhdc
+"""
 
 # paths for data output
 cluster.wrf_rundir_base = '/jetfs/home/lkugler/data/run_WRF/'  # path for temporary files
diff --git a/dartwrf/run_ens.jet.sh b/dartwrf/run_ens.jet.sh
index b2aa49a..52aa2fc 100755
--- a/dartwrf/run_ens.jet.sh
+++ b/dartwrf/run_ens.jet.sh
@@ -1,6 +1,4 @@
-module purge
-module load intel-oneapi-compilers/2022.2.1-zkofgc5 hdf5/1.12.2-intel-2021.7.1-w5sw2dq netcdf-fortran/4.5.3-intel-2021.7.1-27ldrnt netcdf-c/4.7.4-intel-2021.7.1-lnfs5zz intel-oneapi-mpi/2021.7.1-intel-2021.7.1-pt3unoz
-export HDF5=/jetfs/spack/opt/spack/linux-rhel8-skylake_avx512/intel-2021.7.1/hdf5-1.12.2-w5sw2dqpcq2orlmeowleamoxr65dhhdc
+<cluster.wrf_modules>
 export SLURM_STEP_GRES=none
 
 echo "SLURM_ARRAY_TASK_ID:"$SLURM_ARRAY_TASK_ID
diff --git a/dartwrf/workflows.py b/dartwrf/workflows.py
index 3c06dd2..a6f6991 100644
--- a/dartwrf/workflows.py
+++ b/dartwrf/workflows.py
@@ -226,8 +226,11 @@ class WorkFlows(object):
 
         id = self.cluster.run_job(' '.join(args), "preWRF", cfg_update=dict(time="2"), depends_on=[depends_on])
 
-        cmd = script_to_str(self.cluster.run_WRF).replace('<exp.expname>', exp.expname
-                                        ).replace('<cluster.wrf_rundir_base>', self.cluster.wrf_rundir_base)
+        cmd = script_to_str(self.cluster.run_WRF
+                ).replace('<exp.expname>', exp.expname
+                ).replace('<cluster.wrf_rundir_base>', self.cluster.wrf_rundir_base
+                ).replace('<cluster.wrf_modules>', self.cluster.wrf_modules)
+                
 
         time_in_simulation_hours = (end-begin).total_seconds()/3600
         runtime_wallclock_mins_expected = int(8+time_in_simulation_hours*9.5)  # usually below 9 min/hour
-- 
GitLab