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

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

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


Revision 1.10 - (show annotations) (download)
Thu Oct 9 04:19:20 2003 UTC (20 years, 7 months ago) by edhill
Branch: MAIN
CVS Tags: checkpoint51k_post, checkpoint51l_post, checkpoint51n_pre, checkpoint51i_post, checkpoint51l_pre, checkpoint51m_post
Branch point for: tg2-branch
Changes since 1.9: +2 -1 lines
 o first check-in for the "branch-genmake2" merge
 o verification suite as run on shelley (gcc 3.2.2):

Wed Oct  8 23:42:29 EDT 2003
                T           S           U           V
G D M    c        m  s        m  s        m  s        m  s
E p a R  g  m  m  e  .  m  m  e  .  m  m  e  .  m  m  e  .
N n k u  2  i  a  a  d  i  a  a  d  i  a  a  d  i  a  a  d
2 d e n  d  n  x  n  .  n  x  n  .  n  x  n  .  n  x  n  .

OPTFILE=NONE

Y Y Y Y 13 16 16 16  0 16 16 16 16 16 16 16 16 13 12  0  0 pass  adjustment.128x64x1
Y Y Y Y 16 16 16 16  0 16 16 16 16 16 16  0  0 16 16  0  0 pass  adjustment.cs-32x32x1
Y Y Y Y 16 16 16 16  0 16 16 16 16 16 16 22  0 16 16 22  0 pass  adjust_nlfs.cs-32x32x1
Y Y Y Y -- 13 13 16 16 13 13 13 13 16 16 16 16 16 16 16 16 N/O   advect_cs
Y Y Y Y -- 22 16 16 16 16 16 16 13 16 16 16 16 16 16 16 16 N/O   advect_xy
Y Y Y Y -- 13 16 13 16 16 16 16 16 16 16 22 16 16 16 16 16 N/O   advect_xz
Y Y Y Y 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 pass  aim.5l_cs
Y Y Y Y 14 16 16 16 16 16 16 16 16 13 16 16 16 16 16 13 16 pass  aim.5l_Equatorial_Channel
Y Y Y Y 16 16 16 16 16 16 16 16 16 16 16 13 16 16 13 13 16 pass  aim.5l_LatLon
Y Y Y Y 13 16 16 16 16 16 16 16 16 16 13 12 13 13 16 13 16 pass  exp0
Y Y Y Y 14 16 16 16 16 16 16 16 22 16 16 16 13 16 16 22 16 pass  exp1
Y Y Y Y 13 13 16 13 16 16 16 16 16 13 13 16 16 13 13 13 13 pass  exp2
Y Y Y Y 16 16 16 16 16 16 16 16 22 16 16 16 16 16 16 16 16 pass  exp4
Y Y Y Y 16 16 16 16 16 16 16 16 16 16 16 22 16 16 16 22 16 pass  exp5
Y Y Y Y 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 16 pass  front_relax
Y Y Y Y 14 16 16 13 13 16 16 13 13 16 13 13 16 12 13 13 16 pass  global_ocean.90x40x15
Y Y Y Y 10 16 16 13 13 16 13 16 16 13 13 13 13 16 16 13 16 FAIL  global_ocean.cs32x15
Y Y Y Y  6 11 12 13 13 12 13 16 13  9  9  9  9 10  9  9 11 FAIL  global_ocean_pressure
Y Y Y Y 14 16 16 13 16 16 16 13 13 13 13 13 16 12 16 13 16 pass  global_with_exf
Y Y Y Y 14 16 16 16 16 16 16 16 16 11 13 22 13 16 16  9 16 pass  hs94.128x64x5
Y Y Y Y 13 16 16 16 16 16 16 16 16 11 16 16 16 13 16 22 13 pass  hs94.1x64x5
Y Y Y Y 14 16 16 16 16 16 16 16 16 13 16 13 13 16 16 22 13 pass  hs94.cs-32x32x5
Y Y Y Y 10 10 16 13 13 16 16 16 22 16 13 13 13 13 13 22 13 FAIL  ideal_2D_oce
Y Y Y Y  8 16 16 16 16 16 16 16 16 13 13  8 16 16 16 16 16 FAIL  internal_wave
Y Y Y Y 14 16 16 16 16 16 16 16 16 13 13 22 13 13 13 22 16 pass  inverted_barometer
Y Y Y Y 12 16 16 16 16 16 16 16 16 16 13 12 13 13 13 13 13 FAIL  lab_sea
Y Y Y Y 11 16 16 16 16 16 16 16 13 13 13 12 13 16 13 12 13 FAIL  natl_box
Y Y Y Y 16 16 16 16 16 16 16 16 22 16 16 16 16 16 16 16 16 pass  plume_on_slope
Y Y Y Y 13 16 16 16 16 13 16 16 16 16 16 16 16 13 16 16 16 pass  solid-body.cs-32x32x1

