...
TempestRemap: Create GLL, pg2, and pg4 grids. pg2 is our target. pg4 is a high-resolution intermediate grid.
Code Block # Generate the element mesh. ${tempest_root}/bin/GenerateCSMesh --alt --res 30 --file topo2/ne30.g # Generate the target physgrid mesh. ${tempest_root}/bin/GenerateVolumetricMesh --in topo2/ne30.g --out topo2/ne30pg2.g --np 2 --uniform # Generate a high-res target physgrid mesh for cube_to_target. ${tempest_root}/bin/GenerateVolumetricMesh --in topo2/ne30.g --out topo2/ne30pg4.g --np 4 --uniform # Generate SCRIP files for cube_to_target. ${tempest_root}/bin/ConvertExodusToSCRIP --in topo2/ne30pg4.g --out topo2/ne30pg4_scrip.nc ${tempest_root}/bin/ConvertExodusToSCRIP --in topo2/ne30pg2.g --out topo2/ne30pg2_scrip.nc
cube_to_target, run 1: Compute phi_s on the pg4 grid.
Code Block ${e3sm_root}/components/cam/tools/topo_tool/cube_to_target \ --target-grid topo2/ne30pg4_scrip.nc \ --input-topography topo2/USGS-topo-cube3000.nc \ --output-topography topo2/ne30pg4_c2t_topo.nc
These warnings appear to be innocuous:
Code Block sum of weights is negative - negative area? -1.8651290104823655E-009 675 3000
homme_tool: Map phi_s on the pg4 grid to phi_s on the GLL grid. Smooth these GLL phi_s data. Finally, map these GLL phi_s data to pg2. An example namelist for an ne30 case is shown below:
Code Block $ cat input.nl &ctl_nl ne = 30 smooth_phis_numcycle = 16 smooth_phis_nudt = 28e7 hypervis_scaling = 0 hypervis_order = 2 se_ftype = 2 ! actually output NPHYS; overloaded use of ftype / &vert_nl / &analysis_nl tool = 'topo_pgn_to_smoothed' infilenames = 'ne30pg4_c2t_topo.nc', 'ne30np4pg2_smoothed_phis' / mpirun -np 8 ./homme_tool < input.nl
Note that for RRM grids,
mesh_file
will need to be specified in thectl_nl
section as well, andne
should be set to0
.smooth_phis_numcycle
is an adjustable parameter, and can be lowered for less smoothing.smooth_phis_nudt
is resolution dependent. Generally, for uniform cubed-sphere grids, set resolution viane = 30
,smooth_phis_numcycle = 16
, andsmooth_phis_nudt = 28e7 * (30/NE)**2
.
For RRM , setne = 0
, grids, we need to turn on tensor HV (hypervis_scalings=2
.) TensorHV has the advantage of being resolution-aware, so a single coefficientsmooth_phis_nudt = 4e-16
works for all grids. In V3, we hope to transition to using use tensor HV for both RRM and cubed-sphere grids. A sample namelist for an RRM grid is shown below:
, andCode Block $ cat input.nl &ctl_nl ne = 0 mesh_file = "/path/to/exodus/file.g" smooth_phis_numcycle = 12
smooth_phis_nudt = 4e-16 hypervis_scaling = 2 hypervis_order = 2 se_ftype = 2 ! actually output NPHYS; overloaded use of ftype / &vert_nl / &analysis_nl tool = 'topo_pgn_to_smoothed' infilenames = 'ne30pg4_c2t_topo.nc', 'ne30np4pg2_smoothed_phis' /
cube_to_target, run 2: Compute SGH, SGH30, LANDFRAC, and LANDM_COSLAT on the pg2 grid, using the pg2 phi_s data.
Code Block ${e3sm_root}/components/cam/tools/topo_tool/cube_to_target \ --target-grid ne30pg2_scrip.nc \ --input-topography USGS-topo-cube3000.nc \ --smoothed-topography ne30np4pg2_smoothed_phis1.nc \ --output-topography USGS-gtopo30_ne30np4pg2_16xdel2.nc
ncks: Append the GLL phi_s data to the output of step 4.
Code Block ncks -A ne30np4pg2_smoothed_phis1.nc USGS-gtopo30_ne30np4pg2_16xdel2.nc
...