@@ -6,6 +6,18 @@ echo "###"
66echo " # Cleanup Simulation"
77echo " ###"
88
9+ parse_config_file ${conf_file} " sim_clean_general"
10+
11+ file_op_mode=${file_op_mode:- " copy" }
12+
13+ file_op () {
14+ if [ " $file_op_mode " = " move" ]; then
15+ mv -v " $@ "
16+ else
17+ cp -v " $@ "
18+ fi
19+ }
20+
921simout_dir=${out_dir} /${caseid}${modelid} _${dateymd}
1022simrst_dir=${rst_dir} /${caseid}${dateymd}
1123
@@ -19,87 +31,87 @@ echo "Moving model output to simout and storing restart files"
1931
2032mkdir -p " ${simout_dir} /log" " ${simout_dir} /nml" " ${simout_dir} /rst" " ${simout_dir} /bin"
2133
22- cp ${tsmp2_env} ${simout_dir} /bin/
34+ file_op ${tsmp2_env} ${simout_dir} /bin/
2335
2436if [[ " ${MODEL_ID} " == * -* ]]; then
25- cp -v ${sim_dir} /namcouple ${simout_dir} /nml/
37+ file_op ${sim_dir} /namcouple ${simout_dir} /nml/
2638fi # MODEL_ID oasis
2739
2840if [[ " ${modelid} " == * icon* ]]; then
2941 # Namelist
30- cp -v ${sim_dir} /NAMELIST_icon ${simout_dir} /nml/
31- cp -v ${sim_dir} /icon_master.namelist ${simout_dir} /nml/
42+ file_op ${sim_dir} /NAMELIST_icon ${simout_dir} /nml/
43+ file_op ${sim_dir} /icon_master.namelist ${simout_dir} /nml/
3244
3345 # Model output
3446 mkdir -p ${simout_dir} /out/icon
35- cp -v ${sim_dir} /ICON_out_* ${simout_dir} /out/icon
47+ file_op ${sim_dir} /ICON_out_* ${simout_dir} /out/icon
3648
3749 # Model log
38- cp -v ${sim_dir} /nml.atmo.log ${simout_dir} /log/
39- cp -v ${sim_dir} /* .dat ${simout_dir} /log/
50+ file_op ${sim_dir} /nml.atmo.log ${simout_dir} /log/
51+ file_op ${sim_dir} /* .dat ${simout_dir} /log/
4052
4153 # Restart
4254 mkdir -p ${simout_dir} /rst/icon ${simrst_dir} /icon
43- cp -v ${sim_dir} /${expid} _restart_ATMO_* .nc ${simout_dir} /rst/icon
44- cp -v ${sim_dir} /${expid} _restart_ATMO_* .nc ${simrst_dir} /icon # save twice as simout is archived
55+ file_op ${sim_dir} /${expid} _restart_ATMO_* .nc ${simout_dir} /rst/icon
56+ file_op ${sim_dir} /${expid} _restart_ATMO_* .nc ${simrst_dir} /icon # save twice as simout is archived
4557
4658 # copy binary
47- cp -v icon ${simout_dir} /bin/
59+ file_op icon ${simout_dir} /bin/
4860
4961fi # icon
5062
5163if [[ " ${modelid} " == * clm* ]]; then
5264 # Namelist
53- cp -v ${sim_dir} /* _in ${simout_dir} /nml/
54- cp -v ${sim_dir} /datm.* ${simout_dir} /nml/
65+ file_op ${sim_dir} /* _in ${simout_dir} /nml/
66+ file_op ${sim_dir} /datm.* ${simout_dir} /nml/
5567
5668 # Model output
5769 mkdir -p ${simout_dir} /out/eclm
58- cp -v ${sim_dir} /eCLM_* .clm2.h* ${simout_dir} /out/eclm
70+ file_op ${sim_dir} /eCLM_* .clm2.h* ${simout_dir} /out/eclm
5971
6072 # Model log
61- cp -v ${sim_dir} /logs/${SLURM_JOB_ID} .comp_* .log ${simout_dir} /log/
62- cp -v ${sim_dir} /timing/model_timing_stats ${simout_dir} /log/
73+ file_op ${sim_dir} /logs/${SLURM_JOB_ID} .comp_* .log ${simout_dir} /log/
74+ file_op ${sim_dir} /timing/model_timing_stats ${simout_dir} /log/
6375
6476 # Restart
6577 mkdir -p ${simout_dir} /rst/eclm ${simrst_dir} /eclm
66- cp -v ${sim_dir} /eCLM_* .clm2.r* ${simout_dir} /rst/eclm
67- cp -v ${sim_dir} /eCLM_* .clm2.r* ${simrst_dir} /eclm # save twice as simout is archived
78+ file_op ${sim_dir} /eCLM_* .clm2.r* ${simout_dir} /rst/eclm
79+ file_op ${sim_dir} /eCLM_* .clm2.r* ${simrst_dir} /eclm # save twice as simout is archived
6880
6981 # Copy binary
70- cp -v eclm ${simout_dir} /bin/
82+ file_op eclm ${simout_dir} /bin/
7183
7284fi # clm
7385
7486if [[ " ${modelid} " == * parflow* ]]; then
7587
7688 # Namelist
77- cp -v ${sim_dir} /coup_oas.tcl ${simout_dir} /nml/
89+ file_op ${sim_dir} /coup_oas.tcl ${simout_dir} /nml/
7890
7991 # Model output
8092 mkdir -p ${simout_dir} /out/parflow
81- cp -v ${sim_dir} /* .out.????? .nc ${simout_dir} /out/parflow
93+ file_op ${sim_dir} /* .out.????? .nc ${simout_dir} /out/parflow
8294
8395 # Model log
84- cp -v ${sim_dir} /* out.kinsol.log ${simout_dir} /log/
85- cp -v ${sim_dir} /* out.log ${simout_dir} /log/
86- cp -v ${sim_dir} /* out.timing* ${simout_dir} /log/
96+ file_op ${sim_dir} /* out.kinsol.log ${simout_dir} /log/
97+ file_op ${sim_dir} /* out.log ${simout_dir} /log/
98+ file_op ${sim_dir} /* out.timing* ${simout_dir} /log/
8799
88100 # Restart
89101 mkdir -p ${simout_dir} /rst/parflow ${simrst_dir} /parflow
90102 pflnout=$( echo " ( ((${simlenhr} /${pfloutfrq} ) + ${pfloutmfilt} -1) / ${pfloutmfilt} )" | bc)
91103 pflnlast=$( printf " %05d" $( echo " 1 + (${pflnout} -1) * ${pfloutmfilt} " | bc) )
92104# cp -v $(ls -1 ${sim_dir}/*.out.?????.nc | tail -1) ${simout_dir}/rst/parflow
93105 # save twice as simout is archived
94- cp -v ${sim_dir} /${EXP_ID} .out.${pflnlast} .nc ${simout_dir} /rst/parflow
95- cp -v ${sim_dir} /${EXP_ID} .out.${pflnlast} .nc ${simrst_dir} /parflow/${EXP_ID} .out.$( date -u -d " ${datep1} " +%Y%m%d%H%M%S) .nc # 2nd copy
106+ file_op ${sim_dir} /${EXP_ID} .out.${pflnlast} .nc ${simout_dir} /rst/parflow
107+ file_op ${sim_dir} /${EXP_ID} .out.${pflnlast} .nc ${simrst_dir} /parflow/${EXP_ID} .out.$( date -u -d " ${datep1} " +%Y%m%d%H%M%S) .nc # 2nd copy
96108
97109 # Copy binary
98- cp -v parflow ${simout_dir} /bin/
110+ file_op parflow ${simout_dir} /bin/
99111
100112fi # parflow
101113
102- cp -v ${sim_dir} /slm_multiprog_mapping.conf ${simout_dir} /log/
114+ file_op ${sim_dir} /slm_multiprog_mapping.conf ${simout_dir} /log/
103115
104116# sim logs
105117mv ${log_dir} /${SLURM_JOB_NAME} _${SLURM_JOB_ID} .{err,out} ${simout_dir} /log/.
0 commit comments