22 |
#include "STREAMICE_CG.h" |
#include "STREAMICE_CG.h" |
23 |
#include "STREAMICE_BDRY.h" |
#include "STREAMICE_BDRY.h" |
24 |
#include "GRID.h" |
#include "GRID.h" |
25 |
|
#ifdef ALLOW_STREAMICE_FLUX_CONTROL |
26 |
|
#include "STREAMICE_CTRL_FLUX.h" |
27 |
|
#endif |
28 |
|
|
29 |
C myThid :: my Thread Id number |
C myThid :: my Thread Id number |
30 |
INTEGER myThid |
INTEGER myThid |
145 |
IF ( STREAMICEuDirichValsFile .NE. ' ') THEN |
IF ( STREAMICEuDirichValsFile .NE. ' ') THEN |
146 |
_BARRIER |
_BARRIER |
147 |
CALL READ_FLD_XY_RL ( STREAMICEuDirichValsFile, ' ', |
CALL READ_FLD_XY_RL ( STREAMICEuDirichValsFile, ' ', |
148 |
|
#ifdef ALLOW_STREAMICE_FLUX_CONTROL |
149 |
|
& u_bdry_values_SI_base, 0, myThid ) |
150 |
|
#else |
151 |
& u_bdry_values_SI, 0, myThid ) |
& u_bdry_values_SI, 0, myThid ) |
152 |
|
#endif |
153 |
ELSE |
ELSE |
154 |
WRITE(msgBuf,'(A)') 'U DIRICH VALS - NOT SET' |
WRITE(msgBuf,'(A)') 'U DIRICH VALS - NOT SET' |
155 |
CALL PRINT_ERROR( msgBuf, myThid) |
CALL PRINT_ERROR( msgBuf, myThid) |
158 |
IF ( STREAMICEvDirichValsFile .NE. ' ') THEN |
IF ( STREAMICEvDirichValsFile .NE. ' ') THEN |
159 |
_BARRIER |
_BARRIER |
160 |
CALL READ_FLD_XY_RL ( STREAMICEvDirichValsFile, ' ', |
CALL READ_FLD_XY_RL ( STREAMICEvDirichValsFile, ' ', |
161 |
|
#ifdef ALLOW_STREAMICE_FLUX_CONTROL |
162 |
|
& v_bdry_values_SI_base, 0, myThid ) |
163 |
|
#else |
164 |
& v_bdry_values_SI, 0, myThid ) |
& v_bdry_values_SI, 0, myThid ) |
165 |
|
#endif |
166 |
ELSE |
ELSE |
167 |
WRITE(msgBuf,'(A)') 'V DIRICH VALS - NOT SET' |
WRITE(msgBuf,'(A)') 'V DIRICH VALS - NOT SET' |
168 |
CALL PRINT_ERROR( msgBuf, myThid) |
CALL PRINT_ERROR( msgBuf, myThid) |
169 |
ENDIF |
ENDIF |
170 |
|
|
171 |
|
IF ( STREAMICEHBCxFile .NE. ' ') THEN |
172 |
|
_BARRIER |
173 |
|
CALL READ_FLD_XY_RL ( STREAMICEHBCxFile, ' ', |
174 |
|
& h_ubdry_values_SI, 0, myThid ) |
175 |
|
ELSE |
176 |
|
WRITE(msgBuf,'(A)') 'THICK BC AT U FACE - NOT SET' |
177 |
|
CALL PRINT_ERROR( msgBuf, myThid) |
178 |
|
ENDIF |
179 |
|
|
180 |
|
IF ( STREAMICEHBCyFile .NE. ' ') THEN |
181 |
|
_BARRIER |
182 |
|
CALL READ_FLD_XY_RL ( STREAMICEHBCyFile, ' ', |
183 |
|
& h_vbdry_values_SI, 0, myThid ) |
184 |
|
ELSE |
185 |
|
WRITE(msgBuf,'(A)') 'THICK BC AT V FACE - NOT SET' |
186 |
|
CALL PRINT_ERROR( msgBuf, myThid) |
187 |
|
ENDIF |
188 |
|
|
189 |
|
#ifdef ALLOW_STREAMICE_2DTRACER |
190 |
|
|
191 |
|
IF ( STREAMICETrac2dBCxFile .NE. ' ') THEN |
192 |
|
_BARRIER |
193 |
|
CALL READ_FLD_XY_RL ( STREAMICETrac2dBCxFile, ' ', |
194 |
|
& trac2d_ubdry_values_SI, 0, myThid ) |
195 |
|
ELSE |
196 |
|
WRITE(msgBuf,'(A)') 'TRAC BC AT U FACE - NOT SET' |
197 |
|
CALL PRINT_ERROR( msgBuf, myThid) |
198 |
|
ENDIF |
199 |
|
|
200 |
|
IF ( STREAMICETRAC2DBCyFile .NE. ' ') THEN |
201 |
|
_BARRIER |
202 |
|
CALL READ_FLD_XY_RL ( STREAMICETrac2dBCyFile, ' ', |
203 |
|
& trac2d_vbdry_values_SI, 0, myThid ) |
204 |
|
ELSE |
205 |
|
WRITE(msgBuf,'(A)') 'TRAC BC AT V FACE - NOT SET' |
206 |
|
CALL PRINT_ERROR( msgBuf, myThid) |
207 |
|
ENDIF |
208 |
|
|
209 |
|
#endif |
210 |
|
|
211 |
|
|
212 |
! with this setup hmask is initialized here rather than in init_varia, |
! with this setup hmask is initialized here rather than in init_varia, |
213 |
! because it is needed to set no-flow boundaries, even though the field |
! because it is needed to set no-flow boundaries, even though the field |
214 |
! could potentially change due to ice shelf front advance and calving |
! could potentially change due to ice shelf front advance and calving |
242 |
ENDDO |
ENDDO |
243 |
#endif |
#endif |
244 |
|
|
245 |
#endif |
#ifdef ALLOW_STREAMICE_FLUX_CONTROL |
246 |
|
DO bj = myByLo(myThid), myByHi(myThid) |
247 |
|
DO bi = myBxLo(myThid), myBxHi(myThid) |
248 |
|
DO j=1,sNy |
249 |
|
DO i=1,sNx |
250 |
|
u_bdry_values_SI (i,j,bi,bj) = |
251 |
|
& u_bdry_values_SI_base (i,j,bi,bj) |
252 |
|
v_bdry_values_SI (i,j,bi,bj) = |
253 |
|
& v_bdry_values_SI_base (i,j,bi,bj) |
254 |
|
ENDDO |
255 |
|
ENDDO |
256 |
|
ENDDO |
257 |
|
ENDDO |
258 |
|
#endif |
259 |
|
|
260 |
|
#endif /* STREAMICE_GEOM_FILE_SETUP */ |
261 |
|
|
262 |
|
|
263 |
!!!!!!!!!!!!!!!!!!!!!!!!! |
!!!!!!!!!!!!!!!!!!!!!!!!! |
397 |
ENDIF |
ENDIF |
398 |
ENDIF |
ENDIF |
399 |
|
|
400 |
#else |
#else /* ifndef STREAMICE_GEOM_FILE_SETUP */ |
401 |
! BOUNDARIES CONFIGURED FROM FILES |
! BOUNDARY MASK CONFIGURED FROM FILES |
402 |
|
|
403 |
|
|
404 |
IF (temp_hmask(i,j,bi,bj).eq.1.0 .or. |
IF (temp_hmask(i,j,bi,bj).eq.1.0 .or. |
522 |
|
|
523 |
CALL STREAMICE_INIT_PHI( myThid ) |
CALL STREAMICE_INIT_PHI( myThid ) |
524 |
|
|
|
|
|
525 |
#endif |
#endif |
526 |
|
|
527 |
RETURN |
RETURN |