|
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 "" . $rss->channel['title'] .
" entries on $subj | \n";
foreach ($rss->items as $item) {
$href = $item['link'];
$title = $item['title'];
if ( preg_match( "/\b$subj\b/i", $title ) ) {
echo "$title | \n";
}
}
}
$url = 'http://www.gfdl.noaa.gov/~vb/weblogs/journal2008.rdf';
$rss = fetch_rss($url);
if( $rss ) {
echo "" . $rss->channel['title'] .
" entries on $subj (<2009) | \n";
foreach ($rss->items as $item) {
$href = $item['link'];
$title = $item['title'];
if ( preg_match( "/\b$subj\b/i", $title ) ) {
echo "$title | \n";
}
}
}
$url = 'http://www.gfdl.noaa.gov/~vb/weblogs/journal2007.rdf';
$rss = fetch_rss($url);
if( $rss ) {
echo "" . $rss->channel['title'] .
" entries on $subj (<2008) | \n";
foreach ($rss->items as $item) {
$href = $item['link'];
$title = $item['title'];
if ( preg_match( "/\b$subj\b/i", $title ) ) {
echo "$title | \n";
}
}
}
$pagecontent = <<< ENDCONTENT
|