Skip to content

Commit 735e2ba

Browse files
Release v1.8 (#679)
Fixes #678.
1 parent a33c98a commit 735e2ba

File tree

6 files changed

+8
-382
lines changed

6 files changed

+8
-382
lines changed

VERSION

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.7.0
1+
1.8.0

docs/user_guide.md

+1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ https://github.com/ufs-community/UFS_UTILS.
1010

1111
## Documentation for Previous Versions of UFS_UTILS
1212

13+
* [UFS_UTILS Version 1.8.0](ver-1.8.0/index.html)
1314
* [UFS_UTILS Version 1.7.0](ver-1.7.0/index.html)
1415
* [UFS_UTILS Version 1.6.0](ver-1.6.0/index.html)
1516
* [UFS_UTILS Version 1.5.0](ver-1.5.0/index.html)

sorc/chgres_cube.fd/docs/user_guide.md

+2-374
Original file line numberDiff line numberDiff line change
@@ -2,383 +2,11 @@
22

33
# Introduction
44

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.
107

118
This document is part of the <a href="../index.html">UFS_UTILS
129
documentation</a>.
1310

1411
The chgres_cube program is part of the
1512
[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

Comments
 (0)