/[MITgcm]/MITgcm/model/src/read_pickup.F
ViewVC logotype

Diff of /MITgcm/model/src/read_pickup.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.2 by jmc, Tue Oct 23 15:22:04 2007 UTC revision 1.6 by jmc, Fri Dec 11 13:53:07 2009 UTC
# Line 91  C     Suffix for pickup files Line 91  C     Suffix for pickup files
91        WRITE(fn,'(A,A10)') 'pickup.',suff        WRITE(fn,'(A,A10)') 'pickup.',suff
92    
93  C     Going to really do some IO. Make everyone except master thread wait.  C     Going to really do some IO. Make everyone except master thread wait.
94        _BARRIER  C     this is done within IO routines => no longer needed
95    c     _BARRIER
96    
97        IF (pickup_read_mdsio) THEN        IF (pickup_read_mdsio) THEN
98    
# Line 239  C---   Old way to read model fields: Line 240  C---   Old way to read model fields:
240           IF ( use3Dsolver ) THEN           IF ( use3Dsolver ) THEN
241            WRITE(fn,'(A,A10)') 'pickup_nh.',suff            WRITE(fn,'(A,A10)') 'pickup_nh.',suff
242            CALL READ_REC_3D_RL( fn, fp, Nr, phi_nh,  1, myIter,myThid )            CALL READ_REC_3D_RL( fn, fp, Nr, phi_nh,  1, myIter,myThid )
243    #ifdef ALLOW_ADAMSBASHFORTH_3
244              CALL READ_REC_3D_RL( fn, fp, Nr, gwNm(1-Olx,1-Oly,1,1,1,1),
245         &                                              2, myIter,myThid )
246              CALL READ_REC_3D_RL( fn, fp, Nr, gwNm(1-Olx,1-Oly,1,1,1,2),
247         &                                              2, myIter,myThid )
248    #else /*  ALLOW_ADAMSBASHFORTH_3 */
249            CALL READ_REC_3D_RL( fn, fp, Nr, gwNm1,   2, myIter,myThid )            CALL READ_REC_3D_RL( fn, fp, Nr, gwNm1,   2, myIter,myThid )
250    #endif /*  ALLOW_ADAMSBASHFORTH_3 */
251          ENDIF          ENDIF
252  #endif  #endif /* ALLOW_NONHYDROSTATIC */
253         ELSE         ELSE
254  C---   New way to read model fields:  C---   New way to read model fields:
255            nj = 0            nj = 0
# Line 258  C---    read 3-D fields for AB-restart Line 266  C---    read 3-D fields for AB-restart
266  #ifdef ALLOW_ADAMSBASHFORTH_3  #ifdef ALLOW_ADAMSBASHFORTH_3
267           m1 = 1 + MOD(myIter+1,2)           m1 = 1 + MOD(myIter+1,2)
268           m2 = 1 + MOD( myIter ,2)           m2 = 1 + MOD( myIter ,2)
269            IF ( momStepping ) THEN
270  C--     U velocity:  C--     U velocity:
271           IF ( alph_AB.NE.0. .OR. beta_AB.NE.0. ) THEN           IF ( alph_AB.NE.0. .OR. beta_AB.NE.0. ) THEN
272            CALL READ_MFLDS_3D_RL( 'GuNm1   ',guNm(1-Olx,1-Oly,1,1,1,m1),            CALL READ_MFLDS_3D_RL( 'GuNm1   ',guNm(1-Olx,1-Oly,1,1,1,m1),
# Line 276  C--     V velocity: Line 285  C--     V velocity:
285            CALL READ_MFLDS_3D_RL( 'GvNm2   ',gvNm(1-Olx,1-Oly,1,1,1,m2),            CALL READ_MFLDS_3D_RL( 'GvNm2   ',gvNm(1-Olx,1-Oly,1,1,1,m2),
286       &                                     nj, fp, Nr, myIter, myThid )       &                                     nj, fp, Nr, myIter, myThid )
287           ENDIF           ENDIF
288            ENDIF
289  C--     Temperature:  C--     Temperature:
290          IF ( AdamsBashforthGt ) THEN          IF ( AdamsBashforthGt ) THEN
291           IF ( alph_AB.NE.0. .OR. beta_AB.NE.0. ) THEN           IF ( alph_AB.NE.0. .OR. beta_AB.NE.0. ) THEN
# Line 316  C--     Salinity: Line 326  C--     Salinity:
326       &                                     nj, fp, Nr, myIter, myThid )       &                                     nj, fp, Nr, myIter, myThid )
327           ENDIF           ENDIF
328          ENDIF          ENDIF
329    #ifdef ALLOW_NONHYDROSTATIC
330            IF ( nonHydrostatic ) THEN
331    C--     W velocity:
332             IF ( alph_AB.NE.0. .OR. beta_AB.NE.0. ) THEN
333              CALL READ_MFLDS_3D_RL( 'GwNm1   ',gwNm(1-Olx,1-Oly,1,1,1,m1),
334         &                                     nj, fp, Nr, myIter, myThid )
335             ENDIF
336             IF ( beta_AB.NE.0. ) THEN
337              CALL READ_MFLDS_3D_RL( 'GwNm2   ',gwNm(1-Olx,1-Oly,1,1,1,m2),
338         &                                     nj, fp, Nr, myIter, myThid )
339             ENDIF
340            ENDIF
341    #endif /* ALLOW_NONHYDROSTATIC */
342  #else /*  ALLOW_ADAMSBASHFORTH_3 */  #else /*  ALLOW_ADAMSBASHFORTH_3 */
343            IF ( momStepping ) THEN
344  C--     U velocity:  C--     U velocity:
345            CALL READ_MFLDS_3D_RL( 'GuNm1   ', guNm1,            CALL READ_MFLDS_3D_RL( 'GuNm1   ', guNm1,
346       &                                     nj, fp, Nr, myIter, myThid )       &                                     nj, fp, Nr, myIter, myThid )
347  C--     V velocity:  C--     V velocity:
348            CALL READ_MFLDS_3D_RL( 'GvNm1   ', gvNm1,            CALL READ_MFLDS_3D_RL( 'GvNm1   ', gvNm1,
349       &                                     nj, fp, Nr, myIter, myThid )       &                                     nj, fp, Nr, myIter, myThid )
350            ENDIF
351  C--     Temperature  C--     Temperature
352          IF ( AdamsBashforthGt ) THEN          IF ( AdamsBashforthGt ) THEN
353            CALL READ_MFLDS_3D_RL( 'GtNm1   ', gtNm1,            CALL READ_MFLDS_3D_RL( 'GtNm1   ', gtNm1,
# Line 333  C--     Salinity Line 358  C--     Salinity
358            CALL READ_MFLDS_3D_RL( 'GsNm1   ', gsNm1,            CALL READ_MFLDS_3D_RL( 'GsNm1   ', gsNm1,
359       &                                     nj, fp, Nr, myIter, myThid )       &                                     nj, fp, Nr, myIter, myThid )
360          ENDIF          ENDIF
361    #ifdef ALLOW_NONHYDROSTATIC
362            IF ( nonHydrostatic ) THEN
363              CALL READ_MFLDS_3D_RL( 'GwNm1   ', gwNm1,
364         &                                     nj, fp, Nr, myIter, myThid )
365            ENDIF
366    #endif /* ALLOW_NONHYDROSTATIC */
367  #endif /*  ALLOW_ADAMSBASHFORTH_3 */  #endif /*  ALLOW_ADAMSBASHFORTH_3 */
368    
369  C-      read Full Pressure for EOS in pressure:  C-      read Full Pressure for EOS in pressure:
# Line 345  C-      read Full Pressure for EOS in pr Line 376  C-      read Full Pressure for EOS in pr
376            CALL READ_MFLDS_3D_RL( 'Phi_NHyd', phi_nh,            CALL READ_MFLDS_3D_RL( 'Phi_NHyd', phi_nh,
377       &                                     nj, fp, Nr, myIter, myThid )       &                                     nj, fp, Nr, myIter, myThid )
378          ENDIF          ENDIF
379          IF ( nonHydrostatic ) THEN  #endif /* ALLOW_NONHYDROSTATIC */
380            CALL READ_MFLDS_3D_RL( 'GwNm1   ', gwNm1,  #ifdef ALLOW_ADDFLUID
381    C-    read mass source/sink of fluid
382            IF ( selectAddFluid.GE.1 ) THEN
383              CALL READ_MFLDS_3D_RL( 'AddMass ', addMass,
384       &                                     nj, fp, Nr, myIter, myThid )       &                                     nj, fp, Nr, myIter, myThid )
385          ENDIF          ENDIF
386  #endif  #endif /* ALLOW_ADDFLUID */
387    
388  C---    read 2-D fields, starting with Eta:  C---    read 2-D fields, starting with Eta:
389            nj = nj*Nr            nj = nj*Nr
390            CALL READ_MFLDS_3D_RL( 'EtaN    ', etaN,            CALL READ_MFLDS_3D_RL( 'EtaN    ', etaN,
391       &                                     nj, fp, 1 , myIter, myThid )       &                                     nj, fp, 1 , myIter, myThid )
392    #ifdef ALLOW_NONHYDROSTATIC
393            IF ( selectNHfreeSurf.GE.1 ) THEN
394              CALL READ_MFLDS_3D_RL( 'dPhiNH  ', dPhiNH,
395         &                                     nj, fp, 1 , myIter, myThid )
396            ENDIF
397    #endif /* ALLOW_NONHYDROSTATIC */
398  #ifdef EXACT_CONSERV  #ifdef EXACT_CONSERV
399          IF ( exactConserv ) THEN          IF ( exactConserv ) THEN
400            CALL READ_MFLDS_3D_RL( 'dEtaHdt ', dEtaHdt,            CALL READ_MFLDS_3D_RL( 'dEtaHdt ', dEtaHdt,
# Line 364  C---    read 2-D fields, starting with E Line 404  C---    read 2-D fields, starting with E
404            CALL READ_MFLDS_3D_RL( 'EtaH    ', etaH,            CALL READ_MFLDS_3D_RL( 'EtaH    ', etaH,
405       &                                     nj, fp, 1 , myIter, myThid )       &                                     nj, fp, 1 , myIter, myThid )
406          ENDIF          ENDIF
407  #endif  #endif /* EXACT_CONSERV */
408  C--    end: new way to read pickup file  C--    end: new way to read pickup file
409         ENDIF         ENDIF
410    
# Line 421  C#endif Line 461  C#endif
461          IF (use3Dsolver) THEN          IF (use3Dsolver) THEN
462            CALL MNC_CW_RL_R('D',fn,0,0,'phi_nh', phi_nh, myThid)            CALL MNC_CW_RL_R('D',fn,0,0,'phi_nh', phi_nh, myThid)
463  c         CALL MNC_CW_RL_R('D',fn,0,0,'gW', gW, myThid)  c         CALL MNC_CW_RL_R('D',fn,0,0,'gW', gW, myThid)
464    #ifndef ALLOW_ADAMSBASHFORTH_3
465            CALL MNC_CW_RL_R('D',fn,0,0,'gWnm1', gwNm1, myThid)            CALL MNC_CW_RL_R('D',fn,0,0,'gWnm1', gwNm1, myThid)
466    #endif
467          ENDIF          ENDIF
468  #endif  #endif
469          IF ( useDynP_inEos_Zc ) THEN          IF ( useDynP_inEos_Zc ) THEN
# Line 430  c         CALL MNC_CW_RL_R('D',fn,0,0,'g Line 472  c         CALL MNC_CW_RL_R('D',fn,0,0,'g
472        ENDIF        ENDIF
473  #endif /*  ALLOW_MNC  */  #endif /*  ALLOW_MNC  */
474    
       _BARRIER  
   
475  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|  C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
476    
477  C     Fill in edge regions  C     Fill in edge regions
# Line 441  C     Fill in edge regions Line 481  C     Fill in edge regions
481  #ifdef ALLOW_ADAMSBASHFORTH_3  #ifdef ALLOW_ADAMSBASHFORTH_3
482        CALL EXCH_UV_3D_RL( guNm(1-Olx,1-Oly,1,1,1,1),        CALL EXCH_UV_3D_RL( guNm(1-Olx,1-Oly,1,1,1,1),
483       &                    gvNm(1-Olx,1-Oly,1,1,1,1),.TRUE.,Nr,myThid )       &                    gvNm(1-Olx,1-Oly,1,1,1,1),.TRUE.,Nr,myThid )
       CALL EXCH_3D_RL( gtNm(1-Olx,1-Oly,1,1,1,1), Nr, myThid )  
       CALL EXCH_3D_RL( gsNm(1-Olx,1-Oly,1,1,1,1), Nr, myThid )  
484        CALL EXCH_UV_3D_RL( guNm(1-Olx,1-Oly,1,1,1,2),        CALL EXCH_UV_3D_RL( guNm(1-Olx,1-Oly,1,1,1,2),
485       &                    gvNm(1-Olx,1-Oly,1,1,1,2),.TRUE.,Nr,myThid )       &                    gvNm(1-Olx,1-Oly,1,1,1,2),.TRUE.,Nr,myThid )
486          CALL EXCH_3D_RL( gtNm(1-Olx,1-Oly,1,1,1,1), Nr, myThid )
487        CALL EXCH_3D_RL( gtNm(1-Olx,1-Oly,1,1,1,2), Nr, myThid )        CALL EXCH_3D_RL( gtNm(1-Olx,1-Oly,1,1,1,2), Nr, myThid )
488          CALL EXCH_3D_RL( gsNm(1-Olx,1-Oly,1,1,1,1), Nr, myThid )
489        CALL EXCH_3D_RL( gsNm(1-Olx,1-Oly,1,1,1,2), Nr, myThid )        CALL EXCH_3D_RL( gsNm(1-Olx,1-Oly,1,1,1,2), Nr, myThid )
490  #else /* ALLOW_ADAMSBASHFORTH_3 */  #else /* ALLOW_ADAMSBASHFORTH_3 */
491        CALL EXCH_UV_3D_RL( guNm1, gvNm1, .TRUE., Nr, myThid )        CALL EXCH_UV_3D_RL( guNm1, gvNm1, .TRUE., Nr, myThid )
# Line 464  C     Fill in edge regions Line 504  C     Fill in edge regions
504  #ifdef ALLOW_NONHYDROSTATIC  #ifdef ALLOW_NONHYDROSTATIC
505        IF ( use3Dsolver ) THEN        IF ( use3Dsolver ) THEN
506          CALL EXCH_3D_RL( phi_nh, Nr, myThid )          CALL EXCH_3D_RL( phi_nh, Nr, myThid )
507          ENDIF
508          IF ( nonHydrostatic ) THEN
509    #ifdef ALLOW_ADAMSBASHFORTH_3
510            CALL EXCH_3D_RL( gwNm(1-Olx,1-Oly,1,1,1,1), Nr, myThid )
511            CALL EXCH_3D_RL( gwNm(1-Olx,1-Oly,1,1,1,2), Nr, myThid )
512    #else /* ALLOW_ADAMSBASHFORTH_3 */
513          CALL EXCH_3D_RL( gwNm1,  Nr, myThid )          CALL EXCH_3D_RL( gwNm1,  Nr, myThid )
514    #endif /* ALLOW_ADAMSBASHFORTH_3 */
515        ENDIF        ENDIF
516  #endif        IF ( selectNHfreeSurf.GE.1 ) THEN
517            CALL EXCH_XY_RL( dPhiNH, myThid )
518          ENDIF
519    #endif /* ALLOW_NONHYDROSTATIC */
520    
521        RETURN        RETURN
522        END        END

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.6

  ViewVC Help
Powered by ViewVC 1.1.22