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

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

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

revision 1.21 by jmc, Tue Feb 18 15:25:09 2003 UTC revision 1.40 by jmc, Fri Jul 2 17:43:04 2004 UTC
# Line 1  Line 1 
1  C $Header$  C $Header$
2  C $Name$  C $Name$
3    
4    #include "PACKAGES_CONFIG.h"
5  #include "CPP_OPTIONS.h"  #include "CPP_OPTIONS.h"
6    
7  #undef  MULTIPLE_RECORD_STATE_FILES  #undef  MULTIPLE_RECORD_STATE_FILES
# Line 66  C     == Global variables === Line 68  C     == Global variables ===
68        EXTERNAL IO_ERRCOUNT        EXTERNAL IO_ERRCOUNT
69    
70  C     !INPUT/OUTPUT PARAMETERS:  C     !INPUT/OUTPUT PARAMETERS:
 C     == Routine arguments ==  
71  C     myThid - Thread number for this instance of the routine.  C     myThid - Thread number for this instance of the routine.
72  C     myIter - Iteration number  C     myIter - Iteration number
73  C     myTime - Current time of simulation ( s )  C     myTime - Current time of simulation ( s )
# Line 75  C     myTime - Current time of simulatio Line 76  C     myTime - Current time of simulatio
76        INTEGER myIter        INTEGER myIter
77    
78  C     !LOCAL VARIABLES:  C     !LOCAL VARIABLES:
 C     == Local variables ==  
