@@ -17,8 +17,8 @@ export machine=${WHERE_AM_I:-wcoss_cray}
17
17
export envir=${envir:- prod} # prod, para, test
18
18
export RUN_ENVIR=${RUN_ENVIR:- dev} # nco or dev
19
19
if [ " ${RUN_ENVIR^^} " != NCO ]; then
20
- module use $HOMEhafs /sorc/hafs_gsi.fd/modulefiles
21
- module load modulefile.ProdGSI.${machine}
20
+ # module use $HOMEhafs/sorc/hafs_gsi.fd/modulefiles
21
+ # module load modulefile.ProdGSI.${machine}
22
22
module list
23
23
fi
24
24
@@ -42,9 +42,44 @@ export ENSDA=${ENSDA:-NO}
42
42
export GSI_D01=${GSI_D01:- NO}
43
43
export GSI_D02=${GSI_D02:- NO}
44
44
45
+ yr=` echo $CDATE | cut -c1-4`
46
+ mn=` echo $CDATE | cut -c5-6`
47
+ dy=` echo $CDATE | cut -c7-8`
48
+
49
+ export NDATE=${NDATE:- ndate}
50
+ export NCP=${NCP:- " /bin/cp" }
51
+ CDATEprior=` ${NDATE} -6 $CDATE `
52
+ export COMhafsprior=${COMhafsprior:- ${COMhafs} / ../ ../ ${CDATEprior} / ${STORMID} }
53
+
54
+ if [ ${RUN_ATM_VI_FGAT} = " YES" ]; then
55
+ RESTARTinp_fgat06=${WORKhafs} /intercom/RESTART_vi_fgat06
56
+ elif [ ${RUN_GSI_VR_FGAT} = " YES" ]; then
57
+ RESTARTinp_fgat06=${WORKhafs} /intercom/RESTART_analysis_vr_fgat06
58
+ elif [ ${RUN_ATM_MERGE_FGAT} = " YES" ]; then
59
+ RESTARTinp_fgat06=${WORKhafs} /intercom/RESTART_merge_fgat06
60
+ elif [ ${RUN_ATM_INIT_FGAT} = " YES" ]; then
61
+ RESTARTinp_fgat06=${WORKhafs} /intercom/RESTART_init_fgat06
62
+ else
63
+ if [ ${RUN_ATM_VI} = " YES" ]; then
64
+ RESTARTinp_fgat06=${WORKhafs} /intercom/RESTART_vi
65
+ elif [ ${RUN_GSI_VR} = " YES" ]; then
66
+ RESTARTinp_fgat06=${WORKhafs} /intercom/RESTART_analysis_vr
67
+ elif [ ${RUN_ATM_MERGE} = " YES" ]; then
68
+ RESTARTinp_fgat06=${WORKhafs} /intercom/RESTART_merge
69
+ elif [ ${RUN_ATM_INIT} = " YES" ]; then
70
+ RESTARTinp_fgat06=${WORKhafs} /intercom/RESTART_init
71
+ else
72
+ RESTARTinp_fgat06=${COMhafsprior} /RESTART
73
+ fi
74
+ fi
75
+ RESTARTinp=${RESTARTinp_fgat06}
76
+
45
77
# analysis for d01
46
78
if [ ${GSI_D01} = YES ]; then
47
79
80
+ export neststr=${neststr:- " " }
81
+ export tilestr=${tilestr:- " .tile1" }
82
+ export nesttilestr=${nesttilestr:- " " }
48
83
export DATA=${WORKhafs} /analysis
49
84
50
85
export SCRUBDATA=${SCRUBDATA:- YES}
@@ -63,10 +98,55 @@ if [ "${KEEPDATA^^}" != YES ]; then
63
98
rm -rf $DATA
64
99
fi
65
100
101
+ else
102
+
103
+ export neststr=${neststr:- " " }
104
+ export tilestr=${tilestr:- " .tile1" }
105
+ export nesttilestr=${nesttilestr:- " " }
106
+
107
+ export RESTARTanl=${RESTARTanl:- ${WORKhafs} / intercom/ RESTART_analysis}
108
+ mkdir -p ${RESTARTanl}
109
+
110
+ if [ -s ${RESTARTinp} /${PDY} .${cyc} 0000.fv_core.res${neststr}${tilestr} .nc ]; then
111
+
112
+ ${NCP} ${RESTARTinp} /${PDY} .${cyc} 0000.coupler.res ${RESTARTanl} /${PDY} .${cyc} 0000.coupler.res
113
+ ${NCP} ${RESTARTinp} /${PDY} .${cyc} 0000.fv_core.res${neststr} .nc ${RESTARTanl} /${PDY} .${cyc} 0000.fv_core.res${neststr} .nc
114
+ ${NCP} ${RESTARTinp} /${PDY} .${cyc} 0000.sfc_data${nesttilestr} .nc ${RESTARTanl} /${PDY} .${cyc} 0000.sfc_data${nesttilestr} .nc
115
+ ${NCP} ${RESTARTinp} /${PDY} .${cyc} 0000.fv_srf_wnd.res${neststr}${tilestr} .nc ${RESTARTanl} /${PDY} .${cyc} 0000.fv_srf_wnd.res${neststr}${tilestr} .nc
116
+ ${NCP} ${RESTARTinp} /${PDY} .${cyc} 0000.fv_core.res${neststr}${tilestr} .nc ${RESTARTanl} /${PDY} .${cyc} 0000.fv_core.res${neststr}${tilestr} .nc
117
+ ${NCP} ${RESTARTinp} /${PDY} .${cyc} 0000.fv_tracer.res${neststr}${tilestr} .nc ${RESTARTanl} /${PDY} .${cyc} 0000.fv_tracer.res${neststr}${tilestr} .nc
118
+
119
+ ${NCP} ${RESTARTinp} /oro_data${nesttilestr} .nc ${RESTARTanl} /oro_data${nesttilestr} .nc
120
+ ${NCP} ${RESTARTinp} /atmos_static${nesttilestr} .nc ${RESTARTanl} /atmos_static${nesttilestr} .nc
121
+ ${NCP} ${RESTARTinp} /grid_spec${nesttilestr} .nc ${RESTARTanl} /grid_spec${nesttilestr} .nc
122
+
123
+ # pass over phy_data as well
124
+ ${NCP} ${RESTARTinp} /${PDY} .${cyc} 0000.phy_data${nesttilestr} .nc ${RESTARTanl} /${PDY} .${cyc} 0000.phy_data${nesttilestr} .nc
125
+
126
+ if [[ ! -z " $neststr " ]] ; then
127
+ if [ -e ${RESTARTinp} /${PDY} .${cyc} 0000.fv_BC_ne.res${neststr} .nc ]; then
128
+ ${NCP} ${RESTARTinp} /${PDY} .${cyc} 0000.fv_BC_ne.res${neststr} .nc ${RESTARTanl} /${PDY} .${cyc} 0000.fv_BC_ne.res${neststr} .nc
129
+ ${NCP} ${RESTARTinp} /${PDY} .${cyc} 0000.fv_BC_sw.res${neststr} .nc ${RESTARTanl} /${PDY} .${cyc} 0000.fv_BC_sw.res${neststr} .nc
130
+ fi
131
+ fi
132
+
133
+ # Pass over the grid_mspec files for moving nest
134
+ if [[ " ${is_moving_nest:- " .false." } " = * " .true." * ]] || [[ " ${is_moving_nest:- " .false." } " = * " .T." * ]] ; then
135
+ if [[ -z " $neststr " ]] && [[ $tilestr = " .tile1" ]]; then
136
+ # "grid_mspec_${yr}_${mn}_${dy}_${cyc}.nc" for domain 02
137
+ ${NCP} -p ${RESTARTinp} /grid_mspec_${yr} _${mn} _${dy} _${cyc} .nc ${RESTARTanl} /
138
+ else
139
+ # "grid_mspec.nest02_${yr}_${mn}_${dy}_${cyc}.tile2.nc" for domain 02
140
+ ${NCP} -p ${RESTARTinp} /grid_mspec${neststr} _${yr} _${mn} _${dy} _${cyc}${tilestr} .nc ${RESTARTanl} /
141
+ fi
142
+ fi
143
+
144
+ fi
145
+
66
146
fi
67
147
68
148
# analysis for d02
69
- if [ ${GSI_D02} = YES ]; then
149
+ if [ ${GSI_D02} = YES ] && [[ $nest_grids -ge 2 ]] ; then
70
150
71
151
export neststr=" .nest02"
72
152
export tilestr=" .tile2"
@@ -89,6 +169,51 @@ if [ "${KEEPDATA^^}" != YES ]; then
89
169
rm -rf $DATA
90
170
fi
91
171
172
+ elif [ ${GSI_D02} != YES ] && [[ $nest_grids -ge 2 ]]; then
173
+
174
+ export neststr=" .nest02"
175
+ export tilestr=" .tile2"
176
+ export nesttilestr=" .nest02.tile2"
177
+
178
+ export RESTARTanl=${RESTARTanl:- ${WORKhafs} / intercom/ RESTART_analysis}
179
+ mkdir -p ${RESTARTanl}
180
+
181
+ if [ -s ${RESTARTinp} /${PDY} .${cyc} 0000.fv_core.res${neststr}${tilestr} .nc ]; then
182
+
183
+ ${NCP} ${RESTARTinp} /${PDY} .${cyc} 0000.coupler.res ${RESTARTanl} /${PDY} .${cyc} 0000.coupler.res
184
+ ${NCP} ${RESTARTinp} /${PDY} .${cyc} 0000.fv_core.res${neststr} .nc ${RESTARTanl} /${PDY} .${cyc} 0000.fv_core.res${neststr} .nc
185
+ ${NCP} ${RESTARTinp} /${PDY} .${cyc} 0000.sfc_data${nesttilestr} .nc ${RESTARTanl} /${PDY} .${cyc} 0000.sfc_data${nesttilestr} .nc
186
+ ${NCP} ${RESTARTinp} /${PDY} .${cyc} 0000.fv_srf_wnd.res${neststr}${tilestr} .nc ${RESTARTanl} /${PDY} .${cyc} 0000.fv_srf_wnd.res${neststr}${tilestr} .nc
187
+ ${NCP} ${RESTARTinp} /${PDY} .${cyc} 0000.fv_core.res${neststr}${tilestr} .nc ${RESTARTanl} /${PDY} .${cyc} 0000.fv_core.res${neststr}${tilestr} .nc
188
+ ${NCP} ${RESTARTinp} /${PDY} .${cyc} 0000.fv_tracer.res${neststr}${tilestr} .nc ${RESTARTanl} /${PDY} .${cyc} 0000.fv_tracer.res${neststr}${tilestr} .nc
189
+
190
+ ${NCP} ${RESTARTinp} /oro_data${nesttilestr} .nc ${RESTARTanl} /oro_data${nesttilestr} .nc
191
+ ${NCP} ${RESTARTinp} /atmos_static${nesttilestr} .nc ${RESTARTanl} /atmos_static${nesttilestr} .nc
192
+ ${NCP} ${RESTARTinp} /grid_spec${nesttilestr} .nc ${RESTARTanl} /grid_spec${nesttilestr} .nc
193
+
194
+ # pass over phy_data as well
195
+ ${NCP} ${RESTARTinp} /${PDY} .${cyc} 0000.phy_data${nesttilestr} .nc ${RESTARTanl} /${PDY} .${cyc} 0000.phy_data${nesttilestr} .nc
196
+
197
+ if [[ ! -z " $neststr " ]] ; then
198
+ if [ -e ${RESTARTinp} /${PDY} .${cyc} 0000.fv_BC_ne.res${neststr} .nc ]; then
199
+ ${NCP} ${RESTARTinp} /${PDY} .${cyc} 0000.fv_BC_ne.res${neststr} .nc ${RESTARTanl} /${PDY} .${cyc} 0000.fv_BC_ne.res${neststr} .nc
200
+ ${NCP} ${RESTARTinp} /${PDY} .${cyc} 0000.fv_BC_sw.res${neststr} .nc ${RESTARTanl} /${PDY} .${cyc} 0000.fv_BC_sw.res${neststr} .nc
201
+ fi
202
+ fi
203
+
204
+ # Pass over the grid_mspec files for moving nest
205
+ if [[ " ${is_moving_nest:- " .false." } " = * " .true." * ]] || [[ " ${is_moving_nest:- " .false." } " = * " .T." * ]] ; then
206
+ if [[ -z " $neststr " ]] && [[ $tilestr = " .tile1" ]]; then
207
+ # "grid_mspec_${yr}_${mn}_${dy}_${cyc}.nc" for domain 02
208
+ ${NCP} -p ${RESTARTinp} /grid_mspec_${yr} _${mn} _${dy} _${cyc} .nc ${RESTARTanl} /
209
+ else
210
+ # "grid_mspec.nest02_${yr}_${mn}_${dy}_${cyc}.tile2.nc" for domain 02
211
+ ${NCP} -p ${RESTARTinp} /grid_mspec${neststr} _${yr} _${mn} _${dy} _${cyc}${tilestr} .nc ${RESTARTanl} /
212
+ fi
213
+ fi
214
+
215
+ fi
216
+
92
217
fi
93
218
94
219
date
0 commit comments