[MITgcm-support] MDSIO

Patrick Heimbach heimbach at MIT.EDU
Thu Oct 8 14:36:29 EDT 2009


Hi,

I can't really deal with this right now, but be careful:
You are NOT talking about *packing/unpacking* within execution of  
mitgcmuv_ad,
but instead about *opening/reading* control-/gradient-vector within  
optim.x
These are very different things.

optim.x shouldn't know anything about non-global I/O or  
mdsioLocalDir, it doesn't use mdsio
(it doesn't read any tiled or non-tilde masks, weights, etc.)
all it reads are the two global wetpoint-only vectors ecco_cost...,  
ecco_ctrl...

My hunch is that your SIZE.h are different for compiling mitgcmuv_ad  
and optim.x
Or something similar.

-p.

On Oct 8, 2009, at 2:24 PM, Matthew Mazloff wrote:

> Ganesh,
>
> So you are saying to make it run you had to comment out
>
>> CGG(
>> C         else
>> C          fileIsOpen=.FALSE.
>> C          write(msgbuf,'(a,a)')
>> C     &      ' MDSREADFIELD_GL: filename: ',dataFName(1:pIL+13)
>> C          call print_message( msgbuf, standardmessageunit,
>> C     &                        SQUEEZE_RIGHT , mythid)
>> C          call print_error( msgbuf, mythid )
>> C          write(msgbuf,'(a)')
>> C     &      ' MDSREADFIELD_GL: File does not exist'
>> C          call print_message( msgbuf, standardmessageunit,
>> C     &                        SQUEEZE_RIGHT , mythid)
>> C          call print_error( msgbuf, mythid )
>> C          stop 'ABNORMAL END: S/R MDSREADFIELD_GL'
>> CGG)
>
> This means the file was never opened (fileIsOpen=.FALSE.).  Is the  
> file it was trying to open (you say it is maskCtrlC) in the  
> mdsioLocalDir?  Perhaps the masks are not initialized in that  
> directory?
>
> -Matt
>
>
>
> On Oct 8, 2009, at 10:53 AM, Ganesh Gopalakrishnan wrote:
>
>> Hi Matt,
>> The fname looks fine, like it starts with 'maskCtrlC'
>>
>> I made the following changes in mdsio_gl.F and mdsio_gl_slice.F (for
>> both  3D,2D MDS read fields)
>>
>> -----------------------------------------(same as old code)
>> C Assume nothing
>>      globalFile = .FALSE.
>>      fileIsOpen = .FALSE.
>>      IL=ILNBLNK( fName )
>> CMM(
>>      pIL = ILNBLNK( mdsioLocalDir )
>> CMM)
>>
>>
>> ------------------------------------
>> C Assign special directory
>>      if ( pIL.EQ.0 ) then
>>       pfName= fName
>>      else
>>       write(pfName,'(2a)') mdsioLocalDir(1:pIL), fName(1:IL)
>>      endif
>>      pIL=ILNBLNK( pfName )
>> --------------------------------------
>> C If we are reading from a tiled MDS file then we open each one here
>>        if (.NOT. globalFile) then
>>         iG=bi+(ip-1)*nsx ! Kludge until unstructered tiles
>>         jG=bj+(jp-1)*nsy ! Kludge until unstructered tiles
>>         write(dataFname,'(2a,i3.3,a,i3.3,a)')
>>     &              pfName(1:pIL),'.',iG,'.',jG,'.data'
>>         inquire( file=dataFname, exist=exst )
>> C Of course, we only open the file if the tile is "active"
>> C (This is a place-holder for the active/passive mechanism
>>         if (exst) then
>>          if ( debugLevel .GE. debLevA ) then
>>           write(msgbuf,'(a,a)')
>>     &      ' MDSREADFIELD_GL: opening file: ',dataFName(1:pIL+13)
>>           call print_message( msgbuf, standardmessageunit,
>>     &                        SQUEEZE_RIGHT , mythid)
>>          endif
>>          length_of_rec=MDS_RECLEN( filePrec, sNx, mythid )
>>          open( dUnit, file=dataFName, status='old',
>>     &        access='direct', recl=length_of_rec )
>>          fileIsOpen=.TRUE.
>> CGG(
>> C         else
>> C          fileIsOpen=.FALSE.
>> C          write(msgbuf,'(a,a)')
>> C     &      ' MDSREADFIELD_GL: filename: ',dataFName(1:pIL+13)
>> C          call print_message( msgbuf, standardmessageunit,
>> C     &                        SQUEEZE_RIGHT , mythid)
>> C          call print_error( msgbuf, mythid )
>> C          write(msgbuf,'(a)')
>> C     &      ' MDSREADFIELD_GL: File does not exist'
>> C          call print_message( msgbuf, standardmessageunit,
>> C     &                        SQUEEZE_RIGHT , mythid)
>> C          call print_error( msgbuf, mythid )
>> C          stop 'ABNORMAL END: S/R MDSREADFIELD_GL'
>> CGG)
>>         endif
>>        endif
>>
>> --------------------------------------
>>
>> with these changes I was able to pack.
>> But when reading using optim_readdata.f for linesearch, it fails  
>> at the
>> header check
>> --------------------------------
>> ce    Add some more checks. ...
>>
>>      if (.NOT. lheaderonly) then
>> c--   Read the data.
>> -------------------------------
>>
>> Thanks
>> Ganesh
>>
>>
>> On Thu, 2009-10-08 at 07:00 -0700, Matthew Mazloff wrote:
>>> Hi Ganesh,
>>>
>>> Did you print what fname looks like.  Is this still the problem  
>>> where
>>> it has garbage at the end so it looks like, e.g.
>>>
>>> fname =
>>> 'xx_theta
>>>                                                                      
>>>                                       iuhdfsd98908
>>> '
>>>
>>> and is not properly opened.
>>>
>>> Check to see if the file is properly opened...i.e. fileisopen  
>>> = .TRUE.
>>>
>>> -Matt
>>>
>>>
>>>
>>> On Oct 7, 2009, at 10:30 PM, ggopalakrishnan at ucsd.edu wrote:
>>>
>>>> Hi Patrick,
>>>>
>>>> The run.out error message is given below.
>>>>
>>>> PGFIO-F-219/formatted write/internal file/attempt to read/write  
>>>> past
>>>> end
>>>> of record.
>>>> In source file mdsio_gl.f, at line number 2400
>>>>
>>>> I am using ECCO_CPP options
>>>> #undef  EXCLUDE_CTRL_PACK
>>>>
>>>> It fails when it calls MDSREADFIELD_3D_GL,
>>>> with the ivartype=1 ( ALLOW_THETA0_CONTROL), and mask maskCtrlC.
>>>>
>>>> Thank you
>>>> Ganesh
>>>>
>>>>
>>>>
>>>>>
>>>>> Hi there,
>>>>>
>>>>> could you be a bit more specific how it fails
>>>>> (error msg, in case there is one).
>>>>> Is it during read (I guess it is), and if so, which field?
>>>>>
>>>>> There's a possibility that your specific combination of options
>>>>> has never been used/tested (although I thought it has...).
>>>>>
>>>>> Cheers
>>>>> -p.
>>>>>
>>>>> On Oct 7, 2009, at 11:03 PM, Ganesh Gopalakrishnan wrote:
>>>>>
>>>>>> Hi all,
>>>>>> I am running state estimation, where I am trying to write the  
>>>>>> files
>>>>>> into
>>>>>> local directory by specifying "mdsioLocalDir" in the data file.
>>>>>>
>>>>>> I use
>>>>>> globalFiles=.false.,
>>>>>> useSingleCpuIO=.false.,
>>>>>>
>>>>>> The model fails to pack ecco cost/ctrl files, when I give
>>>>>> mdsioLocalDir.
>>>>>> I am curious whether anyone came across similar problem using  
>>>>>> local
>>>>>> directory.
>>>>>>
>>>>>> Any suggestions will be really helpful I am using MITgcm
>>>>>> Checkpoint61T
>>>>>> version.
>>>>>>
>>>>>> Thank you
>>>>>> Ganesh Gopal
>>>>>>
>>>>>> _______________________________________________
>>>>>> MITgcm-support mailing list
>>>>>> MITgcm-support at mitgcm.org
>>>>>> http://mitgcm.org/mailman/listinfo/mitgcm-support
>>>>>
>>>>> ---
>>>>> Patrick Heimbach | heimbach at mit.edu | http://www.mit.edu/~heimbach
>>>>> MIT | EAPS 54-1518 | 77 Massachusetts Ave | Cambridge MA 02139 USA
>>>>> FON +1-617-253-5259 | FAX +1-617-253-4464 | SKYPE patrick.heimbach
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> 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

---
Patrick Heimbach | heimbach at mit.edu | http://www.mit.edu/~heimbach
MIT | EAPS 54-1518 | 77 Massachusetts Ave | Cambridge MA 02139 USA
FON +1-617-253-5259 | FAX +1-617-253-4464 | SKYPE patrick.heimbach





More information about the MITgcm-support mailing list