[MITgcm-devel] problems with pickup and CD code

Samar Khatiwala spk at ldeo.columbia.edu
Sun Aug 16 12:26:23 EDT 2009


Hi,

I encountered a problem while attempting to restart a run from a  
pickup file with nIter0=0 and pickupSuff='0000000000'.
The problem is that in  S/R CD_CODE_INI_VARS the following lines:

       IF ( nIter0.NE.0 ) THEN
         CALL CD_CODE_READ_PICKUP( nIter0, myThid )
       ENDIF

prevent the pickup_cd file from being read. Is this the intended  
behavior?

I thought the point of pickupSuff was that one could rename the  
iteration numbers of pickup files (e.g., when going from
asynchronous to synchronous time stepping which requires changing the  
time step) so as to be able to do a clean restart.
However, because of the above, I get different results when starting  
from the exact same pickup files, but with one of them
renamed. (I could of course set nIter0 to something other than 0, but  
that would partially defeat the purpose of the flexibility
that pickupSuff provides.)

S/R INI_FIELDS correctly treats this situation by having the following:

C     Set model variables to initial/restart conditions
       IF ( startTime .EQ. baseTime .AND.  nIter0 .EQ. 0
      &     .AND. pickupSuff .EQ. ' ' ) THEN
         CALL INI_VEL( myThid )

          etc

       ELSEIF ( .NOT.useOffLine ) THEN
         CALL READ_PICKUP( nIter0, myThid )

       ENDIF

Is there a reason why S/R CD_CODE_INI_VARS does not have a similar IF  
(... pickupSuff .NE. ' ' ...)

Thanks,

Samar





More information about the MITgcm-devel mailing list