PRINTSCRIPT; print $script_style; include "/var/www/html/core/partc"; $linkpage = <<< PRINTLINK gfdl homepage > people > cobweb homepage > people > v. balaji homepage > this page PRINTLINK; print $linkpage; // GFDL header include "/var/www/html/core/partd"; $titlepage = <<< TITLEPAGE Creating grids for a complete Earth System model TITLEPAGE; print $titlepage; // GFDL header include_once( '/var/lib/php/counter.inc' ); error_reporting(E_ERROR); require_once('../magpierss/rss_fetch.inc'); require_once('../magpierss/rss_utils.inc'); include "/var/www/html/core/parte"; $pagecontent = <<< ENDCONTENT

Here is a simple user guide to setting up a coupled model using the current tool set. The current example sets up a cube-sphere atmosphere, a lat-lon land, a tripolar ocean, and creates all the exchange grids necessary between these.

  • Unpack the tarball. You should get input, output, src and scripts directories. In future, this will be distributed under CVS on our GForge site.
  • The script compile.csh compiles all the tools and saves them in \$rootdir/bin. It attempts to build both serial and MPI versions. You may need to modify it slightly to get correct library and file locations.
  • The scripts test.csh and test_all.csh runs several tests, ranging from simple torus (cartesian doubly periodic grid) to a full-scale Earth system model coupling a cubed-sphere atmosphere, tripolar ocean and lat-lon land model grids. Regridding is also demonstrated.
  • Output will be written to \$outdir set in the script, normally \$rootdir/data/output. It is recommended that the supplied output directory be renamed output-ref. The output can be checked against the reference results in \$rootdir/data/output-ref. (For an intelligent comparison of netCDF files, use the tool nccmp).

test_all.csh runs the following grid creation sequence, currently in use at GFDL.

  • make a vertical grid. (The make_vgrid isn't really used below, is it?)
make_vgrid --nbnds 3 --bnds 10,200,1000 --nz 10,20
  • make the atmosphere grid: this is a 48x48x6 cube-sphere grid. The first step, make_hgrid makes 6 individual grid tiles horizontal_grid.tile[1-6].nc using the gnomonic projection, then make_solo_mosaic writes the mosaic linkages in C48_mosaic.nc.
make_hgrid --grid_type gnomonic_ed --nlon 96
make_solo_mosaic --num_tiles 6 --dir \$PWD --mosaic C48_mosaic
  • make the land grid: this is a regular lat-lon grid, 144x90 (288x180 supergrid), known as N45. Even though this is a single tile, we still make a mosaic file N45_mosaic.nc: the mosaic is where the periodicity in X (i.e a boundary of the tile with itself) is recorded.
make_hgrid --grid_type regular_lonlat_grid --nxbnd 2 --nybnd 2 \
  --xbnd 0,360 --ybnd -90,90 --nlon 288 --nlat 180 --output N45_grid

make_solo_mosaic --num_tiles 1 --dir \$PWD --mosaic N45_mosaic \
  --tile_file N45_grid.nc --periodx 360
  • make the ocean grid: this is a tripolar grid, 360x180. Even though this is a single tile, we still make a mosaic file tripolar_mosaic.nc. (Balaji: where is the join_lat? where is the periodicity and fold information in the make_solo_mosaic call?)
make_hgrid --grid_type tripolar_grid --nxbnd 2 --nybnd 2 --xbnd -280,80 \
  --ybnd -90,90 --nlon 360 --nlat 180 --output tripolar_grid

make_solo_mosaic --num_tiles 1 --dir \$PWD \
  --mosaic tripolar_mosaic--tile_file tripolar_grid
  • Interpolate the topography file \$rootdir/data/input/OCCAM_p5degree.nc onto the ocean grid tripolar_mosaic.nc. The resulting topography file tripolar_topog.nc will be used to generate a consistent land-sea mask across all model grids. (Note that the atmosphere interpolates its topography by independent means, not shown here).
make_topog --mosaic \$outdir/tripolar_mosaic.nc \
  --topog_file \$indir/OCCAM_p5degree.nc --topog_field TOPO \
  --scale_factor -1 --output tripolar_topog.nc
  • Make the top-level mosaic that links all the model grid mosaics by generating exchange grids between pairs of grid tiles, including area fractions where the land-sea mask intersects model grid cells. The output includes a top-level mosaic file mosaic.nc and a number of exchange grid files, such as C48_mosaic_tile2Xtripolar_mosaic_tile1.nc.
make_coupler_mosaic --atmos_mosaic \$outdir/C48_mosaic.nc \
 --land_mosaic  \$outdir/N45_mosaic.nc \
 --ocean_mosaic \$outdir/tripolar_mosaic.nc \
 --ocean_topog  \$outdir/tripolar_topog.nc
<div class="www"> Users with access to cobweb may find additional information on the GFDL-internal version of this page. </div> <div class="cobweb"> Also consult the Mosaic Tool Guide wiki. </div>
ENDCONTENT; print $pagecontent; $subj = 'grids'; $url = 'http://www.gfdl.noaa.gov/~vb/weblogs/journal2009.rdf'; $rss = fetch_rss($url); if( $rss ) { echo "\n"; foreach ($rss->items as $item) { $href = $item['link']; $title = $item['title']; if ( preg_match( "/\b$subj\b/i", $title ) ) { echo "\n"; } } } $url = 'http://www.gfdl.noaa.gov/~vb/weblogs/journal2008.rdf'; $rss = fetch_rss($url); if( $rss ) { echo "\n"; foreach ($rss->items as $item) { $href = $item['link']; $title = $item['title']; if ( preg_match( "/\b$subj\b/i", $title ) ) { echo "\n"; } } } $url = 'http://www.gfdl.noaa.gov/~vb/weblogs/journal2007.rdf'; $rss = fetch_rss($url); if( $rss ) { echo "\n"; foreach ($rss->items as $item) { $href = $item['link']; $title = $item['title']; if ( preg_match( "/\b$subj\b/i", $title ) ) { echo "\n"; } } } $pagecontent = <<< ENDCONTENT

emacs-muse-mode created by v. balaji (balaji@princeton.edu) in emacs using the emacs-muse mode.
ENDCONTENT; print $pagecontent; print "last modified: ". date( "d F Y", getlastmod() ); print "
this page visited: ".getCount(). " times "; include "/var/www/html/core/partf"; include "/var/www/html/core/partg";