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

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

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


Revision 1.14 - (hide annotations) (download)
Fri Jun 9 00:04:25 2006 UTC (18 years ago) by mlosch
Branch: MAIN
CVS Tags: checkpoint58l_post, checkpoint58m_post, checkpoint58r_post, checkpoint58n_post, checkpoint58j_post, checkpoint58i_post, checkpoint58o_post, checkpoint58k_post, checkpoint58p_post, checkpoint58q_post
Changes since 1.13: +2 -1 lines
o oops

1 mlosch 1.14 C $Header: /u/gcmpack/MITgcm/pkg/seaice/seaice_pickup.F,v 1.13 2006/06/08 23:57:33 mlosch Exp $
2 edhill 1.5 C $Name: $
3 heimbach 1.2
4     #include "SEAICE_OPTIONS.h"
5    
6     C-- File seaice_pickup.F: Routines to handle reading and writing
7     C-- sea ice pickup files.
8     C-- Contents
9     C-- o SEAICE_READ_PICKUP - Read sea ice pickup file for restarting.
10     C-- o SEAICE_WRITE_PICKUP - Write out sea ice pickup file.
11    
12     CStartofinterface
13     SUBROUTINE SEAICE_READ_PICKUP ( myThid )
14     C /==========================================================\
15     C | SUBROUTINE SEAICE_READ_PICKUP |
16     C | o Read in sea ice pickup file for restarting. |
17     C |==========================================================|
18     C \==========================================================/
19     IMPLICIT NONE
20    
21     C == Global variables ===
22     #include "SIZE.h"
23     #include "EEPARAMS.h"
24     #include "PARAMS.h"
25 mlosch 1.13 #include "SEAICE_PARAMS.h"
26 heimbach 1.2 #include "SEAICE.h"
27    
28     C == Routine arguments ==
29     C myThid - Thread number for this instance of the routine.
30     INTEGER myThid
31     CEndofinterface
32    
33     C == Local variables ==
34     CHARACTER*(MAX_LEN_FNAM) fn
35    
36     C-- Going to do some IO. Make everyone except master thread wait.
37     _BARRIER
38     _BEGIN_MASTER( myThid )
39    
40     C-- Read ice model fields
41     WRITE(fn,'(A,I10.10)') 'pickup_seaice.',nIter0
42 dimitri 1.4 #ifdef SEAICE_MULTILEVEL
43 heimbach 1.6 CALL MDSREADFIELD
44     & ( fn, precFloat64, 'RL', MULTDIM, TICES, 1, myThid )
45 dimitri 1.4 CALL MDSREADFIELD( fn, precFloat64, 'RL', 1, YNEG , 8, myThid )
46     CALL MDSREADFIELD( fn, precFloat64, 'RL', 1, HSNOW, 9, myThid )
47     CALL MDSREADFIELD( fn, precFloat64, 'RL', 3, UICE , 4, myThid )
48     CALL MDSREADFIELD( fn, precFloat64, 'RL', 3, VICE , 5, myThid )
49     CALL MDSREADFIELD( fn, precFloat64, 'RL', 3, HEFF , 6, myThid )
50     CALL MDSREADFIELD( fn, precFloat64, 'RL', 3, AREA , 7, myThid )
51 mlosch 1.10 #if (defined(SEAICE_CGRID) && defined(SEAICE_ALLOW_EVP))
52 dimitri 1.12 IF ( SEAICEuseEVP .AND. SEAICEuseEVPpickup ) THEN
53 mlosch 1.13 CALL MDSREADFIELD( fn, precFloat64, 'RL', 1,
54     & seaice_sigma1, 22, myThid )
55     CALL MDSREADFIELD( fn, precFloat64, 'RL', 1,
56     & seaice_sigma2, 23, myThid )
57     CALL MDSREADFIELD( fn, precFloat64, 'RL', 1,
58     & seaice_sigma12, 24, myThid )
59 dimitri 1.12 ENDIF
60 mlosch 1.10 #endif /* SEAICE_ALLOW_EVP */
61 dimitri 1.4 #else /* SEAICE_MULTILEVEL */
62 heimbach 1.2 CALL MDSREADFIELD( fn, precFloat64, 'RL', 1, TICE , 1, myThid )
63     CALL MDSREADFIELD( fn, precFloat64, 'RL', 1, YNEG , 2, myThid )
64     CALL MDSREADFIELD( fn, precFloat64, 'RL', 1, HSNOW, 3, myThid )
65     CALL MDSREADFIELD( fn, precFloat64, 'RL', 3, UICE , 2, myThid )
66     CALL MDSREADFIELD( fn, precFloat64, 'RL', 3, VICE , 3, myThid )
67     CALL MDSREADFIELD( fn, precFloat64, 'RL', 3, HEFF , 4, myThid )
68     CALL MDSREADFIELD( fn, precFloat64, 'RL', 3, AREA , 5, myThid )
69 mlosch 1.10 #if (defined(SEAICE_CGRID) && defined(SEAICE_ALLOW_EVP))
70 dimitri 1.12 IF ( SEAICEuseEVP .AND. SEAICEuseEVPpickup ) THEN
71 mlosch 1.13 CALL MDSREADFIELD( fn, precFloat64, 'RL', 1,
72     & seaice_sigma1, 16, myThid )
73     CALL MDSREADFIELD( fn, precFloat64, 'RL', 1,
74     & seaice_sigma2, 17, myThid )
75     CALL MDSREADFIELD( fn, precFloat64, 'RL', 1,
76     & seaice_sigma12, 18, myThid )
77 dimitri 1.12 ENDIF
78 mlosch 1.10 #endif /* SEAICE_ALLOW_EVP */
79 dimitri 1.4 #endif /* SEAICE_MULTILEVEL */
80 heimbach 1.2
81     _END_MASTER( myThid )
82     _BARRIER
83    
84 dimitri 1.7 C-- Update overlap regions
85     CALL SEAICE_EXCH_UV ( UICE, VICE, myThid )
86 dimitri 1.3 CALL SEAICE_EXCH ( HEFF, myThid )
87     CALL SEAICE_EXCH ( AREA, myThid )
88     _EXCH_XY_R8(TICE , myThid )
89     _EXCH_XY_R8(YNEG , myThid )
90     _EXCH_XY_R8(HSNOW, myThid )
91 mlosch 1.11 #if (defined(SEAICE_CGRID) && defined(SEAICE_ALLOW_EVP))
92 mlosch 1.10 _EXCH_XY_R8(seaice_sigma1 , myThid )
93     _EXCH_XY_R8(seaice_sigma2 , myThid )
94     _EXCH_XY_R8(seaice_sigma12, myThid )
95 mlosch 1.11 #endif /* SEAICE_CGRID SEAICE_ALLOW_EVP */
96 heimbach 1.2
97     RETURN
98     END
99    
100     CStartofinterface
101 jmc 1.8 SUBROUTINE SEAICE_WRITE_PICKUP (
102     I prec, lgf, permCheckPoint, myIt, myThid )
103 heimbach 1.2 C /==========================================================\
104     C | SUBROUTINE SEAICE_WRITE_PICKUP |
105     C | o Write sea ice pickup file for restarting. |
106     C |==========================================================|
107     C \==========================================================/
108     IMPLICIT NONE
109    
110     C == Global variables ===
111     #include "SIZE.h"
112     #include "EEPARAMS.h"
113     #include "PARAMS.h"
114 mlosch 1.14 #include "SEAICE_PARAMS.h"
115 heimbach 1.2 #include "SEAICE.h"
116    
117     C == Routine arguments ==
118 jmc 1.8 C prec - Precision of pickup file ( precFloat64 )
119     C lgf - Flag to indicate whether to use global file mode.
120     C permCheckPoint - Flag indicating whether a permanent checkpoint
121     C will be written.
122 heimbach 1.2 C myIt - Iteration number
123     C myThid - Thread number for this instance of the routine.
124 jmc 1.8 INTEGER prec
125     LOGICAL permCheckPoint
126 heimbach 1.2 INTEGER myThid
127     INTEGER myIt
128     CEndofinterface
129    
130     C == Local variables ==
131     CHARACTER*(MAX_LEN_FNAM) fn
132     LOGICAL lgf
133    
134     C-- Write model fields
135     IF ( permCheckPoint ) THEN
136     WRITE(fn,'(A,I10.10)') 'pickup_seaice.',myIt
137     ELSE
138     WRITE(fn,'(A,A)') 'pickup_seaice.',checkPtSuff(nCheckLev)
139     ENDIF
140 dimitri 1.4 #ifdef SEAICE_MULTILEVEL
141 heimbach 1.6 CALL MDSWRITEFIELD
142     & (fn,prec,lgf,'RL', MULTDIM, TICES,1, myIt,myThid)
143 dimitri 1.4 CALL MDSWRITEFIELD(fn,prec,lgf,'RL', 1, YNEG, 8, myIt,myThid)
144     CALL MDSWRITEFIELD(fn,prec,lgf,'RL', 1, HSNOW, 9, myIt,myThid)
145     CALL MDSWRITEFIELD(fn,prec,lgf,'RL', 3, UICE, 4, myIt,myThid)
146     CALL MDSWRITEFIELD(fn,prec,lgf,'RL', 3, VICE, 5, myIt,myThid)
147     CALL MDSWRITEFIELD(fn,prec,lgf,'RL', 3, HEFF, 6, myIt,myThid)
148     CALL MDSWRITEFIELD(fn,prec,lgf,'RL', 3, AREA, 7, myIt,myThid)
149 mlosch 1.10 #if (defined(SEAICE_CGRID) && defined(SEAICE_ALLOW_EVP))
150 dimitri 1.12 IF ( xSEAICEuseEVP ) THEN
151     CALL MDSWRITEFIELD(fn,prec,lgf,'RL', 1,
152     & seaice_sigma1, 22, myIt,myThid)
153     CALL MDSWRITEFIELD(fn,prec,lgf,'RL', 1,
154     & seaice_sigma2, 23, myIt,myThid)
155     CALL MDSWRITEFIELD(fn,prec,lgf,'RL', 1,
156     & seaice_sigma12, 24, myIt,myThid)
157     ENDIF
158 mlosch 1.10 #endif /* SEAICE_ALLOW_EVP */
159 dimitri 1.4 #else /* SEAICE_MULTILEVEL */
160 heimbach 1.2 CALL MDSWRITEFIELD(fn,prec,lgf,'RL', 1, TICE, 1, myIt,myThid)
161     CALL MDSWRITEFIELD(fn,prec,lgf,'RL', 1, YNEG, 2, myIt,myThid)
162     CALL MDSWRITEFIELD(fn,prec,lgf,'RL', 1, HSNOW, 3, myIt,myThid)
163     CALL MDSWRITEFIELD(fn,prec,lgf,'RL', 3, UICE, 2, myIt,myThid)
164     CALL MDSWRITEFIELD(fn,prec,lgf,'RL', 3, VICE, 3, myIt,myThid)
165     CALL MDSWRITEFIELD(fn,prec,lgf,'RL', 3, HEFF, 4, myIt,myThid)
166     CALL MDSWRITEFIELD(fn,prec,lgf,'RL', 3, AREA, 5, myIt,myThid)
167 mlosch 1.10 #if (defined(SEAICE_CGRID) && defined(SEAICE_ALLOW_EVP))
168 dimitri 1.12 IF ( SEAICEuseEVP ) THEN
169     CALL MDSWRITEFIELD(fn,prec,lgf,'RL', 1,
170     & seaice_sigma1, 16, myIt,myThid)
171     CALL MDSWRITEFIELD(fn,prec,lgf,'RL', 1,
172     & seaice_sigma2, 17, myIt,myThid)
173     CALL MDSWRITEFIELD(fn,prec,lgf,'RL', 1,
174     & seaice_sigma12, 18, myIt,myThid)
175     ENDIF
176 mlosch 1.10 #endif /* SEAICE_ALLOW_EVP */
177 dimitri 1.4 #endif /* SEAICE_MULTILEVEL */
178 heimbach 1.2
179     RETURN
180     END

  ViewVC Help
Powered by ViewVC 1.1.22