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

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

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


Revision 1.14 - (show annotations) (download)
Fri Jun 9 00:04:25 2006 UTC (18 years, 3 months 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 C $Header: /u/gcmpack/MITgcm/pkg/seaice/seaice_pickup.F,v 1.13 2006/06/08 23:57:33 mlosch Exp $
2 C $Name: $
3
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 #include "SEAICE_PARAMS.h"
26 #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 #ifdef SEAICE_MULTILEVEL
43 CALL MDSREADFIELD
44 & ( fn, precFloat64, 'RL', MULTDIM, TICES, 1, myThid )
45 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 #if (defined(SEAICE_CGRID) && defined(SEAICE_ALLOW_EVP))
52 IF ( SEAICEuseEVP .AND. SEAICEuseEVPpickup ) THEN
53 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 ENDIF
60 #endif /* SEAICE_ALLOW_EVP */
61 #else /* SEAICE_MULTILEVEL */
62 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 #if (defined(SEAICE_CGRID) && defined(SEAICE_ALLOW_EVP))
70 IF ( SEAICEuseEVP .AND. SEAICEuseEVPpickup ) THEN
71 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 ENDIF
78 #endif /* SEAICE_ALLOW_EVP */
79 #endif /* SEAICE_MULTILEVEL */
80
81 _END_MASTER( myThid )
82 _BARRIER
83
84 C-- Update overlap regions
85 CALL SEAICE_EXCH_UV ( UICE, VICE, myThid )
86 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 #if (defined(SEAICE_CGRID) && defined(SEAICE_ALLOW_EVP))
92 _EXCH_XY_R8(seaice_sigma1 , myThid )
93 _EXCH_XY_R8(seaice_sigma2 , myThid )
94 _EXCH_XY_R8(seaice_sigma12, myThid )
95 #endif /* SEAICE_CGRID SEAICE_ALLOW_EVP */
96
97 RETURN
98 END
99
100 CStartofinterface
101 SUBROUTINE SEAICE_WRITE_PICKUP (
102 I prec, lgf, permCheckPoint, myIt, myThid )
103 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 #include "SEAICE_PARAMS.h"
115 #include "SEAICE.h"
116
117 C == Routine arguments ==
118 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 C myIt - Iteration number
123 C myThid - Thread number for this instance of the routine.
124 INTEGER prec
125 LOGICAL permCheckPoint
126 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 #ifdef SEAICE_MULTILEVEL
141 CALL MDSWRITEFIELD
142 & (fn,prec,lgf,'RL', MULTDIM, TICES,1, myIt,myThid)
143 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 #if (defined(SEAICE_CGRID) && defined(SEAICE_ALLOW_EVP))
150 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 #endif /* SEAICE_ALLOW_EVP */
159 #else /* SEAICE_MULTILEVEL */
160 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 #if (defined(SEAICE_CGRID) && defined(SEAICE_ALLOW_EVP))
168 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 #endif /* SEAICE_ALLOW_EVP */
177 #endif /* SEAICE_MULTILEVEL */
178
179 RETURN
180 END

  ViewVC Help
Powered by ViewVC 1.1.22