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

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

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

revision 1.4 by edhill, Fri Sep 3 20:10:47 2004 UTC revision 1.13 by edhill, Sat Jul 30 00:58:41 2005 UTC
# Line 7  CBOP Line 7  CBOP
7  C     !ROUTINE: PTRACERS_WRITE_STATE  C     !ROUTINE: PTRACERS_WRITE_STATE
8    
9  C     !INTERFACE:  C     !INTERFACE:
10        SUBROUTINE PTRACERS_WRITE_STATE( myIter,myTime,myThid )        SUBROUTINE PTRACERS_WRITE_STATE(
11         I     myIter, myTime, myThid )
12    
13  C     !DESCRIPTION:  C     !DESCRIPTION:
14  C     Calculates tendancy for passive tracers and integrates forward in  C     Calculates tendancy for passive tracers and integrates forward in
# Line 39  C     iRec      :: record number Line 40  C     iRec      :: record number
40        INTEGER iTracer        INTEGER iTracer
41        CHARACTER*(MAX_LEN_MBUF) suff        CHARACTER*(MAX_LEN_MBUF) suff
42        INTEGER iRec        INTEGER iRec
 #ifdef ALLOW_MNC  
       INTEGER ii  
43    
44        IF (useMNC        LOGICAL  DIFFERENT_MULTIPLE
45       &     .AND. (mod(PTRACERS_iotypes,4) .GT. 1)        EXTERNAL DIFFERENT_MULTIPLE
46       &     .AND. PTRACERS_mnc_write ) THEN        INTEGER  IO_ERRCOUNT
47          EXTERNAL IO_ERRCOUNT
48    
49          IF ( DIFFERENT_MULTIPLE( PTRACERS_dumpFreq, myTime, deltaTClock )
50         & .OR.myTime.EQ.endTime
51         & .OR.myTime.EQ.startTime
52         &   ) THEN
53          
54    C     Write to files
55           _BARRIER
56           _BEGIN_MASTER( myThid )
57    
58    #ifdef ALLOW_MNC
59           IF ( PTRACERS_snapshot_mnc ) THEN
60          CALL MNC_CW_SET_UDIM('ptracers', -1, myThid)          CALL MNC_CW_SET_UDIM('ptracers', -1, myThid)
61          CALL MNC_CW_I_W('I','ptracers',0,0,'iter',myIter,myThid)          CALL MNC_CW_RL_W_S('D','ptracers',0,0,'T',myTime,myThid)
62          CALL MNC_CW_SET_UDIM('ptracers', 0, myThid)          CALL MNC_CW_SET_UDIM('ptracers', 0, myThid)
63          DO ii = 1,PTRACERS_numInUse          CALL MNC_CW_I_W_S('I','ptracers',0,0,'iter',myIter,myThid)
64  CEH3          WRITE(*,*) 'PTRACERS_names(',ii,') = ''',          DO iTracer = 1,PTRACERS_numInUse
65  CEH3     &         PTRACERS_names(ii),''''           CALL MNC_CW_RL_W('D','ptracers',0,0,PTRACERS_names(iTracer),
66            CALL MNC_CW_RL_W('D','ptracers',0,0,PTRACERS_names(ii),       &        pTracer(1-OLx,1-OLy,1,1,1,iTracer),myThid)
      &         pTracer(1-OLx,1-OLy,1,1,1,ii),myThid)  
67          ENDDO          ENDDO
68        ENDIF         ENDIF
69  #endif /*  ALLOW_MNC  */  #endif /*  ALLOW_MNC  */
70    
71        IF (mod(PTRACERS_iotypes,2) .GT. 0) THEN         IF ( PTRACERS_snapshot_mdsio ) THEN
 C       use MDSIO  
72    
73  C       Loop over tracers  C       Loop over tracers
74          DO iTracer=1,PTRACERS_numInUse          DO iTracer=1,PTRACERS_numInUse
75    
76  #ifdef MULTIPLE_RECORD_STATE_FILES  #ifdef MULTIPLE_RECORD_STATE_FILES
77  C         Write each snap-shot as a record in a time-history file  C     Write each snap-shot as a record in a time-history file
78            IF (PTRACERS_useRecords) THEN           IF (PTRACERS_useRecords) THEN
79  C           Write each passive tracer as a record  C     Write each passive tracer as a record
80              WRITE(suff,'(A)') 'PTRACERS'            WRITE(suff,'(A)') 'PTRACERS'
81              iRec = int ( (myCurrentTime-startTime) / dumpFreq +1.5 )            iRec = int ( (myCurrentTime-startTime)
82              iRec = (iRec-1)*PTRACERS_num + iTracer + 1       &         / PTRACERS_dumpFreq + 1.5 )
83            ELSE            iRec = (iRec-1)*PTRACERS_num + iTracer + 1
84  C           Write each passive tracer in its own file           ELSE
85              WRITE(pref,'(A7,I2.2)') 'PTRACER',iTracer  C     Write each passive tracer in its own file
86              iRec = int ( (myCurrentTime-startTime) / dumpFreq +1.5 )            WRITE(pref,'(A7,I2.2)') 'PTRACER',iTracer
87            ENDIF            iRec = int ( (myCurrentTime-startTime)
88  #else       &         / PTRACERS_dumpFreq + 1.5 )
89             ENDIF
90    #else
91  C         Write each snap-shot as a new file with a 10-digit suffix to  C         Write each snap-shot as a new file with a 10-digit suffix to
92  C         indicate time-step number  C     indicate time-step number
93            IF (PTRACERS_useRecords) THEN           IF (PTRACERS_useRecords) THEN
94  C           Write each passive tracer as a record  C     Write each passive tracer as a record
95              WRITE(suff,'(A,I10.10)') 'PTRACERS',myIter            WRITE(suff,'(A,I10.10)') 'PTRACERS',myIter
96              iRec=iTracer            iRec=iTracer
97            ELSE           ELSE
98  C           Write each passive tracer in its own file  C     Write each passive tracer in its own file
99              WRITE(suff,'(A7,I2.2,A1,I10.10)')            WRITE(suff,'(A7,I2.2,A1,I10.10)')
100       &           'PTRACER',iTracer,'.',myIter       &         'PTRACER',iTracer,'.',myIter
101              iRec=1            iRec=1
102            ENDIF           ENDIF
103  #endif /* MULTIPLE_RECORD_STATE_FILES */  #endif /* MULTIPLE_RECORD_STATE_FILES */
104            
105            CALL WRITE_REC_XYZ_RL(suff,           CALL WRITE_REC_XYZ_RL(suff,
106       &         pTracer(1-Olx,1-Oly,1,1,1,iTracer),iRec,myIter,myThid)       &        pTracer(1-Olx,1-Oly,1,1,1,iTracer),iRec,myIter,myThid)
107                      
108  C         End of tracer loop  C     End of tracer loop
109          ENDDO          ENDDO
110                    
111           ENDIF
112    
113           _END_MASTER( myThid )
114           _BARRIER
115        ENDIF        ENDIF
116    
117  #endif /* ALLOW_PTRACERS */  #endif /* ALLOW_PTRACERS */
118    
119        RETURN        RETURN

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.13

  ViewVC Help
Powered by ViewVC 1.1.22