55
66# dir references
77run_dir=$( cd -- " $( dirname -- " ${BASH_SOURCE[0]} " ) " & > /dev/null && pwd )
8+ echo " ${run_dir} "
89mdtf_dir=/home/oar.gfdl.mdtf/mdtf/MDTF-diagnostics
9- # mdtf_dir=/home/Jacob.Mims/mdtf/MDTF-diagnostics
1010activate=/home/oar.gfdl.mdtf/miniconda3/bin/activate
1111
1212# TEST: /archive/jpk/fre/FMS2024.02_OM5_20240819/CM4.5v01_om5b06_piC_noBLING_xrefine_test4/gfdl.ncrc5-intel23-prod-openmp/pp/ starts 0001
@@ -23,7 +23,7 @@ usage() {
2323tempdir=" "
2424pod_config=" "
2525declare -a pods=()
26- while getopts " hi:o:s:e:p:t:l:" arg; do
26+ while getopts " hi:o:s:e:p:t:l:c: " arg; do
2727 case " ${arg} " in
2828 h)
2929 usage
@@ -60,76 +60,87 @@ while getopts "hi:o:s:e:p:t:l:" arg; do
6060 ;;
6161 l)
6262 pod_config=" ${OPTARG} "
63+ ;;
64+ c)
65+ convention=" ${OPTARG} "
6366 esac
6467done
68+
6569shift $(( OPTIND- 1 ))
66- if ! [ -d $ outdir /config ]; then
67- mkdir -p $ outdir /config
70+ if ! [ -d " ${ outdir} " /config ]; then
71+ mkdir -p " ${ outdir} " /config
6872fi
69- if [ -z $tempdir ]; then
70- wkdir=$outdir
73+
74+ if [ -z " ${tempdir} " ]; then
75+ wkdir=" ${outdir} "
7176else
72- wkdir=$ tempdir
77+ wkdir=" ${ tempdir} "
7378fi
74- if [ -z $pod_config ]; then
75- pod_config=" $run_dir /config/pod_config.json"
79+
80+ if [ -z " ${pod_config} " ]; then
81+ pod_config=" ${run_dir} /config/pod_config.json"
7682fi
7783
7884# check to see if catalog exists
7985# ^..^
8086# /o o\
8187# oo--oo~~~
82- echo " looking for catalog in $ppdir "
83- cat=$( grep -s -H " esmcat_version" $ppdir /* .json | cut -d: -f1)
84- if [[ " $cat " == " " ]]; then
85- env=/nbhome/fms/conda/envs/fre-2025.01
86- source $activate $env
87- fre catalog builder --overwrite $ppdir $outdir /catalog
88- cat=$outdir /catalog.json
89- echo " new catalog generated: $cat "
90- else
91- echo " found catalog: $cat "
92- fi
88+ output_catalog=" ${outdir} " /catalog.json
89+ if [ ! -f " ${output_catalog} " ]; then
90+ echo " Looking for catalog in ${ppdir} "
91+ input_catalog=$( grep -s -H " esmcat_version" " ${ppdir} " /* .json | cut -d: -f1)
92+ if [[ " ${input_catalog} " == " " ]]; then
93+ env=/nbhome/fms/conda/envs/fre-2025.01
94+ source $activate ${env}
95+ fre catalog builder --slow --overwrite " ${ppdir} " " ${outdir} " /catalog
96+ echo " New catalog generated: ${output_catalog} "
97+ else
98+ echo " found catalog: ${input_catalog} "
99+ fi
93100
101+ fi
94102# edit template config file
95- cp $ run_dir /config/template_config.jsonc $ outdir
96- f=$outdir /template_config.jsonc
97- if [ ! -f $f ]; then
98- echo " ERROR: failed to find $f "
103+ cp " ${ run_dir} " /config/template_config.jsonc " ${ outdir} "
104+ f=${ outdir} /template_config.jsonc
105+ if [ ! -f " ${f} " ]; then
106+ echo " ERROR: failed to find ${f} "
99107 exit 0
100108fi
101109config=' "DATA_CATALOG": "",'
102- config_edit=' "DATA_CATALOG": "' " ${cat } " ' ",'
103- sed -i " s|$config | $ config_edit |ig" $f
110+ config_edit=' "DATA_CATALOG": "' " ${output_catalog } " ' ",'
111+ sed -i " s|${ config} | ${ config_edit} |ig" " ${f} "
104112config=' "WORK_DIR": "",'
105113config_edit=' "WORK_DIR": "' " ${wkdir} " ' ",'
106- sed -i " s|$config | $ config_edit |ig" $f
114+ sed -i " s|${ config} | ${ config_edit} |ig" " ${f} "
107115config=' "OUTPUT_DIR": "",'
108116config_edit=' "OUTPUT_DIR": "' " ${outdir} " ' ",'
109- sed -i " s|$config | $ config_edit |ig" $f
117+ sed -i " s|${ config} | ${ config_edit} |ig" " ${f} "
110118config=' "startdate": "",'
111119config_edit=' "startdate": "' " ${startyr} " ' ",'
112- sed -i " s|$config | $ config_edit |ig" $f
120+ sed -i " s|${ config} | ${ config_edit} |ig" " ${f} "
113121config=' "enddate": ""'
114122config_edit=' "enddate": "' " ${endyr} " ' "'
115- sed -i " s|$config |$config_edit |ig" $f
116- echo " edited file $f "
123+ sed -i " s|${config} |${config_edit} |ig" " ${f} "
124+ config_edit=' "convention": "' " ${convention} " ' "'
125+ sed -i " s|${config} |${config_edit} |ig" " ${f} "
126+ echo " edited file ${f} "
117127
118128# load mdtf base conda env
119129env=/home/oar.gfdl.mdtf/miniconda3/envs/_MDTF_base
120- source $activate $ env
130+ source ${ activate} ${ env}
121131# generate config files
122- python $ run_dir /scripts/gen_config.py $ outdir/ $ pod_config
132+ python " ${ run_dir} " /scripts/gen_config.py " ${ outdir} " / " ${ pod_config} "
123133
124134# launch the mdtf with the config files
125- for f in $( ls ${outdir} /config) ; do
126- echo " launching MDTF with $f "
127- " $mdtf_dir " /mdtf -f $outdir /config/$f
135+ file_list=$( ls " ${outdir} " /config )
136+ for f in ${file_list} ; do
137+ echo " Launching MDTF-diagnostics with configuration ${f} "
138+ " ${mdtf_dir} " /mdtf -f " ${outdir} /config/${f} "
128139done
129140
130141# consolidate outputs into index
131- cp $ run_dir /scripts/index.html $ outdir /
132- cp $ run_dir /scripts/mdtf_diag_banner.png $ outdir /
133- python $ run_dir /scripts/gen_index.py $ outdir/ $ pod_config
142+ cp " ${ run_dir} " /scripts/index.html " ${ outdir} " /
143+ cp " ${ run_dir} " /scripts/mdtf_diag_banner.png " ${ outdir} " /
144+ python " ${ run_dir} " /scripts/gen_index.py " ${ outdir} " / " ${ pod_config} "
134145
135146exit 0
0 commit comments