Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. 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
  2. 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
  3. 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 the ctl_nl section as well, and ne should be set to 0smooth_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 via ne = 30smooth_phis_numcycle = 16, and smooth_phis_nudt = 28e7 * (30/NE)**2. For RRM, set ne = 0smooth_phis_numcycle = 12, turn on the use of tensor HV ( hypervis_scalings=2.) and then set (for all resolutions/grids): smooth_phis_nudt = 4e-16. A simple sample namelist for an RRM grid (any resolution) is shown below:

    Code 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'
    /
     
  4. 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
  5. 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

...