1 C $Header: /u/u3/gcmpack/MITgcm/pkg/seaice/seaice_init.F,v 1.9.2.1 2003/10/02 18:18:34 adcroft Exp $
2 C $Name: $
3
4 #include "SEAICE_OPTIONS.h"
5
6 CStartOfInterface
7 SUBROUTINE SEAICE_INIT( myThid )
8 C /==========================================================\
9 C | SUBROUTINE SEAICE_INIT |
10 C | o Initialization of sea ice model. |
11 C |==========================================================|
12 C \==========================================================/
13 IMPLICIT NONE
14
15 C === Global variables ===
16 #include "SIZE.h"
17 #include "EEPARAMS.h"
18 #include "PARAMS.h"
19 #include "GRID.h"
20 #include "SEAICE.h"
21 #include "SEAICE_GRID.h"
22 #include "SEAICE_DIAGS.h"
23 #include "SEAICE_PARAMS.h"
24 #include "SEAICE_EXTERNAL.h"
25
26 #ifdef ALLOW_COST
27 # include "cost.h"
28 #endif
29
30 C === Routine arguments ===
31 C myThid - Thread no. that called this routine.
32 INTEGER myThid
33 CEndOfInterface
34
35 #ifdef ALLOW_SEAICE
36 C === Local variables ===
37 C i,j,k,bi,bj - Loop counters
38
39 INTEGER i, j, k, bi, bj
40 _RS mask_uice
41 INTEGER myIter
42
43 #ifdef ALLOW_TIMEAVE
44 C Initialize averages to zero
45 DO bj = myByLo(myThid), myByHi(myThid)
46 DO bi = myBxLo(myThid), myBxHi(myThid)
47 CALL TIMEAVE_RESET(FUtave ,1,bi,bj,myThid)
48 CALL TIMEAVE_RESET(FVtave ,1,bi,bj,myThid)
49 CALL TIMEAVE_RESET(EmPmRtave,1,bi,bj,myThid)
50 CALL TIMEAVE_RESET(QNETtave ,1,bi,bj,myThid)
51 CALL TIMEAVE_RESET(QSWtave ,1,bi,bj,myThid)
52 CALL TIMEAVE_RESET(UICEtave ,1,bi,bj,myThid)
53 CALL TIMEAVE_RESET(VICEtave ,1,bi,bj,myThid)
54 CALL TIMEAVE_RESET(HEFFtave ,1,bi,bj,myThid)
55 CALL TIMEAVE_RESET(AREAtave ,1,bi,bj,myThid)
56 DO k=1,Nr
57 SEAICE_TimeAve(k,bi,bj)=ZERO
58 ENDDO
59 ENDDO
60 ENDDO
61 #endif /* ALLOW_TIMEAVE */
62
63 cph(
64 cph make sure TAF sees proper initialisation
65 cph to avoid partial recomputation issues
66 DO bj=myByLo(myThid),myByHi(myThid)
67 DO bi=myBxLo(myThid),myBxHi(myThid)
68 c
69 DO K=1,3
70 DO J=1,sNy
71 DO I=1,sNx
72 HEFF(I,J,k,bi,bj)=SEAICE_initialHEFF
73 AREA(I,J,k,bi,bj)=ZERO
74 UICE(I,J,k,bi,bj)=ZERO
75 VICE(I,J,k,bi,bj)=ZERO
76 ENDDO
77 ENDDO
78 ENDDO
79 c
80 DO J=1,sNy
81 DO I=1,sNx
82 HSNOW(I,J,bi,bj)=0.2 _d 0
83 ZETA(I,J,bi,bj)=ZERO
84 ENDDO
85 ENDDO
86 c
87 ENDDO
88 ENDDO
89 cph)
90
91
92 C--- initialize grid info
93 DO bj=myByLo(myThid),myByHi(myThid)
94 DO bi=myBxLo(myThid),myBxHi(myThid)
95 DO J=1,sNy
96 DO I=1,sNx
97 CSTICE(i,j,bi,bj) =cos(yC(I,J,bi,bj)*deg2rad)
98 CSUICE(i,j,bi,bj) =cos(yG(I,J,bi,bj)*deg2rad)
99 SINEICE(i,j,bi,bj)=sin(yC(I,J,bi,bj)*deg2rad)
100 TNGTICE(i,j,bi,bj)=SINEICE(i,j,bi,bj)/CSTICE(i,j,bi,bj)
101 SINEICE(i,j,bi,bj)=sin(yG(I,J,bi,bj)*deg2rad)
102 TNGICE(i,j,bi,bj) =SINEICE(i,j,bi,bj)/CSUICE(i,j,bi,bj)
103 DXTICE(i,j,bi,bj)=dxF(i,j,bi,bj)/CSTICE(i,j,bi,bj)
104 DXUICE(i,j,bi,bj)=dxV(i,j,bi,bj)/CSUICE(i,j,bi,bj)
105 DYTICE(i,j,bi,bj)=dyF(i,j,bi,bj)
106 DYUICE(i,j,bi,bj)=dyU(i,j,bi,bj)
107 ENDDO
108 ENDDO
109
110 DO j=1-OLy,sNy+OLy
111 DO i=1-OLx,sNx+OLx
112 HEFFM(i,j,bi,bj)=ONE
113 IF (_hFacC(i,j,1,bi,bj).eq.0.) HEFFM(i,j,bi,bj)=ZERO
114 ENDDO
115 ENDDO
116 DO J=1,sNy
117 DO I=1,sNx
118 UVM(i,j,bi,bj)=ZERO
119 mask_uice=HEFFM(I,J, bi,bj)+HEFFM(I-1,J-1,bi,bj)
120 & +HEFFM(I,J-1,bi,bj)+HEFFM(I-1,J, bi,bj)
121 IF(mask_uice.GT.3.5) UVM(I,J,bi,bj)=ONE
122 ENDDO
123 ENDDO
124
125 DO j=1-OLy,sNy+OLy
126 DO i=1-OLx,sNx+OLx
127 TICE(I,J,bi,bj)=273.0 _d 0
128 #ifdef SEAICE_MULTILEVEL
129 DO k=1,7
130 TICES(I,J,k,bi,bj)=273.0 _d 0
131 ENDDO
132 #endif
133 UICEC(I,J,bi,bj)=ZERO
134 VICEC(I,J,bi,bj)=ZERO
135 AMASS(I,J,bi,bj)=1000.0 _d 0
136 ENDDO
137 ENDDO
138 ENDDO
139 ENDDO
140
141 C-- Update overlap regions
142 _EXCH_XY_R8(UVM, myThid)
143 _EXCH_XY_R8(TNGTICE, myThid)
144 _EXCH_XY_R8(TNGICE, myThid)
145 _EXCH_XY_R8(CSTICE, myThid)
146 _EXCH_XY_R8(CSUICE, myThid)
147 _EXCH_XY_R8(SINEICE, myThid)
148 _EXCH_XY_R8(DXTICE, myThid)
149 _EXCH_XY_R8(DXUICE, myThid)
150 _EXCH_XY_R8(DYTICE, myThid)
151 _EXCH_XY_R8(DYUICE, myThid)
152
153 myIter=0
154 CALL PLOT_FIELD_XYRL( CSTICE , 'Current CSTICE ' ,
155 & myIter, myThid )
156 CALL PLOT_FIELD_XYRL( CSUICE , 'Current CSUICE ' ,
157 & myIter, myThid )
158 CALL PLOT_FIELD_XYRL( TNGTICE , 'Current TNGTICE ' ,
159 & myIter, myThid )
160 CALL PLOT_FIELD_XYRL( TNGICE , 'Current TNGICE ' ,
161 & myIter, myThid )
162 CALL PLOT_FIELD_XYRL( SINEICE , 'Current SINEICE ' ,
163 & myIter, myThid )
164 CALL PLOT_FIELD_XYRL( DXTICE , 'Current DXTICE ' ,
165 & myIter, myThid )
166 CALL PLOT_FIELD_XYRL( DXUICE , 'Current DXUICE ' ,
167 & myIter, myThid )
168 CALL PLOT_FIELD_XYRL( DYTICE , 'Current DYTICE ' ,
169 & myIter, myThid )
170 CALL PLOT_FIELD_XYRL( DYUICE , 'Current DYUICE ' ,
171 & myIter, myThid )
172 CALL PLOT_FIELD_XYRL( HEFFM , 'Current HEFFM ' ,
173 & myIter, myThid )
174 CALL PLOT_FIELD_XYRL( UVM , 'Current UVM ' ,
175 & myIter, myThid )
176
177 C-- Set model variables to initial/restart conditions
178 IF ( nIter0 .NE. 0 ) THEN
179 CALL SEAICE_READ_PICKUP ( myThid )
180 ELSE
181 DO bj=myByLo(myThid),myByHi(myThid)
182 DO bi=myBxLo(myThid),myBxHi(myThid)
183 DO j=1-OLy,sNy+OLy
184 DO i=1-OLx,sNx+OLx
185 HSNOW(I,J,bi,bj)=0.2 _d 0
186 YNEG(I,J,bi,bj)=ZERO
187 TMIX(I,J,bi,bj)=TICE(I,J,bi,bj)
188 DO k=1,3
189 HEFF(I,J,k,bi,bj)=SEAICE_initialHEFF
190 AREA(I,J,k,bi,bj)=HEFFM(i,j,bi,bj)
191 UICE(I,J,k,bi,bj)=ZERO
192 VICE(I,J,k,bi,bj)=ZERO
193 ENDDO
194 ENDDO
195 ENDDO
196 ENDDO
197 ENDDO
198 ENDIF
199
200 C-- Read initial sea-ice thickness from file if available.
201 IF ( HeffFile .NE. ' ' ) THEN
202 _BEGIN_MASTER( myThid )
203 CALL READ_FLD_XY_RL( HeffFile, ' ', ZETA, 0, myThid )
204 _END_MASTER(myThid)
205 _EXCH_XY_R8(ZETA,myThid)
206 DO bj=myByLo(myThid),myByHi(myThid)
207 DO bi=myBxLo(myThid),myBxHi(myThid)
208 DO j=1-OLy,sNy+OLy
209 DO i=1-OLx,sNx+OLx
210 DO k=1,3
211 HEFF(I,J,k,bi,bj) = MAX(ZETA(i,j,bi,bj),ZERO)
212 IF ( ZETA(i,j,bi,bj).EQ.ZERO )
213 & AREA(I,J,k,bi,bj) = ZERO
214 ENDDO
215 ENDDO
216 ENDDO
217 ENDDO
218 ENDDO
219 ENDIF
220
221 C--- Complete initialization
222 DO bj=myByLo(myThid),myByHi(myThid)
223 DO bi=myBxLo(myThid),myBxHi(myThid)
224 DO j=1-OLy,sNy+OLy
225 DO i=1-OLx,sNx+OLx
226 ZETA(I,J,bi,bj)=HEFF(I,J,1,bi,bj)*(1.0 _d 11)
227 ETA(I,J,bi,bj)=ZETA(I,J,bi,bj)/4.0 _d 0
228 surfaceTendencyTice(i,j,bi,bj) = ZERO
229 ENDDO
230 ENDDO
231 ENDDO
232 ENDDO
233
234 #endif /* ALLOW_SEAICE */
235
236 RETURN
237 END

  ViewVC Help
Powered by ViewVC 1.1.22