/[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.3 by jmc, Tue Jul 13 16:47:49 2004 UTC revision 1.4 by edhill, Fri Sep 3 20:10:47 2004 UTC
# Line 4  C $Name$ Line 4  C $Name$
4  #include "PTRACERS_OPTIONS.h"  #include "PTRACERS_OPTIONS.h"
5    
6  CBOP  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( myIter,myTime,myThid )
11    
12  C !DESCRIPTION:  C     !DESCRIPTION:
13  C     Calculates tendancy for passive tracers and integrates forward  C     Calculates tendancy for passive tracers and integrates forward in
14  C     in time.  C     time.
15    
16  C !USES: ===============================================================  C     !USES:
17        IMPLICIT NONE        IMPLICIT NONE
18  #include "SIZE.h"  #include "SIZE.h"
19  #include "EEPARAMS.h"  #include "EEPARAMS.h"
20    #include "PARAMS.h"
21  #include "PTRACERS_SIZE.h"  #include "PTRACERS_SIZE.h"
22  #include "PTRACERS.h"  #include "PTRACERS.h"
23    
24  C !INPUT PARAMETERS: ===================================================  C     !INPUT PARAMETERS:
25  C  myIter               :: time-step number  C     myIter    :: time-step number
26  C  myTime               :: model time  C     myTime    :: model time
27  C  myThid               :: thread number  C     myThid    :: thread number
28        INTEGER myIter        INTEGER myIter
29        _RL myTime        _RL myTime
30        INTEGER myThid        INTEGER myThid
31    CEOP
 C !OUTPUT PARAMETERS: ==================================================  
 C  none  
32    
33  #ifdef ALLOW_PTRACERS  #ifdef ALLOW_PTRACERS
34    
35  C !LOCAL VARIABLES: ====================================================  C     !LOCAL VARIABLES:
36  C  iTracer              :: loop indices  C     iTracer   :: loop indices
37  C  suff                 :: character buffer for creating suffix in filename  C     suff      :: character buffer for creating suffix in filename
38  C  iRec                 :: record number  C     iRec      :: record number
39        INTEGER iTracer        INTEGER iTracer
40        CHARACTER*(MAX_LEN_MBUF) suff        CHARACTER*(MAX_LEN_MBUF) suff
41        INTEGER iRec        INTEGER iRec
42  CEOP  #ifdef ALLOW_MNC
43          INTEGER ii
44    
45          IF (useMNC
46         &     .AND. (mod(PTRACERS_iotypes,4) .GT. 1)
47         &     .AND. PTRACERS_mnc_write ) THEN
48            CALL MNC_CW_SET_UDIM('ptracers', -1, myThid)
49            CALL MNC_CW_I_W('I','ptracers',0,0,'iter',myIter,myThid)
50            CALL MNC_CW_SET_UDIM('ptracers', 0, myThid)
51            DO ii = 1,PTRACERS_numInUse
52    CEH3          WRITE(*,*) 'PTRACERS_names(',ii,') = ''',
53    CEH3     &         PTRACERS_names(ii),''''
54              CALL MNC_CW_RL_W('D','ptracers',0,0,PTRACERS_names(ii),
55         &         pTracer(1-OLx,1-OLy,1,1,1,ii),myThid)
56            ENDDO
57          ENDIF
58    #endif /*  ALLOW_MNC  */
59    
60  C Loop over tracers        IF (mod(PTRACERS_iotypes,2) .GT. 0) THEN
61        DO iTracer=1,PTRACERS_numInUse  C       use MDSIO
62    
63    C       Loop over tracers
64            DO iTracer=1,PTRACERS_numInUse
65    
66  #ifdef MULTIPLE_RECORD_STATE_FILES  #ifdef MULTIPLE_RECORD_STATE_FILES
67  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
68          IF (PTRACERS_useRecords) THEN            IF (PTRACERS_useRecords) THEN
69  C        Write each passive tracer as a record  C           Write each passive tracer as a record
70           WRITE(suff,'(A)') 'PTRACERS'              WRITE(suff,'(A)') 'PTRACERS'
71           iRec = int ( (myCurrentTime-startTime) / dumpFreq +1.5 )              iRec = int ( (myCurrentTime-startTime) / dumpFreq +1.5 )
72           iRec = (iRec-1)*PTRACERS_num + iTracer + 1              iRec = (iRec-1)*PTRACERS_num + iTracer + 1
73          ELSE            ELSE
74  C        Write each passive tracer in its own file  C           Write each passive tracer in its own file
75           WRITE(pref,'(A7,I2.2)') 'PTRACER',iTracer              WRITE(pref,'(A7,I2.2)') 'PTRACER',iTracer
76           iRec = int ( (myCurrentTime-startTime) / dumpFreq +1.5 )              iRec = int ( (myCurrentTime-startTime) / dumpFreq +1.5 )
77          ENDIF            ENDIF
78  #else  #else
79  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
80  C indicate time-step number  C         indicate time-step number
81          IF (PTRACERS_useRecords) THEN            IF (PTRACERS_useRecords) THEN
82  C        Write each passive tracer as a record  C           Write each passive tracer as a record
83           WRITE(suff,'(A,I10.10)') 'PTRACERS',myIter              WRITE(suff,'(A,I10.10)') 'PTRACERS',myIter
84           iRec=iTracer              iRec=iTracer
85          ELSE            ELSE
86  C        Write each passive tracer in its own file  C           Write each passive tracer in its own file
87           WRITE(suff,'(A7,I2.2,A1,I10.10)') 'PTRACER',iTracer,'.',myIter              WRITE(suff,'(A7,I2.2,A1,I10.10)')
88           iRec=1       &           'PTRACER',iTracer,'.',myIter
89          ENDIF              iRec=1
90              ENDIF
91  #endif /* MULTIPLE_RECORD_STATE_FILES */  #endif /* MULTIPLE_RECORD_STATE_FILES */
92    
93          CALL WRITE_REC_XYZ_RL(suff,            CALL WRITE_REC_XYZ_RL(suff,
94       &      pTracer(1-Olx,1-Oly,1,1,1,iTracer),iRec,myIter,myThid)       &         pTracer(1-Olx,1-Oly,1,1,1,iTracer),iRec,myIter,myThid)
95              
96  C End of tracer loop  C         End of tracer loop
97        ENDDO          ENDDO
98            
99          ENDIF
100  #endif /* ALLOW_PTRACERS */  #endif /* ALLOW_PTRACERS */
101    
102        RETURN        RETURN

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

  ViewVC Help
Powered by ViewVC 1.1.22