[MITgcm-devel] topology-generator
Jean-Michel Campin
jmc at ocean.mit.edu
Mon May 4 22:58:41 EDT 2009
Hi,
I have a fortran preliminary version of exch2/matlab-topology-generator
with the intention to add this code to pkg/exch2.
The advantages I see of being part of the compiled src are:
1) convenient: don't need to go through a matlab step;
and without "blank tiles", nothing to modify (apart from SIZE.h)
when changing the number of tiles. In particular, for regular
(6 equal size faces) cube, nothing more than the usual "SIZE.h"
will be necessary.
In the other cases (non regular cube or with blanklist), few (in fact
less than what needs to be change in the matlab driver.m) parameters
in "data.exch2" should be enough, except for unusual set-up (e.g.,
plenty of blank-tiles) where changing a small (4 parameter instructions)
header file "W2_EXCH2_SIZE.h" will be necessary.
2) add new possibility: e.g., can drop the 6th face of the Lat-Lon Cap
set-up, using 5 faces only (This is slightly different, for instance
regarding global-map IO, from having only blank-tiles on 6th face).
This was tricky to do with the matlab-topology-generator.
3) more flexible (easier to update), since all CS-grid users
will not have to regenerate the 2 magic files W2_EXCH2_TOPOLOGY.h
& w2_e2setup.F when a new topology parameter is added.
Problems:
a) not truly backward-compatible transition; Thinking of making
the switch in 1 shot, to avoid the pain for CS users to generate
again, with an updated matlab-topology-generator, new 2 fortran
source files which then would be compatible with the new
fortran-topology-generator. In case of a problem with the new
code, I will update the matlab script "exch2_setup_cs6_print.m"
to produce, in the old way (backup solution) fortran source files
to replace the new code.
b) need to change some IO buffer declaration in the code; going
to change this first (since it should work with both old
and new code), and when I am done with new code test,
will make a checkpoint before checking in the new code.
Naming issue: "W2_mpi_myTileList" (in W2_EXCH2_PARAMS.h)
I don't get the "my" part, since it cover all tiles from all threads
and all processes.
What about changing it to "W2_procTileList" (all tiles, sorted by
process) as opposed to "W2_myTileList" (= from myProc only) ?
Suggestions ? Comments ?
Cheers,
Jean-Michel
More information about the MITgcm-devel
mailing list