/[MITgcm]/MITgcm/pkg/ptracers/ptracers_read_pickup.F
ViewVC logotype

Diff of /MITgcm/pkg/ptracers/ptracers_read_pickup.F

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

revision 1.1 by jmc, Wed Oct 25 20:41:21 2006 UTC revision 1.2 by jmc, Thu Oct 26 00:29:33 2006 UTC
# Line 34  C     iTracer          :: loop indices Line 34  C     iTracer          :: loop indices
34  C     iRec              :: record number  C     iRec              :: record number
35  C     fn                :: character buffer for creating filename  C     fn                :: character buffer for creating filename
36  C     prec              :: precision of pickup files  C     prec              :: precision of pickup files
 C     fn                :: suffix for pickup file (eg. 0000000010)  
37        INTEGER iTracer,prec,iRec        INTEGER iTracer,prec,iRec
38        CHARACTER*(MAX_LEN_MBUF) fn        CHARACTER*(MAX_LEN_MBUF) fn
39  CEOP  CEOP
40    
41          _BARRIER
42    
43  #ifdef ALLOW_MNC  #ifdef ALLOW_MNC
44        IF ( PTRACERS_pickup_read_mnc ) THEN        IF ( PTRACERS_pickup_read_mnc ) THEN
45  C       Read variables from the pickup file  C       Read variables from the pickup file
# Line 59  C       Read variables from the pickup f Line 60  C       Read variables from the pickup f
60          ENDDO          ENDDO
61        ENDIF        ENDIF
62  #endif /*  ALLOW_MNC  */  #endif /*  ALLOW_MNC  */
63            
64        IF ( PTRACERS_pickup_read_mdsio ) THEN        IF ( PTRACERS_pickup_read_mdsio ) THEN
65    
66        WRITE(fn,'(A,I10.10)') 'pickup_ptracers.',myIter        WRITE(fn,'(A,I10.10)') 'pickup_ptracers.',myIter
67        prec = precFloat64        prec = precFloat64
68          
69        IF ( usePickupBeforeC54 ) THEN        IF ( usePickupBeforeC54 ) THEN
70  C       Read fields as consecutive records  C       Read fields as consecutive records
71          DO iTracer=1,PTRACERS_num          DO iTracer=1,PTRACERS_num
72            iRec = iTracer            iRec = iTracer
73            CALL MDSREADFIELD(fn,prec,'RL',Nr,            CALL READ_REC_3D_RL( fn, prec, Nr,
74       &         pTracer(1-Olx,1-Oly,1,1,1,iTracer),iRec,myThid)       O         pTracer(1-Olx,1-Oly,1,1,1,iTracer),
75         I         iRec, myIter, myThid )
76        _EXCH_XYZ_R8(pTracer(1-Olx,1-Oly,1,1,1,iTracer),myThid)        _EXCH_XYZ_R8(pTracer(1-Olx,1-Oly,1,1,1,iTracer),myThid)
77          ENDDO          ENDDO
78    
79  C       Read historical tendancies as consecutive records  C       Read historical tendancies as consecutive records
80          DO iTracer=1,PTRACERS_num          DO iTracer=1,PTRACERS_num
81            iRec = iTracer + PTRACERS_num            iRec = iTracer + PTRACERS_num
82            CALL MDSREADFIELD(fn,prec,'RL',Nr,            CALL READ_REC_3D_RL( fn, prec, Nr,
83       &         gPtr(1-Olx,1-Oly,1,1,1,iTracer),iRec,myThid)       O         gPtr(1-Olx,1-Oly,1,1,1,iTracer),
84         I         iRec, myIter, myThid )
85        _EXCH_XYZ_R8(gPtr(1-Olx,1-Oly,1,1,1,iTracer),myThid)        _EXCH_XYZ_R8(gPtr(1-Olx,1-Oly,1,1,1,iTracer),myThid)
86          ENDDO          ENDDO
87          DO iTracer=1,PTRACERS_num          DO iTracer=1,PTRACERS_num
88            iRec = iTracer + PTRACERS_num*2            iRec = iTracer + PTRACERS_num*2
89            CALL MDSREADFIELD(fn,prec,'RL',Nr,            CALL READ_REC_3D_RL( fn, prec, Nr,
90       &         gPtrNm1(1-Olx,1-Oly,1,1,1,iTracer),iRec,myThid)       O         gPtrNm1(1-Olx,1-Oly,1,1,1,iTracer),
91         I         iRec, myIter, myThid )
92        _EXCH_XYZ_R8(gPtrNm1(1-Olx,1-Oly,1,1,1,iTracer),myThid)        _EXCH_XYZ_R8(gPtrNm1(1-Olx,1-Oly,1,1,1,iTracer),myThid)
93          ENDDO          ENDDO
94    
# Line 94  C       one tracer after the other, only Line 98  C       one tracer after the other, only
98  C       this allow to restart from a pickup with a different number of  C       this allow to restart from a pickup with a different number of
99  C       tracers, with write_pickup dumping all of them (PTRACERS_num).  C       tracers, with write_pickup dumping all of them (PTRACERS_num).
100          DO iTracer=1,PTRACERS_numInUse          DO iTracer=1,PTRACERS_numInUse
101            iRec = 2*iTracer -1            iRec = 2*iTracer -1
102            CALL MDSREADFIELD(fn,prec,'RL',Nr,            CALL READ_REC_3D_RL( fn, prec, Nr,
103       &         pTracer(1-Olx,1-Oly,1,1,1,iTracer),iRec,myThid)       O         pTracer(1-Olx,1-Oly,1,1,1,iTracer),
104         I         iRec, myIter, myThid )
105            iRec = 2*iTracer            iRec = 2*iTracer
106            CALL MDSREADFIELD(fn,prec,'RL',Nr,            CALL READ_REC_3D_RL( fn, prec, Nr,
107       &         gPtrNm1(1-Olx,1-Oly,1,1,1,iTracer),iRec,myThid)       O         gPtrNm1(1-Olx,1-Oly,1,1,1,iTracer),
108         I         iRec, myIter, myThid )
109        _EXCH_XYZ_R8(pTracer(1-Olx,1-Oly,1,1,1,iTracer),myThid)        _EXCH_XYZ_R8(pTracer(1-Olx,1-Oly,1,1,1,iTracer),myThid)
110        _EXCH_XYZ_R8(gPtrNm1(1-Olx,1-Oly,1,1,1,iTracer),myThid)        _EXCH_XYZ_R8(gPtrNm1(1-Olx,1-Oly,1,1,1,iTracer),myThid)
111          ENDDO          ENDDO
112            
113        ENDIF        ENDIF
114    
115        ENDIF        ENDIF

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

  ViewVC Help
Powered by ViewVC 1.1.22