/[MITgcm]/MITgcm/pkg/seaice/seaice_pickup.F
ViewVC logotype

Diff of /MITgcm/pkg/seaice/seaice_pickup.F

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

revision 1.18 by dimitri, Sat Sep 15 01:38:59 2007 UTC revision 1.19 by jmc, Fri Oct 19 03:21:39 2007 UTC
# Line 34  C     == Local variables == Line 34  C     == Local variables ==
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
# Line 77  C--    Read ice model fields Line 75  C--    Read ice model fields
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
# Line 105  cdm       CALL EXCH_3D_RL   ( TICES, MUL Line 102  cdm       CALL EXCH_3D_RL   ( TICES, MUL
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 ===
# Line 122  C     == Global variables === Line 125  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

Legend:
Removed from v.1.18  
changed lines
  Added in v.1.19

  ViewVC Help
Powered by ViewVC 1.1.22