[MITgcm-devel] mnc and "global" files
Chris Hill
cnh at mit.edu
Wed Sep 7 22:13:39 EDT 2005
Hi Ed,
We have runs where there is a single "face" and a single three-d field
is greater than 2GB. Will those be able to use MNC per face files?
Chris
Ed Hill wrote:
> On Wed, 2005-09-07 at 21:35 -0400, Baylor Fox-Kemper wrote:
>
>>Hi Ed,
>> A few points:
>>
>>1) The underscore is overkill-- BASENAME.MYITER.fFACENUM.nc or
>>state.0000000000.f000001.nc suffices. I hate having to hunt and peck
>>up in the top of the keyboard...
>>
>>2) Whatever naming scheme is chosen, it should be IDENTICAL to the
>>per-processor files, except the per-processor files should have another
>>number. Thus:
>>
>>pickup.0000001440.f000001.nc
>>
>>is a global file, which could be a comprised of the processor outputs:
>>
>>pickup.0000001440.0000.f000001.nc
>>pickup.0000001440.0001.f000001.nc
>>pickup.0000001440.0002.f000001.nc
>>pickup.0000001440.0003.f000001.nc
>>
>>Or, perhaps more clearly, global files should replace the processor
>>number with a similar length symbol, e.g.,
>>
>>pickup.0000001440.all.f000001.nc
>>or
>>pickup.0000001440.glob.f000001.nc
>>
>>I personally find the latter much easier to pick out of an ls command,
>>as well as the advantage in easy globbing:
>>
>>ls pickup.*all*.nc
>>
>>or even
>>
>>ls pick*a*.nc
>
>
> Hi Baylor,
>
> I think you partially missed the point of the filename syntax. The
> underscore is meaningless (so its easily removed as you suggest) but the
> "t" and "f" characters ARE significant since they mean that the number
> following them is either a *TILE* ("t") index or a *FACE* ("f") index.
> I don't intend to have three numbers. Just two -- the first is a model
> iteration number (the current value of myIter) and the second is EITHER
> a tile or face index. In the case where we have one tile per every
> face, then the tile and face indicies should be identical--and the tile
> or face files are interchangeable. But thats the simplest case. In
> general, they won't be interchangeable.
>
>
>
>>3) The matlab script I wrote should be easily adaptable to converting
>>back and forth for such files.
>
>
> Yes!
>
>
>>4) The myiter is really an improvement.
>
>
> Cool!
>
>
>>5) Don't forget our other CRITICAL improvement (which I just spent an
>>hour figuring out on some old outputs restarted with messy pickups).
>>We need to synch the output of pickup files with the output of <2GB
>>requirement!!! As it currently exists, if one restarts from a pickup
>>file, there will be a few stragglers left behind in say, state.*.nc, so
>>that the new state.*.nc has repeated values from the old one. I thus
>>recommend either,
>
>
> I intend to completely drop the current "sequence" number and replace it
> with the myIter number. When a new file needs to be generated (either
> because of the 2GB file size limit has been hit or because the user has
> requested a new file every, say, month) then that new file will be
> generated with the *CURRENT* myIter value. So a sequence of files for
> tile #1 would look like:
>
> state.0017280000.t000001.nc [ myIter = nIter0 = 17280000 ]
> state.0019958400.t000001.nc [ 1 month = 31 days after nIter0 ]
> state.0022550400.t000001.nc [ 2 months = 61 days after nIter0 ]
> state.0025228800.t000001.nc [ 3 months = 92 days after nIter0 ]
> ...etc...
>
> So, in this scheme, it seems that theres no need for the sequence
> number.
>
> Or, is this not sufficiently general? Can you think of any cases where
> it won't work? The only case that I can think of where it fails is if
> you can't fit just *one* iteration worth of data into a single netCDF
> file. And thats a pathological example, anyway.
>
> Ed
>
More information about the MITgcm-devel
mailing list