[MITgcm-support] MITgcm floats.................

Jean-Michel Campin jmc at ocean.mit.edu
Fri Apr 13 13:13:57 EDT 2012


Hi Andreas,

There are several options:
1) not changing the code, starting with nIter0=0 and to replace
 the main pickup files with a set of initial conditons files 
  (pSurfInitFile= ..., hydrogThetaFile= ..., hydrogSaltFile= ..., 
  uVelInitFile= ..., vVelInitFile= ...) corresponding to what is stored 
 in the pickup file.
2) generate a "pickup_flt" file yourself. It's very similar to float
 initial condition file (if mapIniPos2Index is set to False); 
 But since you were probably prepared to use the default (which is 
  mapIniPos2Index=T), you will have do the conversion yourself when
 generating this pickup_flt file, that is to give float position in index 
 space instead of distances (and 1 file per tile, since this does not work 
 with global files).
3) modify flt_init_varia.F to read float initial conditions 
  even when nIter0 <> 0  and generate a modified "mitgcmuv" executable.
  You will used this modified executable to start the float simulation 
  but will have to return to the un-modified one to continue after a restart.
4) try this trick: since flt_init_varia.F does not recognize pickupSuff, 
  you could try the following:
  a) set nIter0=0 and pickupSuff= {the name of your pickup file} in 
     main parameter file "data", 3rd namelist.
  b) use normal float initial conditions file.
 let me know if this 4th solution does not work.

Cheers,
Jean-Michel

PS: I cc to support, might be useful for other pkg/flt users.

On Fri, Apr 13, 2012 at 02:32:27PM +1000, Andreas Klocker wrote:
> Dear Masters of the MITgcm,
> 
> I just started to experiment with floats in Ryan's channel and
> noticed a little problem. I'm trying to initialize floats starting
> from a spun-up state which David produced, but after looking at
> flt_init_varia.F it seems like I can only either start with a file
> with initial float positions if nIter0=0 (which means I would have
> to spinup the model again) or start from a pickup file (which I
> obviously don't have because there were no floats in the channel so
> far):
> 
> C read floats initial condition from file
>       _BEGIN_MASTER(myThid)
>       IF ( nIter0.EQ.0 ) THEN
>         fn = flt_file
>       ELSE
>         WRITE(fn,'(A,I10.10)') 'pickup_flt.', nIter0
>       ENDIF
>       iL = ILNBLNK(fn)
>       WRITE(msgBuf,'(2A)')
> &   'FLT_INIT_VARIA: reading Floats from: ', fn(1:iL)
>       CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
> &                    SQUEEZE_RIGHT, myThid )
> 
> 
> What do you think is the easiest way to get around that? In the file
> with the initial float positions I can set a time (in s) when the
> floats are meant to start, but that file is only read if
> nIter0=0.... Is there an easy way to modify the Fortran code to fix
> that problem? Maybe some way to tell the model in the data.flt file
> if it is meant to look for an initial float file or a pickup?
> 
> Any ideas?
> 
> all the best from Oz,
> A.



More information about the MITgcm-support mailing list