|
2 | 2 |
|
3 | 3 | # Introduction
|
4 | 4 |
|
5 |
| -The program chgres.F90 creates initial condition files to “coldstart” |
6 |
| -the forecast model. The initial conditions are created from either |
7 |
| -Global Forecast System (GFS) gridded binary version 2 (GRIB2), NOAA |
8 |
| -Environmental Modeling System Input/Output (NEMSIO) data, or Network |
9 |
| -Common Data Form (NetCDF) data. |
| 5 | +The chgres_cube program creates initial condition files to coldstart |
| 6 | +the forecast model. |
10 | 7 |
|
11 | 8 | This document is part of the <a href="../index.html">UFS_UTILS
|
12 | 9 | documentation</a>.
|
13 | 10 |
|
14 | 11 | The chgres_cube program is part of the
|
15 | 12 | [UFS_UTILS](https://github.com/ufs-community/UFS_UTILS) project.
|
16 |
| - |
17 |
| -## Where to find GFS GRIB2, NEMSIO and NetCDF data |
18 |
| - |
19 |
| -### GRIB2 |
20 |
| - |
21 |
| -- 0.25-degree data (last 10 days only) - Use the |
22 |
| - <b>gfs.tHHz.pgrb2.0p25.f000</b> files in subdirectory |
23 |
| - <b>gfs.YYYYMMDD/HH</b> here: |
24 |
| - <https://nomads.ncep.noaa.gov/pub/data/nccf/com/gfs/prod>. |
25 |
| - |
26 |
| -- 0.5-degree data - Use the <b>gfs_4_YYYYMMDD_00HH_000.grb2</b> file, |
27 |
| - under <b>GFS Forecasts 004 (0.5-deg)</b> from the NCDC - Global |
28 |
| - Forecast System |
29 |
| - <https://www.ncdc.noaa.gov/data-access/model-data/model-datasets/global-forcast-system-gfs>. Note: |
30 |
| - Tests were not done with the AVN, MRF or analysis data. |
31 |
| - |
32 |
| -- 1.0-degree data - Use the <b>gfs_3_YYYYMMDD_00HH_000.grb2 file</b>, |
33 |
| - under <b>GFS Forecasts 003 (1-deg)</b> from NCDC - Global Forecast |
34 |
| - System |
35 |
| - <https://www.ncdc.noaa.gov/data-access/model-data/model-datasets/global-forcast-system-gfs>. Note: |
36 |
| - Tests were not done with the AVN, MRF or analysis data. |
37 |
| - |
38 |
| -### NEMSIO |
39 |
| - |
40 |
| -- T1534 gaussian (last 10 days only) - Use the |
41 |
| - <b>gfs.tHHz.atmanl.nemsio</b> (atmospheric fields) and |
42 |
| - <b>gfs.tHHz.sfcanl.nemsio</b> (surface fields) files in subdirectory |
43 |
| - gfs.YYYYMMDD/HH from |
44 |
| - <https://nomads.ncep.noaa.gov/pub/data/nccf/com/gfs/prod>. |
45 |
| - |
46 |
| -### NetCDF |
47 |
| - |
48 |
| -- T1534 gaussian (don't have any more details at this time). |
49 |
| - |
50 |
| -# Initializing with GRIB2 data - some caveats |
51 |
| - |
52 |
| -Keep this in mind when using GFS GRIB2 data for model initialization: |
53 |
| - |
54 |
| -- GRIB2 data does not contain the fields needed for the Near Sea |
55 |
| - Surface Temperature (NSST) scheme. See the next section for options |
56 |
| - on running the forecast model in this situation. |
57 |
| - |
58 |
| -- Data is coarse (in vertical and horizontal) compared to the NCEP |
59 |
| - operational GFS . May not provide a good initialization (especially |
60 |
| - for the surface). Recommendations: |
61 |
| - |
62 |
| - - C96 - use 0.25, 0.5 or 1.0-degree GRIB2 data |
63 |
| - - C192 - use 0.25 or 0.5-degree GRIB2 data |
64 |
| - - C384 - use 0.25-degree GRIB2 data |
65 |
| - - C768 - try the 0.25-degree GRIB2 data. But it may not work well. |
66 |
| - |
67 |
| -- Sea/lake ice thickness and column temperatures are not |
68 |
| - available. So, nominal values of 1.5 m and 265 K are used. |
69 |
| - |
70 |
| -- Soil moisture in the GRIB2 files is created using bilinear |
71 |
| - interpolation and, therefore, may be a mixture of values from |
72 |
| - different soil types. Could result in poor latent/sensible heat |
73 |
| - fluxes. |
74 |
| - |
75 |
| -- Ozone is not available at all isobaric levels. Missing levels are |
76 |
| - set to a nominal value defined in the variable mapping (VARMAP) file |
77 |
| - (1E-07). |
78 |
| - |
79 |
| -- Only tested with GRIB2 data from GFS v14 and v15 (from 12z July 19, |
80 |
| - 2017 to current). May not work with older GFS data. Will not work |
81 |
| - with GRIB2 data from other models. |
82 |
| - |
83 |
| -### Near Sea Surface Temperature (NSST) data and GRIB2 initialization |
84 |
| - |
85 |
| -The issue with not having NSST data is important. In GFS we use the |
86 |
| -foundation temperature (Tref) and add a diurnal warming/cooling layer |
87 |
| -using NSST. This is the surface temperature that is passed to the |
88 |
| -atmospheric boundary layer. This is a critical feature, especially |
89 |
| -when we are doing Data Assimilation. |
90 |
| - |
91 |
| -When using NEMSIO or NetCDF data to initialize the model, both the |
92 |
| -foundation and surface temperature are available and the atmospheric |
93 |
| -model should be run using the NSST option as this will properly |
94 |
| -account for in the forward run of the model. |
95 |
| - |
96 |
| -In GRIB2 files only the Tsfc is stored and that is set as foundation |
97 |
| -temperature as well. So the diurnal heating / cooling is baked into |
98 |
| -the initial condition for the extent of the run. This can be critical |
99 |
| -if the model is being initialized when the ocean is warm and |
100 |
| -initialization is occuring at the peak of the diurnal warming. That |
101 |
| -warm ocean will be baked in for the extent of the run and may spawn |
102 |
| -off a number of fake hurricanes. The user has two options -- either to |
103 |
| -use a spin up cycle to spin up NSST (set <b>nstf_name</b> = |
104 |
| -[2,1,0,0,0] in <b>input.nml</b> of the model namelist file. This will |
105 |
| -create a diurnal cycle after 24 hours of spin up), or to run the model |
106 |
| -without any NSST option ( set <b>nstf_name</b> = [0,0,0,0,0] in |
107 |
| -<b>input.nml</b> of the model namelist file. The user will also have |
108 |
| -to choose one of the no NSST physics suite options in |
109 |
| -<b>input.nml</b>). |
110 |
| - |
111 |
| -Note, that neither of these two options will get rid of the underlying |
112 |
| -baked in heating/cooling in the surface temperature fields. For most |
113 |
| -cases this may not be an issue, but where it is then the user will |
114 |
| -either have to initialize the model with NEMSIO or NetCDF data, or |
115 |
| -replace the surface temperature in the GRIB2 fields with independently |
116 |
| -obtained foundation temperature. |
117 |
| - |
118 |
| -# chgres_cube namelist options |
119 |
| - |
120 |
| -Namelist variables with “input” in their name refer to data input to |
121 |
| -chgres_cube. Namelist variables with “target” in their name refer to |
122 |
| -the FV3 horizontal and vertical grid (i.e., the target grid |
123 |
| -chgres_cube is mapping to). |
124 |
| - |
125 |
| -When using GRIB2 data as input to chgres_cube, set namelist as |
126 |
| -follows: |
127 |
| - |
128 |
| - - fix_dir_target_grid - Path to the tiled FV3 surface climatological |
129 |
| - files (such as albedo). |
130 |
| - |
131 |
| - - mosaic_file_target_grid - Path and name of the FV3 mosaic file. |
132 |
| - |
133 |
| - - orog_dir_target_grid - directory containing the tiled FV3 orography |
134 |
| - and grid files (NetCDF). |
135 |
| - |
136 |
| - - orog_files_target_grid - names of the six tiled FV3 orography |
137 |
| - files. |
138 |
| - |
139 |
| - - vcoord_file_target_grid - path and name of the model vertical |
140 |
| - coordinate definition file (“global_hyblev.l$LEVS.txt). |
141 |
| - |
142 |
| - - data_dir_input_grid - directory containing the GRIB2 initial |
143 |
| - conditions data |
144 |
| - |
145 |
| - - grib2_file_input_grid - name of the GRIB2 input data file |
146 |
| - |
147 |
| - - varmap_file - path and name of the variable mapping (VARMAP) table. |
148 |
| - See below for details on this table. |
149 |
| - |
150 |
| - - input_type - input data type. Set to ‘grib2’ |
151 |
| - |
152 |
| - - cycle_mon/day/hour - month/day/hour of your model initialization |
153 |
| - |
154 |
| - - convert_atm - set to ‘true’ to process the atmospheric fields |
155 |
| - |
156 |
| - - convert_sfc - set to ‘true’ to process the surface fields |
157 |
| - |
158 |
| -When using NEMSIO data as input to chgres_cube, set namelist as follows: |
159 |
| - |
160 |
| - - fix_dir_target_grid - Path to the tiled FV3 surface climatological |
161 |
| - files (such as albedo). |
162 |
| - |
163 |
| - - mosaic_file_target_grid - Path and name of the FV3 mosaic file. |
164 |
| - |
165 |
| - - orog_dir_target_grid - directory containing the tiled FV3 orography |
166 |
| - and grid files (NetCDF). |
167 |
| - |
168 |
| - - orog_files_target_grid - names of the six tiled FV3 orography |
169 |
| - files. |
170 |
| - |
171 |
| - - vcoord_file_target_grid - path and name of the model vertical |
172 |
| - coordinate definition file (“global_hyblev.l$LEVS.txt). |
173 |
| - |
174 |
| - - data_dir_input_grid - directory containing the NEMSIO input data |
175 |
| - |
176 |
| - - atm_files_input_grid - name of the NEMSIO input atmospheric data |
177 |
| - file |
178 |
| - |
179 |
| - - sfc_files_input_grid - name of the NEMSIO input surface/Near Sea |
180 |
| - Surface Temperature (NSST) data file |
181 |
| - |
182 |
| - - input_type - input data type. Set to ‘gaussian_nemsio’. |
183 |
| - |
184 |
| - - cycle_mon/day/hour - month/day/hour of your model run |
185 |
| - |
186 |
| - - convert_atm - set to ‘true’ to process the atmospheric fields |
187 |
| - |
188 |
| - - convert_sfc - set to ‘true’ to process the surface fields |
189 |
| - |
190 |
| - - convert_nst - set to ‘true’ to process NSST fields |
191 |
| - |
192 |
| - - tracers_input - names of tracer records in input file. For GFDL |
193 |
| - microphysics, set to |
194 |
| - “spfh”,”clwmr”,”o3mr”,”icmr”,”rwmr”,”snmr”,”grle”. |
195 |
| - |
196 |
| - - tracers - names of tracer records in output file expected by model. |
197 |
| - For GFDL microphysics, set to |
198 |
| - “sphum”,”liq_wat”,”o3mr”,”ice_wat”,”rainwat”,”snowwat”,”graupel”. |
199 |
| - |
200 |
| -When using NetCDF data as input to chgres_cube, set namelist as follows: |
201 |
| - |
202 |
| - - fix_dir_target_grid - Path to the tiled FV3 surface climatological |
203 |
| - files (such as albedo). |
204 |
| - |
205 |
| - - mosaic_file_target_grid - Path and name of the FV3 mosaic file. |
206 |
| - |
207 |
| - - orog_dir_target_grid - directory containing the tiled FV3 orography |
208 |
| - and grid files (NetCDF). |
209 |
| - |
210 |
| - - orog_files_target_grid - names of the six tiled FV3 orography |
211 |
| - files. |
212 |
| - |
213 |
| - - vcoord_file_target_grid - path and name of the model vertical |
214 |
| - coordinate definition file (“global_hyblev.l$LEVS.txt). |
215 |
| - |
216 |
| - - data_dir_input_grid - directory containing the NetCDF input data |
217 |
| - |
218 |
| - - atm_files_input_grid - name of the NetCDF input atmospheric data |
219 |
| - file |
220 |
| - |
221 |
| - - sfc_files_input_grid - name of the NetCDF input surface/Near Sea |
222 |
| - Surface Temperature (NSST) data file |
223 |
| - |
224 |
| - - input_type - input data type. Set to ‘gaussian_netcdf’. |
225 |
| - |
226 |
| - - cycle_mon/day/hour - month/day/hour of your model run |
227 |
| - |
228 |
| - - convert_atm - set to ‘true’ to process the atmospheric fields |
229 |
| - |
230 |
| - - convert_sfc - set to ‘true’ to process the surface fields |
231 |
| - |
232 |
| - - convert_nst - set to ‘true’ to process NSST fields |
233 |
| - |
234 |
| - - tracers_input - names of tracer records in input file. For GFDL |
235 |
| - microphysics, set to |
236 |
| - “spfh”,”clwmr”,”o3mr”,”icmr”,”rwmr”,”snmr”,”grle”. |
237 |
| - |
238 |
| - - tracers - names of tracer records in output file expected by model. |
239 |
| - For GFDL microphysics, set to |
240 |
| - “sphum”,”liq_wat”,”o3mr”,”ice_wat”,”rainwat”,”snowwat”,”graupel”. |
241 |
| - |
242 |
| -# Program inputs and outputs |
243 |
| - |
244 |
| -## Inputs |
245 |
| - |
246 |
| -The following four sets of files are located here: |
247 |
| -https://ftp.emc.ncep.noaa.gov/EIB/UFS/global/fix/fix_fv3_gmted2010.v20191213/ |
248 |
| - |
249 |
| - - FV3 mosaic file - (NetCDF format) |
250 |
| - - CRES_mosaic.nc |
251 |
| - |
252 |
| - - FV3 grid files - (NetCDF format) |
253 |
| - - CRES_grid.tile1.nc |
254 |
| - - CRES_grid.tile2.nc |
255 |
| - - CRES_grid.tile3.nc |
256 |
| - - CRES_grid.tile4.nc |
257 |
| - - CRES_grid.tile5.nc |
258 |
| - - CRES_grid.tile6.nc |
259 |
| - |
260 |
| - - FV3 orography files - (NetCDF format) |
261 |
| - - CRES_oro_data.tile1.nc |
262 |
| - - CRES_oro_data.tile2.nc |
263 |
| - - CRES_oro_data.tile3.nc |
264 |
| - - CRES_oro_data.tile4.nc |
265 |
| - - CRES_oro_data.tile5.nc |
266 |
| - - CRES_oro_data.tile6.nc |
267 |
| - |
268 |
| - - FV3 surface climatological files - Located under the ./fix_sfc sub-directory. One file for each tile. NetCDF format. |
269 |
| - - CRES.facsf.tileX.nc (fractional coverage for strong/weak zenith angle dependent albedo) |
270 |
| - - CRES.maximum_snow_albedo.tileX.nc (maximum snow albedo) |
271 |
| - - CRES.slope_type.tileX.nc (slope type) |
272 |
| - - CRES.snowfree_albedo.tileX.nc (snow-free albedo) |
273 |
| - - CRES.soil_type.tileX.nc (soil type) |
274 |
| - - CRES.subtrate_temperature.tileX.nc (soil substrate temperature) |
275 |
| - - CRES.vegetation_greenness.tileX.nc (vegetation greenness) |
276 |
| - - CRES.vegetation_type.tileX.nc (vegetation type) |
277 |
| - |
278 |
| - - FV3 vertical coordinate file. Text file. Located here: https://ftp.emc.ncep.noaa.gov/EIB/UFS/global/fix/fix_am.v20191213/ |
279 |
| - - global_hyblev.l$LEVS.txt |
280 |
| - |
281 |
| - - Input data files. GRIB2, NEMSIO or NetCDF. See above section for how to find this data. |
282 |
| - |
283 |
| -## Outputs |
284 |
| - |
285 |
| - - Atmospheric “coldstart” files. NetCDF. |
286 |
| - - out.atm.tile1.nc |
287 |
| - - out.atm.tile2.nc |
288 |
| - - out.atm.tile3.nc |
289 |
| - - out.atm.tile4.nc |
290 |
| - - out.atm.tile5.nc |
291 |
| - - out.atm.tile6.nc |
292 |
| - |
293 |
| - - Surface/Near Sea Surface Temperature (NSST) “coldstart” files. NetCDF |
294 |
| - - out.sfc.tile1.nc |
295 |
| - - out.sfc.tile1.nc |
296 |
| - - out.sfc.tile1.nc |
297 |
| - - out.sfc.tile1.nc |
298 |
| - - out.sfc.tile1.nc |
299 |
| - - out.sfc.tile1.nc |
300 |
| - |
301 |
| -# Running the program stand alone |
302 |
| - |
303 |
| - - Locate your input files. See above for a list. |
304 |
| - |
305 |
| - - Set the namelist for your experiment. See above for an explanation |
306 |
| - of the namelist entries. |
307 |
| - |
308 |
| - - Link the namelist to Fortran unit number 41: |
309 |
| - <pre> ln -fs your-namelist-file ./fort.41</pre> |
310 |
| - |
311 |
| - - Load any required runtime libraries. For example, you may need to |
312 |
| - load libraries for NetCDF and/or your Fortran compiler. |
313 |
| - |
314 |
| - - Run the program with an MPI task count that is a multiple of six. |
315 |
| - This is an ESMF library requirement when processing a six-tiled |
316 |
| - global grid. |
317 |
| - |
318 |
| -# Variable Mapping (VARMAP) table |
319 |
| - |
320 |
| -The VARMAP table, set in the chgres_cube namelist (variable |
321 |
| -varmap_file), controls how chgres_cube handles variables that might be |
322 |
| -missing from the GRIB2 files. Since there are so many different |
323 |
| -versions of GRIB2 files, it's often uncertain what fields are |
324 |
| -available even if you know what source model the data is coming from. |
325 |
| -Each file contains the following: (Note, only the GFS physics suite is |
326 |
| -currently supported.) |
327 |
| - |
328 |
| -Column 1: Name the code searches for in the table. Do not change. |
329 |
| -Some definitions: |
330 |
| - |
331 |
| - - dzdt - vertical velocity |
332 |
| - - sphum - specific humidity |
333 |
| - - liq_wat - liquid water mixing ratio |
334 |
| - - o3mr - ozone mixing ratio |
335 |
| - - ice_wat - ice water mixing ratio |
336 |
| - - rainwat - rain water mixing ratio |
337 |
| - - snowwat - snow water mixing ratio |
338 |
| - - graupel - graupel mixing ratio |
339 |
| - - vtype - vegetation type |
340 |
| - - sotype - soil type |
341 |
| - - vfrac - plant greenness fraction |
342 |
| - - fricv - friction velocity |
343 |
| - - sfcr - roughness length |
344 |
| - - tprcp - precipitation rate |
345 |
| - - ffmm - surface exchange coefficient for momentum |
346 |
| - - ffhh - surface exchange coefficient for heat |
347 |
| - - f10m - log((sfcr+10)/sfcr) |
348 |
| - - soilw - total volumetric soil moisture |
349 |
| - - soill - liquid volumetric soil moisture |
350 |
| - - soilt - soil column temperature |
351 |
| - - cnwat - plant canopy water content |
352 |
| - - hice - sea/lake ice thickness |
353 |
| - - weasd - snow liquid equivalent |
354 |
| - - snod - physical snow depth |
355 |
| - |
356 |
| -Column 2: Name of the variable in the output “coldstart” |
357 |
| -files. Unimplemented. |
358 |
| - |
359 |
| -Column 3: Behavior when the code can't find the variable in the input |
360 |
| -file. Options are: |
361 |
| - |
362 |
| - - "skip": Don't write to the output file. |
363 |
| - - "set_to_fill": Set to user-specified field value (see column 4). |
364 |
| - - "intrp": LnP interpolation to missing levels. No extrapolation allowd. |
365 |
| - - "stop": Force an exception and stop code execution. Use this if you |
366 |
| - absolutely require a field to be present. |
367 |
| - |
368 |
| -Column 4: If column 3 = "set_to_fill", then this value is used to fill |
369 |
| -in all points in the input field. These values may be overwritten by |
370 |
| -the code before output depending on the variable (especially for |
371 |
| -surface variables). |
372 |
| - |
373 |
| -Column 5: Variable type descriptor. Variable names designated as |
374 |
| -tracers are used to populate the list of tracers to read from the |
375 |
| -GRIB2 file and write to output, so make sure all tracers you wish to |
376 |
| -read have an entry. Note that if you wish to add a tracer name that is |
377 |
| -not already included in the appropriate VARMAP file, this will require |
378 |
| -modification of the chgres_cube code. Valid choices are: |
379 |
| - |
380 |
| - - “T”: 3-dimensional tracer array |
381 |
| - - “D”: 3-dimensional non-tracer array |
382 |
| - - “S”: 2-dimensional surface array |
383 |
| - |
384 |
| - |
0 commit comments