/[MITgcm]/MITgcm_contrib/dgoldberg/streamice/streamice_init_fixed.F
ViewVC logotype

Contents of /MITgcm_contrib/dgoldberg/streamice/streamice_init_fixed.F

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


Revision 1.1 - (show annotations) (download)
Thu Mar 29 15:59:21 2012 UTC (13 years, 3 months ago) by heimbach
Branch: MAIN
Initial check-in of Dan Goldberg's streamice package

1 C $Header: /u/gcmpack/MITgcm/pkg/streamice/streamice_init_fixed.F,v 1.2 2006/08/07 21:13:52 dng Exp $
2 C $Name: $
3
4 #include "STREAMICE_OPTIONS.h"
5
6 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
7 CBOP 0
8 C !ROUTINE: STREAMICE_INIT_FIXED
9
10 C !INTERFACE:
11 SUBROUTINE STREAMICE_INIT_FIXED( myThid )
12
13 C !DESCRIPTION:
14 C Initialize STREAMICE variables that are kept fixed during the run.
15
16 C !USES:
17 IMPLICIT NONE
18 #include "EEPARAMS.h"
19 #include "SIZE.h"
20 #include "PARAMS.h"
21 #include "STREAMICE.h"
22 #include "STREAMICE_CG.h"
23 #include "STREAMICE_BDRY.h"
24 #include "GRID.h"
25
26 C myThid :: my Thread Id number
27 INTEGER myThid
28 CEOP
29
30 C !LOCAL VARIABLES:
31 C === Local variables ===
32 INTEGER bi, bj, i, j, Gi, Gj
33 _RL x, y
34 CHARACTER*(MAX_LEN_MBUF) msgBuf
35
36 #ifdef ALLOW_STREAMICE
37
38 #ifdef ALLOW_MNC
39
40 IF ( useMNC .AND. (streamice_tave_mnc.OR.streamice_dump_mnc)
41 & ) THEN
42 C CALL STREAMICE_MNC_INIT( myThid )
43 ENDIF
44 #endif /* ALLOW_MNC */
45
46 #ifdef ALLOW_DIAGNOSTICS
47 IF ( useDiagnostics ) THEN
48 CALL STREAMICE_INIT_DIAGNOSTICS( myThid )
49 ENDIF
50 #endif
51
52 IF ( STREAMICE_calve_to_mask ) THEN
53 IF ( STREAMICEcalveMaskFile .NE. ' ') THEN
54 _BARRIER
55 C The 0 is the "iteration" argument. The ' ' is an empty suffix
56 CALL READ_FLD_XY_RL( STREAMICEcalveMaskFile, ' ',
57 & STREAMICE_calve_mask, 0, myThid )
58 ELSE
59 WRITE(msgBuf,'(A)') 'INIT CALVE MASK - NOT IMPLENTED'
60 CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
61 & SQUEEZE_RIGHT , 1)
62 ENDIF
63 ENDIF
64
65 C- fill in the overlap (+ BARRIER):
66 _EXCH_XY_RL(STREAMICE_calve_mask, myThid )
67
68 DO bj = myByLo(myThid), myByHi(myThid)
69 DO bi = myBxLo(myThid), myBxHi(myThid)
70 DO j=1,sNy
71 DO i=1,sNx
72
73 C INIT VALUES FOR METRIC TERMS
74
75 k1AtC_str(i,j,bi,bj) = recip_rA(i,j,bi,bj) *
76 & (dxG(i+1,j,bi,bj)-dxG(i,j,bi,bj))
77 k2AtC_str(i,j,bi,bj) = recip_rA(i,j,bi,bj) *
78 & (dyG(i,j+1,bi,bj)-dyG(i,j,bi,bj))
79
80 C INIT BDRY CONDITIONS
81
82 Gi = (myXGlobalLo-1)+(bi-1)*sNx+i
83 Gj = (myYGlobalLo-1)+(bj-1)*sNy+j
84 x = xC(i,j,bi,bj)
85 y = yC(i,j,bi,bj)
86
87 STREAMICE_ufacemask_bdry (i,j,bi,bj) = -1.0
88 STREAMICE_vfacemask_bdry (i,j,bi,bj) = -1.0
89
90 IF (Gi .EQ. 1) THEN
91 C INITIALIZE BOUNDARY CONDS AT WEST
92 IF ((y .gt. min_y_noflow_WEST) .AND.
93 & (y .le. max_y_noflow_WEST)) THEN
94 STREAMICE_ufacemask_bdry (i,j,bi,bj) = 0.0
95 ENDIF
96 IF ((y .gt. min_y_noStress_WEST) .AND.
97 & (y .le. max_y_noStress_WEST)) THEN
98 STREAMICE_ufacemask_bdry (i,j,bi,bj) = 1.0
99 ENDIF
100 IF ((y .gt. min_y_FluxBdry_WEST) .AND.
101 & (y .le. max_y_FluxBdry_WEST)) THEN
102 STREAMICE_ufacemask_bdry (i,j,bi,bj) = 4.0
103 u_flux_bdry_SI (i,j,bi,bj) = flux_bdry_val_WEST
104 ENDIF
105 IF ((y .gt. min_y_Dirich_WEST) .AND.
106 & (y .le. max_y_Dirich_WEST)) THEN
107 STREAMICE_ufacemask_bdry (i,j,bi,bj) = 3.0
108 u_bdry_values_SI (i,j,bi,bj) = 0.0
109 ENDIF
110 IF ((y .gt. min_y_CFBC_WEST) .AND.
111 & (y .le. max_y_CFBC_WEST)) THEN
112 STREAMICE_ufacemask_bdry (i,j,bi,bj) = 2.0
113 ENDIF
114 ENDIF
115
116 IF (Gi .EQ. Nx) THEN
117 C INITIALIZE BOUNDARY CONDS AT EAST
118 IF ((y .gt. min_y_noflow_EAST) .AND.
119 & (y .le. max_y_noflow_EAST)) THEN
120 STREAMICE_ufacemask_bdry (i,j,bi,bj) = 0.0
121 ENDIF
122 IF ((y .gt. min_y_noStress_EAST) .AND.
123 & (y .le. max_y_noStress_EAST)) THEN
124 STREAMICE_ufacemask_bdry (i,j,bi,bj) = 1.0
125 ENDIF
126 IF ((y .gt. min_y_FluxBdry_EAST) .AND.
127 & (y .le. max_y_FluxBdry_EAST)) THEN
128 STREAMICE_ufacemask_bdry (i,j,bi,bj) = 4.0
129 u_flux_bdry_SI (i,j,bi,bj) = flux_bdry_val_EAST
130 ENDIF
131 IF ((y .gt. min_y_Dirich_EAST) .AND.
132 & (y .le. max_y_Dirich_EAST)) THEN
133 STREAMICE_ufacemask_bdry (i,j,bi,bj) = 3.0
134 u_bdry_values_SI (i,j,bi,bj) = 0. _d 0
135 ENDIF
136 IF ((y .gt. min_y_CFBC_EAST) .AND.
137 & (y .le. max_y_CFBC_EAST)) THEN
138 STREAMICE_ufacemask_bdry (i,j,bi,bj) = 2.0
139 ENDIF
140 ENDIF
141
142 IF (Gj .EQ. 1) THEN
143 C INITIALIZE BOUNDARY CONDS AT SOUTH
144 IF ((x .gt. min_x_noflow_SOUTH) .AND.
145 & (x .le. max_x_noflow_SOUTH)) THEN
146 STREAMICE_vfacemask_bdry (i,j,bi,bj) = 0.0
147 ENDIF
148 IF ((x .gt. min_x_noStress_SOUTH) .AND.
149 & (x .le. max_x_noStress_SOUTH)) THEN
150 STREAMICE_vfacemask_bdry (i,j,bi,bj) = 1.0
151 ENDIF
152 IF ((x .gt. min_x_FluxBdry_SOUTH) .AND.
153 & (x .le. max_x_FluxBdry_SOUTH)) THEN
154 STREAMICE_vfacemask_bdry (i,j,bi,bj) = 4.0
155 u_flux_bdry_SI (i,j,bi,bj) = flux_bdry_val_SOUTH
156 ENDIF
157 IF ((x .gt. min_x_Dirich_SOUTH) .AND.
158 & (x .le. max_x_Dirich_SOUTH)) THEN
159 STREAMICE_vfacemask_bdry (i,j,bi,bj) = 3.0
160 u_bdry_values_SI (i,j,bi,bj) = 0. _d 0
161 ENDIF
162 IF ((x .gt. min_x_CFBC_SOUTH) .AND.
163 & (x .le. max_x_CFBC_SOUTH)) THEN
164 STREAMICE_vfacemask_bdry (i,j,bi,bj) = 2.0
165 ENDIF
166 ENDIF
167
168 IF (Gj .EQ. Ny) THEN
169 C INITIALIZE BOUNDARY CONDS AT NORTH
170 IF ((x .gt. min_x_noflow_NORTH) .AND.
171 & (x .le. max_x_noflow_NORTH)) THEN
172 STREAMICE_vfacemask_bdry (i,j,bi,bj) = 0. _d 0
173 ENDIF
174 IF ((x .gt. min_x_noStress_NORTH) .AND.
175 & (x .le. max_x_noStress_NORTH)) THEN
176 STREAMICE_vfacemask_bdry (i,j,bi,bj) = 1.0
177 ENDIF
178 IF ((x .gt. min_x_FluxBdry_NORTH) .AND.
179 & (x .le. max_x_FluxBdry_NORTH)) THEN
180 STREAMICE_vfacemask_bdry (i,j,bi,bj) = 4.0
181 v_flux_bdry_SI (i,j,bi,bj) = flux_bdry_val_NORTH
182 ENDIF
183 IF ((x .gt. min_x_Dirich_NORTH) .AND.
184 & (x .le. max_x_Dirich_NORTH)) THEN
185 STREAMICE_vfacemask_bdry (i,j,bi,bj) = 3.0
186 v_bdry_values_SI (i,j,bi,bj) = 0. _d 0
187 ENDIF
188 IF ((x .gt. min_x_CFBC_NORTH) .AND.
189 & (x .le. max_x_CFBC_NORTH)) THEN
190 STREAMICE_vfacemask_bdry (i,j,bi,bj) = 2.0
191 ENDIF
192 ENDIF
193
194 ENDDO
195 ENDDO
196 ENDDO
197 ENDDO
198
199 _EXCH_XY_RL(k1AtC_str, myThid )
200 _EXCH_XY_RL(k2AtC_str, myThid )
201 _EXCH_XY_RL(STREAMICE_ufacemask_bdry, myThid )
202 _EXCH_XY_RL(STREAMICE_vfacemask_bdry, myThid )
203 _EXCH_XY_RL(u_bdry_values_SI, myThid )
204 _EXCH_XY_RL(v_bdry_values_SI, myThid )
205 _EXCH_XY_RL(u_flux_bdry_SI, myThid )
206 _EXCH_XY_RL(v_flux_bdry_SI, myThid )
207
208 Xquad (1) = .5 * (1.-1./sqrt(3.))
209 Xquad (2) = .5 * (1.+1./sqrt(3.))
210
211 CALL STREAMICE_INIT_PHI( myThid )
212
213
214
215 #endif
216
217 RETURN
218 END
219

  ViewVC Help
Powered by ViewVC 1.1.22