[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