[MITgcm-support] ctrl_set_globfld_xz/yz
Matthew Mazloff
mmazloff at MIT.EDU
Thu Sep 3 11:59:50 EDT 2009
Hi Jean-Michel,
No need to add a CPP FLAG on my behalf -- I dont use singlecpuio
anymore -- I don't mind if you switch it to Martin's suggestion -- if
it is much slower I will let you know
The meta write to go in MDSWRITEFIELDXZ in mdsio_slice.F like routines
just looks like:
CMM(
character*(MAX_LEN_FNAM) metaFName
integer dimList(3,3),ndims
CMM)
CMM(
C Create meta-file for each tile if we are tiling
iG=bi+(myXGlobalLo-1)/sNx ! Kludge until unstructered tiles
jG=bj+(myYGlobalLo-1)/sNy ! Kludge until unstructered tiles
write(metaFname,'(2a,i3.3,a,i3.3,a)')
& fName(1:IL),'.',iG,'.',jG,'.meta'
dimList(1,1)=Nx
dimList(2,1)=((iG-1)*nSx+(bi-1))*sNx+1
dimList(3,1)=((iG-1)*nSx+bi)*sNx
dimList(1,2)=nSy*nPy
dimList(2,2)=(jG-1)*nSy+bj
dimList(3,2)= jG*nSy+bj
dimList(1,3)=Nr
dimList(2,3)=1
dimList(3,3)=Nr
ndims=3
if (Nr .EQ. 1) ndims=2
call MDSWRITEMETA( metaFName, dataFName,
& filePrec, ndims, dimList, irecord, myIter, mythid )
CMM)
and works fine for me -- I'm not sure its works for rdmds or anything,
but it does let me know how many records are written.
What about the idea of not writing when a tile has no open boundary --
is this feasible?
-Matt
On Sep 3, 2009, at 8:19 AM, Martin Losch wrote:
> Hi Jean-Michel,
>
> thanks,
> I am so behind the recent code (maybe 5days, mea culpa (o:)
>
> @Matt: we could keep the old code and add an appropriate CPP_FLAG
> around it, e.g. CTRL_INITOBCS_QUICK_AND_DIRTY, and then introduce
> new code that uses write_rec_xz/yz_rl to make Jean-Michel happy.
> That way you could keep that faster initialization. We can also put
> an IF (.not.useSingleCPUio) THEN/ENDIF around it. What do you think?
> None of this is shown to TAF, isn't it? (according to
> ctrl_ad_diff.list; I haven't used TAF on this, yet).
>
> There is no way to increment nRecords in a meta file, yet, (at least
> I don't know of any), so writing a meta file for the adxx/xx_obcs-
> files is non-trivial (and I don't think I want to embark on this).
>
> M.
>
> On Sep 3, 2009, at 5:02 PM, Jean-Michel Campin wrote:
>
>> Hi Martin,
>>
>> It was just a comment (and will not fix the issue you have with
>> singleCpuIO/globalFile). But since I recently tried to clean-up
>> those section/slice IO, I thought it would be usefull to mention it.
>> It's in pkg/rw/write_rec.F (cvs version 1.4, from Sept 01, 2009).
>> Cheers,
>> Jean-Michel
>>
>> On Thu, Sep 03, 2009 at 04:46:56PM +0200, Martin Losch wrote:
>>> Hi Jean-Michel,
>>>
>>> I cannot find WRITE_REC_XZ_RL anywhere (write_rec.F contains only
>>> the xy
>>> combination). Where is it?
>>>
>>> Martin
>>>
>>> On Sep 3, 2009, at 4:08 PM, Jean-Michel Campin wrote:
>>>
>>>> Hi Martin,
>>>> Just a comment:
>>>> We should try not to use MDSWRITEFIELDXZ( ... ,'RL', ...)
>>>> anymore, but instead WRITE_REC_XZ_RL
>>>> Jean-Michel
>>>>
>>>> On Thu, Sep 03, 2009 at 03:26:10PM +0200, Martin Losch wrote:
>>>>> Hi all (probably mostly Patrick and Matt)
>>>>>
>>>>> why do we need this complicated arrangement in
>>>>> ctrl_set_globfld_xz/
>>>>> yz of
>>>>> first writing a 3d field into, say, adxx_obcsn.*.data, and then
>>>>> adding
>>>>> the remaining number of vertical slabs? Wouldn't it be easier to
>>>>> replace
>>>>> the two loops by just one like this:
>>>>>
>>>>>> do irec = 1, ncvarrecs(ivartype) +1
>>>>>> call MDSWRITEFIELDXZ( fname, ctrlprec,.FALSE., 'RL',
>>>>>> & Nr, globfldxz,
>>>>>> & irec, optimcycle, mythid)
>>>>>> enddo
>>>>>
>>>>> Is it just because the mdsiowritefieldxz/yz do not write meta-
>>>>> files?
>>>>> But
>>>>> what is the use of a meta file for a 3D field that is clearly
>>>>> wrong
>>>>> (dimensions and nRecords will only be accidentally correct)?
>>>>>
>>>>> We are having an interesting problem with this: we have
>>>>> useSingleCPUio=.true. and globalFiles=.false. so that
>>>>> mdswritefld writes a file adxx_obcsn.0000000000.data (because of
>>>>> useSingleCPUio=.true.). Then for irec > nrec_nl mdswritefieldxz
>>>>> tries to
>>>>> append a file adxx_obcsn.0000000000.001.001.data (because
>>>>> globalFiles=.false.), which does not exist and the model stops
>>>>> with
>>>>> "File does not exist". It took me a while to figure that out,
>>>>> because
>>>>> for short integration times ncvarsrecs<Ny so that nrec_nl = 0 and
>>>>> the 3d
>>>>> field is never written. The problem appeared only for longer
>>>>> integrations (so that ncvarsrecs>=Ny and nrec_nl>0). Bug or
>>>>> feature?
>>>>> Is
>>>>> there a problem with the above fix?
>>>>>
>>>>> Martin and Olaf
>>>>> _______________________________________________
>>>>> MITgcm-support mailing list
>>>>> MITgcm-support at mitgcm.org
>>>>> http://mitgcm.org/mailman/listinfo/mitgcm-support
>>>> _______________________________________________
>>>> MITgcm-support mailing list
>>>> MITgcm-support at mitgcm.org
>>>> http://mitgcm.org/mailman/listinfo/mitgcm-support
>>>
>>> _______________________________________________
>>> MITgcm-support mailing list
>>> MITgcm-support at mitgcm.org
>>> http://mitgcm.org/mailman/listinfo/mitgcm-support
>> _______________________________________________
>> MITgcm-support mailing list
>> MITgcm-support at mitgcm.org
>> http://mitgcm.org/mailman/listinfo/mitgcm-support
>
> _______________________________________________
> MITgcm-support mailing list
> MITgcm-support at mitgcm.org
> http://mitgcm.org/mailman/listinfo/mitgcm-support
More information about the MITgcm-support
mailing list