3 |
|
|
4 |
#include "THSICE_OPTIONS.h" |
#include "THSICE_OPTIONS.h" |
5 |
|
|
6 |
CStartOfInterface |
CBOP |
7 |
|
C !ROUTINE: THSICE_INI_VARS |
8 |
|
C !INTERFACE: |
9 |
SUBROUTINE THSICE_INI_VARS( myThid ) |
SUBROUTINE THSICE_INI_VARS( myThid ) |
10 |
|
|
11 |
|
C !DESCRIPTION: \bv |
12 |
C *==========================================================* |
C *==========================================================* |
13 |
C | SUBROUTINE THSICE_INI_VARS |
C | S/R THSICE_INI_VARS |
14 |
C | o initialize THermo_SeaICE variables |
C | o initialize THermo_SeaICE variables |
15 |
C *==========================================================* |
C *==========================================================* |
16 |
|
C \ev |
17 |
|
|
18 |
|
C !USES: |
19 |
IMPLICIT NONE |
IMPLICIT NONE |
20 |
|
|
21 |
C === Global variables === |
C === Global variables === |
23 |
#include "EEPARAMS.h" |
#include "EEPARAMS.h" |
24 |
#include "PARAMS.h" |
#include "PARAMS.h" |
25 |
#include "GRID.h" |
#include "GRID.h" |
26 |
#include "DYNVARS.h" |
c #include "DYNVARS.h" |
27 |
#include "THSICE_PARAMS.h" |
#include "THSICE_PARAMS.h" |
28 |
#include "THSICE.h" |
#include "THSICE_VARS.h" |
29 |
|
|
30 |
|
C !INPUT/OUTPUT PARAMETERS: |
31 |
C == Routine arguments == |
C == Routine arguments == |
32 |
C myThid - Number of this instance of INI_RBCS |
C myThid - Number of this instance of INI_RBCS |
33 |
INTEGER myThid |
INTEGER myThid |
34 |
CEndOfInterface |
CEOP |
35 |
|
|
36 |
#ifdef ALLOW_THSICE |
#ifdef ALLOW_THSICE |
37 |
C == Local variables == |
C == Local variables == |
38 |
C bi,bj - Loop counters |
C bi,bj :: Loop counters |
39 |
C I,J |
C i,j :: Loop counters |
40 |
INTEGER bi, bj |
INTEGER bi, bj |
41 |
INTEGER I, J |
INTEGER I, J |
42 |
INTEGER prec |
INTEGER prec |
43 |
CHARACTER*(MAX_LEN_FNAM) fn |
CHARACTER*(MAX_LEN_FNAM) fn |
44 |
|
_RL v2Loc |
45 |
|
|
46 |
|
|
47 |
c set up ice arrays to zero if starting ice |
c set up ice arrays to zero if starting ice |
48 |
DO bj = myByLo(myThid), myByHi(myThid) |
DO bj = myByLo(myThid), myByHi(myThid) |
49 |
DO bi = myBxLo(myThid), myBxHi(myThid) |
DO bi = myBxLo(myThid), myBxHi(myThid) |
50 |
DO J=1-Oly,sNy+Oly |
C- state variables : |
51 |
DO I=1-Olx,sNx+Olx |
DO j=1-Oly,sNy+Oly |
52 |
iceMask(i,j,bi,bj)=0. _d 0 |
DO i=1-Olx,sNx+Olx |
53 |
iceHeight(i,j,bi,bj)=0. _d 0 |
iceMask(i,j,bi,bj) = 0. _d 0 |
54 |
|
iceHeight(i,j,bi,bj)= 0. _d 0 |
55 |
snowHeight(i,j,bi,bj)=0. _d 0 |
snowHeight(i,j,bi,bj)=0. _d 0 |
56 |
Tsrf(i,j,bi,bj)=theta(i,j,1,bi,bj) |
Tsrf(i,j,bi,bj) = 0. _d 0 |
57 |
Tice1(i,j,bi,bj)=0. _d 0 |
Tice1(i,j,bi,bj) = 0. _d 0 |
58 |
Tice2(i,j,bi,bj)=0. _d 0 |
Tice2(i,j,bi,bj) = 0. _d 0 |
59 |
Qice1(i,j,bi,bj)=0. _d 0 |
Qice1(i,j,bi,bj) = 0. _d 0 |
60 |
Qice2(i,j,bi,bj)=0. _d 0 |
Qice2(i,j,bi,bj) = 0. _d 0 |
61 |
sage(i,j,bi,bj)=0. _d 0 |
snowAge(i,j,bi,bj) = 0. _d 0 |
62 |
|
ENDDO |
63 |
|
ENDDO |
64 |
|
C- fluxes : |
65 |
|
DO j=1-Oly,sNy+Oly |
66 |
|
DO i=1-Olx,sNx+Olx |
67 |
|
sHeating(i,j,bi,bj) = 0. _d 0 |
68 |
|
flxCndBt(i,j,bi,bj) = 0. _d 0 |
69 |
|
snowPrc(i,j,bi,bj) = 0. _d 0 |
70 |
#ifdef COUPLE_MODEL |
#ifdef COUPLE_MODEL |
71 |
dFdT(i,j,bi,bj)=0. _d 0 |
dFdT(i,j,bi,bj) = 0. _d 0 |
72 |
#endif |
#endif |
73 |
snow(i,j,bi,bj)=0. _d 0 |
ENDDO |
74 |
|
ENDDO |
75 |
|
C- oceanic mixed layer state : |
76 |
|
v2Loc = vMxL_default*vMxL_default |
77 |
|
DO j=1-Oly,sNy+Oly |
78 |
|
DO i=1-Olx,sNx+Olx |
79 |
|
hOceMxL(i,j,bi,bj) = hMxL_default |
80 |
|
tOceMxL(i,j,bi,bj) = 0. _d 0 |
81 |
|
sOceMxL(i,j,bi,bj) = sMxL_default |
82 |
|
v2ocMxL(i,j,bi,bj) = v2Loc |
83 |
ENDDO |
ENDDO |
84 |
ENDDO |
ENDDO |
85 |
ENDDO |
ENDDO |
86 |
ENDDO |
ENDDO |
87 |
|
|
88 |
IF ( startIceModel.NE.1 .AND. nIter0.NE.0 ) THEN |
IF ( startIceModel.LE.0 .AND. nIter0.NE.0 ) THEN |
89 |
C-- Read ice pickup fields |
C-- Read ice pickup fields |
90 |
_BARRIER |
_BARRIER |
91 |
prec=precFloat64 |
prec=precFloat64 |
92 |
CALL THSICE_READ_CHECKPOINT( prec, nIter0, myThid ) |
CALL THSICE_READ_PICKUP( prec, nIter0, myThid ) |
93 |
|
|
94 |
_EXCH_XY_R8(iceMask, myThid) |
_EXCH_XY_R8(iceMask,myThid) |
95 |
_EXCH_XY_R8(iceHeight, myThid) |
_EXCH_XY_R8(iceHeight, myThid) |
96 |
_EXCH_XY_R8(snowHeight, myThid) |
_EXCH_XY_R8(snowHeight,myThid) |
97 |
_EXCH_XY_R8(Tsrf, myThid) |
_EXCH_XY_R8(Tsrf, myThid) |
98 |
_EXCH_XY_R8(Tice1, myThid) |
_EXCH_XY_R8(Tice1, myThid) |
99 |
_EXCH_XY_R8(Tice2, myThid) |
_EXCH_XY_R8(Tice2, myThid) |
100 |
_EXCH_XY_R8(Qice1, myThid) |
_EXCH_XY_R8(Qice1, myThid) |
101 |
_EXCH_XY_R8(Qice2, myThid) |
_EXCH_XY_R8(Qice2, myThid) |
102 |
|
_EXCH_XY_R8(snowAge,myThid) |
103 |
#ifdef COUPLE_MODEL |
#ifdef COUPLE_MODEL |
104 |
_EXCH_XY_R8(dFdT, myThid) |
_EXCH_XY_R8(dFdT, myThid) |
105 |
#endif |
#endif |