34 |
CHARACTER*(MAX_LEN_FNAM) fn |
CHARACTER*(MAX_LEN_FNAM) fn |
35 |
INTEGER iRec |
INTEGER iRec |
36 |
|
|
|
C-- Going to do some IO. Make everyone except master thread wait. |
|
37 |
_BARRIER |
_BARRIER |
|
_BEGIN_MASTER( myThid ) |
|
38 |
|
|
39 |
C-- Read ice model fields |
C-- Read ice model fields |
40 |
WRITE(fn,'(A,I10.10)') 'pickup_seaice.',nIter0 |
WRITE(fn,'(A,I10.10)') 'pickup_seaice.',nIter0 |
75 |
CALL MDSREADFIELD(fn,precFloat64,'RL',1,HSALT,iRec,myThid) |
CALL MDSREADFIELD(fn,precFloat64,'RL',1,HSALT,iRec,myThid) |
76 |
#endif |
#endif |
77 |
|
|
|
_END_MASTER( myThid ) |
|
78 |
_BARRIER |
_BARRIER |
79 |
|
|
80 |
C-- Update overlap regions |
C-- Update overlap regions |
102 |
RETURN |
RETURN |
103 |
END |
END |
104 |
|
|
105 |
CStartofinterface |
CBOP |
106 |
SUBROUTINE SEAICE_WRITE_PICKUP ( |
C !ROUTINE: SEAICE_WRITE_PICKUP |
107 |
I prec, lgf, permCheckPoint, myIt, myThid ) |
C !INTERFACE: |
108 |
C /==========================================================\ |
SUBROUTINE SEAICE_WRITE_PICKUP ( permPickup, suff, |
109 |
|
I myTime, myIter, myThid ) |
110 |
|
|
111 |
|
C !DESCRIPTION: |
112 |
|
C *==========================================================* |
113 |
C | SUBROUTINE SEAICE_WRITE_PICKUP | |
C | SUBROUTINE SEAICE_WRITE_PICKUP | |
114 |
C | o Write sea ice pickup file for restarting. | |
C | o Write sea ice pickup file for restarting. | |
115 |
C |==========================================================| |
C *==========================================================* |
116 |
C \==========================================================/ |
C *==========================================================* |
117 |
|
|
118 |
|
C !USES: |
119 |
IMPLICIT NONE |
IMPLICIT NONE |
120 |
|
|
121 |
C == Global variables === |
C == Global variables === |
125 |
#include "SEAICE_PARAMS.h" |
#include "SEAICE_PARAMS.h" |
126 |
#include "SEAICE.h" |
#include "SEAICE.h" |
127 |
|
|
128 |
|
C !INPUT/OUTPUT PARAMETERS: |
129 |
C == Routine arguments == |
C == Routine arguments == |
130 |
C prec - Precision of pickup file ( precFloat64 ) |
C permPickup :: write a permanent pickup |
131 |
C lgf - Flag to indicate whether to use global file mode. |
C suff :: suffix for pickup file (eg. ckptA or 0000000010) |
132 |
C permCheckPoint - Flag indicating whether a permanent checkpoint |
C myTime :: Current time in simulation |
133 |
C will be written. |
C myIter :: Current iteration number in simulation |
134 |
C myIt - Iteration number |
C myThid :: My Thread Id number |
135 |
C myThid - Thread number for this instance of the routine. |
LOGICAL permPickup |
136 |
INTEGER prec |
CHARACTER*(*) suff |
137 |
LOGICAL permCheckPoint |
_RL myTime |
138 |
|
INTEGER myIter |
139 |
INTEGER myThid |
INTEGER myThid |
140 |
INTEGER myIt |
CEOP |
|
CEndofinterface |
|
141 |
|
|
142 |
C == Local variables == |
C == Local variables == |
143 |
|
C prec :: Precision of pickup file ( precFloat64 ) |
144 |
CHARACTER*(MAX_LEN_FNAM) fn |
CHARACTER*(MAX_LEN_FNAM) fn |
145 |
INTEGER iRec |
INTEGER iRec |
146 |
|
INTEGER prec |
147 |
LOGICAL lgf |
LOGICAL lgf |
148 |
|
|
149 |
C-- Write model fields |
C-- Write model fields |
150 |
IF ( permCheckPoint ) THEN |
prec = precFloat64 |
151 |
WRITE(fn,'(A,I10.10)') 'pickup_seaice.',myIt |
WRITE(fn,'(A,A)') 'pickup_seaice.',suff |
152 |
ELSE |
|
|
WRITE(fn,'(A,A)') 'pickup_seaice.',checkPtSuff(nCheckLev) |
|
|
ENDIF |
|
153 |
iRec = 1 |
iRec = 1 |
154 |
#ifdef SEAICE_MULTICATEGORY |
#ifdef SEAICE_MULTICATEGORY |
155 |
CALL MDSWRITEFIELD |
CALL WRITE_REC_3D_RL(fn,prec,MULTDIM, TICES, iRec,myIter,myThid) |
|
& (fn,prec,lgf,'RL',MULTDIM,TICES,iRec,myIt,myThid) |
|
156 |
iRec = iRec + MULTDIM |
iRec = iRec + MULTDIM |
157 |
#else |
#else |
158 |
CALL MDSWRITEFIELD(fn,prec,lgf,'RL',1,TICE,iRec,myIt,myThid) |
CALL WRITE_REC_3D_RL( fn, prec, 1, TICE , iRec, myIter, myThid ) |
159 |
iRec = iRec + 1 |
iRec = iRec + 1 |
160 |
#endif /* SEAICE_MULTICATEGORY */ |
#endif /* SEAICE_MULTICATEGORY */ |
161 |
CALL MDSWRITEFIELD(fn,prec,lgf,'RL',1,YNEG,iRec,myIt,myThid) |
CALL WRITE_REC_3D_RL( fn, prec, 1, YNEG , iRec, myIter, myThid ) |
162 |
iRec = iRec + 1 |
iRec = iRec + 1 |
163 |
CALL MDSWRITEFIELD(fn,prec,lgf,'RL',1,HSNOW,iRec,myIt,myThid) |
CALL WRITE_REC_3D_RL( fn, prec, 1, HSNOW, iRec, myIter, myThid ) |
164 |
iRec = int((iRec+3)/3) |
iRec = int((iRec+3)/3) |
165 |
CALL MDSWRITEFIELD(fn,prec,lgf,'RL',3,UICE,iRec,myIt,myThid) |
CALL WRITE_REC_3D_RL( fn, prec, 3, UICE , iRec, myIter, myThid ) |
166 |
iRec = iRec + 1 |
iRec = iRec + 1 |
167 |
CALL MDSWRITEFIELD(fn,prec,lgf,'RL',3,VICE,iRec,myIt,myThid) |
CALL WRITE_REC_3D_RL( fn, prec, 3, VICE , iRec, myIter, myThid ) |
168 |
iRec = iRec + 1 |
iRec = iRec + 1 |
169 |
CALL MDSWRITEFIELD(fn,prec,lgf,'RL',3,HEFF,iRec,myIt,myThid) |
CALL WRITE_REC_3D_RL( fn, prec, 3, HEFF , iRec, myIter, myThid ) |
170 |
iRec = iRec + 1 |
iRec = iRec + 1 |
171 |
CALL MDSWRITEFIELD(fn,prec,lgf,'RL',3,AREA,iRec,myIt,myThid) |
CALL WRITE_REC_3D_RL( fn, prec, 3, AREA , iRec, myIter, myThid ) |
172 |
iRec = iRec * 3 + 1 |
iRec = iRec * 3 + 1 |
173 |
#if (defined(SEAICE_CGRID) && defined(SEAICE_ALLOW_EVP)) |
#if (defined(SEAICE_CGRID) && defined(SEAICE_ALLOW_EVP)) |
174 |
IF ( SEAICEuseEVP ) THEN |
IF ( SEAICEuseEVP ) THEN |
175 |
CALL MDSWRITEFIELD(fn,prec,lgf,'RL', 1, |
CALL WRITE_REC_3D_RL( fn, prec, 1, |
176 |
& seaice_sigma1,iRec,myIt,myThid) |
& seaice_sigma1, iRec, myIter, myThid ) |
177 |
iRec = iRec + 1 |
iRec = iRec + 1 |
178 |
CALL MDSWRITEFIELD(fn,prec,lgf,'RL', 1, |
CALL WRITE_REC_3D_RL( fn, prec, 1, |
179 |
& seaice_sigma2,iRec,myIt,myThid) |
& seaice_sigma2, iRec, myIter, myThid ) |
180 |
iRec = iRec + 1 |
iRec = iRec + 1 |
181 |
CALL MDSWRITEFIELD(fn,prec,lgf,'RL', 1, |
CALL WRITE_REC_3D_RL( fn, prec, 1, |
182 |
& seaice_sigma12,iRec,myIt,myThid) |
& seaice_sigma12, iRec, myIter, myThid ) |
183 |
iRec = iRec + 1 |
iRec = iRec + 1 |
184 |
ENDIF |
ENDIF |
185 |
#endif /* SEAICE_ALLOW_EVP */ |
#endif /* SEAICE_ALLOW_EVP */ |
186 |
#ifdef SEAICE_SALINITY |
#ifdef SEAICE_SALINITY |
187 |
CALL MDSWRITEFIELD(fn,prec,lgf,'RL',1,HSALT,iRec,myIt,myThid) |
CALL WRITE_REC_3D_RL( fn, prec, 1, HSALT, iRec, myIter, myThid ) |
188 |
#endif |
#endif |
189 |
|
|
190 |
RETURN |
RETURN |