/[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.11 - (show annotations) (download)
Tue Mar 21 12:56:28 2006 UTC (18 years, 3 months ago) by mlosch
Branch: MAIN
CVS Tags: checkpoint58e_post, checkpoint58g_post, checkpoint58h_post, checkpoint58f_post, checkpoint58d_post, checkpoint58c_post
Changes since 1.10: +3 -1 lines
bug fix: enclose exchange of stress components seaice_sigma?? in ifdefs

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

  ViewVC Help
Powered by ViewVC 1.1.22