79        CHARACTER*(MAX_LEN_MBUF) suff        CHARACTER*(MAX_LEN_MBUF) suff
80        INTEGER iRec        INTEGER iRec
81    #ifdef ALLOW_MNC
82          _RL mnc_iter
83    #endif
84  CEOP  CEOP
85    
86        IF (        IF (
# Line 109  C       - creates relatively few files b Line 112  C       - creates relatively few files b
112          CALL WRITE_REC_XY_RL('Eta',etaN,iRec,myIter,myThid)          CALL WRITE_REC_XY_RL('Eta',etaN,iRec,myIter,myThid)
113          CALL WRITE_REC_XYZ_RL( 'W',wVel,iRec,myIter,myThid)          CALL WRITE_REC_XYZ_RL( 'W',wVel,iRec,myIter,myThid)
114  #ifdef ALLOW_PASSIVE_TRACER  #ifdef ALLOW_PASSIVE_TRACER
115    ceh3 needs an IF ( usePASSIVE_TRACER ) THEN
116          CALL WRITE_REC_XYZ_RL( 'TR1',tr1,iRec,myIter,myThid)          CALL WRITE_REC_XYZ_RL( 'TR1',tr1,iRec,myIter,myThid)
117  #endif  #endif /* ALLOW_PASSIVE_TRACER */
118  #ifdef ALLOW_NONHYDROSTATIC  #ifdef ALLOW_NONHYDROSTATIC
119          IF (nonHydroStatic) THEN          IF (nonHydroStatic) THEN
120           CALL WRITE_REC_XYZ_RL( 'PNH',phi_nh,iRec,myIter,myThid)           CALL WRITE_REC_XYZ_RL( 'PNH',phi_nh,iRec,myIter,myThid)
121          ENDIF          ENDIF
122  #endif /* ALLOW_NONHYDROSTATIC */  #endif /* ALLOW_NONHYDROSTATIC */
123  #ifdef NONLIN_FRSURF  #ifdef NONLIN_FRSURF
124          CALL WRITE_REC_XYZ_RS('hFacC.',hFacC,iRec,myIter,myThid)  c       CALL WRITE_REC_XYZ_RS('hFacC.',hFacC,iRec,myIter,myThid)
125          CALL WRITE_FLD_XYZ_RS('hFacW.',hFacW,iRec,myIter,myThid)  c       CALL WRITE_REC_XYZ_RS('hFacW.',hFacW,iRec,myIter,myThid)
126          CALL WRITE_FLD_XYZ_RS('hFacS.',hFacS,iRec,myIter,myThid)  c       CALL WRITE_REC_XYZ_RS('hFacS.',hFacS,iRec,myIter,myThid)
127  #endif /* NONLIN_FRSURF */  #endif /* NONLIN_FRSURF */
128    
129  #else /* MULTIPLE_RECORD_STATE_FILES */  #else /* MULTIPLE_RECORD_STATE_FILES */
# Line 134  C         transfer analyse a particular Line 138  C         transfer analyse a particular
138          CALL WRITE_FLD_XYZ_RL( 'S.',suff,salt,myIter,myThid)          CALL WRITE_FLD_XYZ_RL( 'S.',suff,salt,myIter,myThid)
139          CALL WRITE_FLD_XY_RL('Eta.',suff,etaN,myIter,myThid)          CALL WRITE_FLD_XY_RL('Eta.',suff,etaN,myIter,myThid)
140          CALL WRITE_FLD_XYZ_RL( 'W.',suff,wVel,myIter,myThid)          CALL WRITE_FLD_XYZ_RL( 'W.',suff,wVel,myIter,myThid)
141          CALL WRITE_FLD_XYZ_RL( 'PH.',suff,totPhiHyd,myIter,myThid)          IF ( useDynP_inEos_Zc .OR. myIter.NE.nIter0 )
142          IF ( buoyancyRelation .NE. 'ATMOSPHERIC' )       &  CALL WRITE_FLD_XYZ_RL( 'PH.',suff,totPhiHyd,myIter,myThid)
143            IF (buoyancyRelation.NE.'ATMOSPHERIC' .AND. myIter.NE.nIter0)
144       &   CALL WRITE_FLD_XY_RL('PHL.',suff,phiHydLow,myIter,myThid)       &   CALL WRITE_FLD_XY_RL('PHL.',suff,phiHydLow,myIter,myThid)
145  #ifdef ALLOW_PASSIVE_TRACER  #ifdef ALLOW_PASSIVE_TRACER
146    ceh3 needs an IF ( usePASSIVE_TRACER ) THEN
147          CALL WRITE_FLD_XYZ_RL( 'TR1.',suff,tr1,myIter,myThid)          CALL WRITE_FLD_XYZ_RL( 'TR1.',suff,tr1,myIter,myThid)
148  #endif  #endif
149  #ifdef ALLOW_NONHYDROSTATIC  #ifdef ALLOW_NONHYDROSTATIC
# Line 146  C         transfer analyse a particular Line 152  C         transfer analyse a particular
152          ENDIF          ENDIF
153  #endif /* ALLOW_NONHYDROSTATIC */  #endif /* ALLOW_NONHYDROSTATIC */
154  #ifdef NONLIN_FRSURF  #ifdef NONLIN_FRSURF
155          CALL WRITE_FLD_XYZ_RS('hFacC.',suff,hFacC,myIter,myThid)  c       CALL WRITE_FLD_XYZ_RS('hFacC.',suff,hFacC,myIter,myThid)
156          CALL WRITE_FLD_XYZ_RS('hFacW.',suff,hFacW,myIter,myThid)  c       CALL WRITE_FLD_XYZ_RS('hFacW.',suff,hFacW,myIter,myThid)
157          CALL WRITE_FLD_XYZ_RS('hFacS.',suff,hFacS,myIter,myThid)  c       CALL WRITE_FLD_XYZ_RS('hFacS.',suff,hFacS,myIter,myThid)
158  #endif /* NONLIN_FRSURF */  #endif /* NONLIN_FRSURF */
159    
160  #endif /* MULTIPLE_RECORD_STATE_FILES */  #endif /* MULTIPLE_RECORD_STATE_FILES */
# Line 159  C         transfer analyse a particular Line 165  C         transfer analyse a particular
165           _END_MASTER( myThid )           _END_MASTER( myThid )
166           _BARRIER           _BARRIER
167    
168    #ifdef ALLOW_MNC
169          IF (useMNC) THEN
170    C       Write dynvars using the MNC package
171            mnc_iter = myIter
172            CALL MNC_CW_SET_UDIM('state', -1, myThid)
173            CALL MNC_CW_RL_W('D','state',0,0,'iter',mnc_iter, myThid)
174            CALL MNC_CW_SET_UDIM('state', 0, myThid)
175            CALL MNC_CW_RL_W('D','state',0,0,'model_time',myTime, myThid)
176            CALL MNC_CW_RL_W('D','state',0,0,'U', uVel, myThid)
177            CALL MNC_CW_RL_W('D','state',0,0,'V', vVel, myThid)
178            CALL MNC_CW_RL_W('D','state',0,0,'T', theta, myThid)
179            CALL MNC_CW_RL_W('D','state',0,0,'S', salt, myThid)
180            CALL MNC_CW_RL_W('D','state',0,0,'Eta', etaN, myThid)
181            CALL MNC_CW_RL_W('D','state',0,0,'W', wVel, myThid)
182            IF ( useDynP_inEos_Zc .OR. myIter.NE.nIter0 ) THEN
183              CALL MNC_CW_SET_UDIM('phiHyd', -1, myThid)
184              CALL MNC_CW_RL_W('R','phiHyd',0,0,'iter',mnc_iter,myThid)
185              CALL MNC_CW_SET_UDIM('phiHyd', 0, myThid)
186              CALL MNC_CW_RL_W('D','phiHyd',0,0,'phiHyd',
187         &         totPhiHyd, myThid)
188            ENDIF
189            IF ((buoyancyRelation .NE. 'ATMOSPHERIC')
190         &       .AND. (myIter .NE. nIter0)) THEN
191              CALL MNC_CW_SET_UDIM('phiHydLow', -1, myThid)
192              CALL MNC_CW_RL_W('D','phiHydLow',0,0,'iter',mnc_iter,myThid)
193              CALL MNC_CW_SET_UDIM('phiHydLow', 0, myThid)
194              CALL MNC_CW_RL_W('D','phiHydLow',0,0,'phiHydLow',
195         &         phiHydLow, myThid)
196            ENDIF
197    #ifdef ALLOW_PASSIVE_TRACER
198            CALL MNC_CW_RL_W('D','state',0,0,'tr1', tr1, myThid)
199    #endif /*  ALLOW_PASSIVE_TRACER  */
200    #ifdef ALLOW_NONHYDROSTATIC
201            IF (nonHydroStatic) THEN
202              CALL MNC_CW_RL_W('D','state',0,0,'phi_nh', phi_nh, myThid)
203            ENDIF
204    #endif /* ALLOW_NONHYDROSTATIC */
205          ENDIF
206    #endif /*  ALLOW_MNC  */
207    
208        ENDIF        ENDIF
209    
210        RETURN        RETURN

Legend:
Removed from v.1.21  
changed lines
  Added in v.1.40

  ViewVC Help
Powered by ViewVC 1.1.22