38 |
|
|
39 |
|
|
40 |
CStartofinterface |
CStartofinterface |
41 |
SUBROUTINE WRITE_STATE ( forceOutput, myCurrentTime, |
SUBROUTINE WRITE_STATE ( myCurrentTime, myIter, myThid ) |
|
& myIter, myThid ) |
|
42 |
C /==========================================================\ |
C /==========================================================\ |
43 |
C | SUBROUTINE WRITE_STATE | |
C | SUBROUTINE WRITE_STATE | |
44 |
C | o Controlling routine for IO to dump model state. | |
C | o Controlling routine for IO to dump model state. | |
53 |
#include "EEPARAMS.h" |
#include "EEPARAMS.h" |
54 |
#include "PARAMS.h" |
#include "PARAMS.h" |
55 |
#include "DYNVARS.h" |
#include "DYNVARS.h" |
|
#include "CG2D.h" |
|
|
#ifdef ALLOW_NONHYDROSTATIC |
|
|
#include "CG3D.h" |
|
|
#include "GW.h" |
|
|
#endif |
|
56 |
|
|
57 |
LOGICAL DIFFERENT_MULTIPLE |
LOGICAL DIFFERENT_MULTIPLE |
58 |
EXTERNAL DIFFERENT_MULTIPLE |
EXTERNAL DIFFERENT_MULTIPLE |
63 |
C myThid - Thread number for this instance of the routine. |
C myThid - Thread number for this instance of the routine. |
64 |
C myIter - Iteration number |
C myIter - Iteration number |
65 |
C myCurrentTime - Current time of simulation ( s ) |
C myCurrentTime - Current time of simulation ( s ) |
|
LOGICAL forceOutput |
|
66 |
_RL myCurrentTime |
_RL myCurrentTime |
67 |
INTEGER myThid |
INTEGER myThid |
68 |
INTEGER myIter |
INTEGER myIter |
73 |
INTEGER iRec |
INTEGER iRec |
74 |
|
|
75 |
IF ( |
IF ( |
76 |
& ( DIFFERENT_MULTIPLE(dumpFreq,myCurrentTime, |
& DIFFERENT_MULTIPLE(dumpFreq,myCurrentTime, |
77 |
& myCurrentTime-deltaTClock) .AND. myCurrentTime.NE.endTime ) |
& myCurrentTime-deltaTClock) .OR. |
78 |
& .OR. forceOutput |
& myCurrentTime.EQ.endTime .OR. |
79 |
|
& myCurrentTime.EQ.startTime |
80 |
& ) THEN |
& ) THEN |
81 |
iRec = int ( (myCurrentTime-startTime) / dumpFreq +1.5 ) |
iRec = int ( (myCurrentTime-startTime) / dumpFreq +1.5 ) |
82 |
|
|
92 |
CALL WRITE_REC_XYZ_RL( 'V', vVel,iRec,myIter,myThid) |
CALL WRITE_REC_XYZ_RL( 'V', vVel,iRec,myIter,myThid) |
93 |
CALL WRITE_REC_XYZ_RL( 'T', theta,iRec,myIter,myThid) |
CALL WRITE_REC_XYZ_RL( 'T', theta,iRec,myIter,myThid) |
94 |
CALL WRITE_REC_XYZ_RL( 'S', salt,iRec,myIter,myThid) |
CALL WRITE_REC_XYZ_RL( 'S', salt,iRec,myIter,myThid) |
95 |
CALL WRITE_REC_XY_RL ('PS',cg2d_x,iRec,myIter,myThid) |
CALL WRITE_REC_XY_RL('Eta',etaN,iRec,myIter,myThid) |
96 |
CALL WRITE_REC_XYZ_RL( 'W',wVel,iRec,myIter,myThid) |
CALL WRITE_REC_XYZ_RL( 'W',wVel,iRec,myIter,myThid) |
97 |
#ifdef ALLOW_NONHYDROSTATIC |
#ifdef ALLOW_NONHYDROSTATIC |
98 |
IF (nonHydroStatic) THEN |
IF (nonHydroStatic) THEN |
99 |
CALL WRITE_REC_XYZ_RL( 'PNH',cg3d_x,iRec,myIter,myThid) |
CALL WRITE_REC_XYZ_RL( 'PNH',phi_nh,iRec,myIter,myThid) |
100 |
ENDIF |
ENDIF |
101 |
#endif /* ALLOW_NONHYDROSTATIC */ |
#endif /* ALLOW_NONHYDROSTATIC */ |
102 |
#else |
#else |
108 |
CALL WRITE_FLD_XYZ_RL( 'V.',suff,vVel,myIter,myThid) |
CALL WRITE_FLD_XYZ_RL( 'V.',suff,vVel,myIter,myThid) |
109 |
CALL WRITE_FLD_XYZ_RL( 'T.',suff,theta,myIter,myThid) |
CALL WRITE_FLD_XYZ_RL( 'T.',suff,theta,myIter,myThid) |
110 |
CALL WRITE_FLD_XYZ_RL( 'S.',suff,salt,myIter,myThid) |
CALL WRITE_FLD_XYZ_RL( 'S.',suff,salt,myIter,myThid) |
111 |
CALL WRITE_FLD_XY_RL( 'PS.',suff,cg2d_x,myIter,myThid) |
CALL WRITE_FLD_XY_RL('Eta.',suff,etaN,myIter,myThid) |
112 |
CALL WRITE_FLD_XYZ_RL( 'W.',suff,wVel,myIter,myThid) |
CALL WRITE_FLD_XYZ_RL( 'W.',suff,wVel,myIter,myThid) |
113 |
#ifdef ALLOW_NONHYDROSTATIC |
#ifdef ALLOW_NONHYDROSTATIC |
114 |
IF (nonHydroStatic) THEN |
IF (nonHydroStatic) THEN |
115 |
CALL WRITE_FLD_XYZ_RL( 'PNH.',suff,cg3d_x,myIter,myThid) |
CALL WRITE_FLD_XYZ_RL( 'PNH.',suff,phi_nh,myIter,myThid) |
116 |
ENDIF |
ENDIF |
117 |
#endif /* ALLOW_NONHYDROSTATIC */ |
#endif /* ALLOW_NONHYDROSTATIC */ |
118 |
#endif /* MULTIPLE_RECORD_STATE_FILES */ |
#endif /* MULTIPLE_RECORD_STATE_FILES */ |