/[MITgcm]/MITgcm/pkg/thsice/thsice_ini_vars.F
ViewVC logotype

Diff of /MITgcm/pkg/thsice/thsice_ini_vars.F

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

revision 1.1 by jmc, Sun Nov 23 01:20:13 2003 UTC revision 1.12 by dimitri, Thu May 22 01:59:51 2008 UTC
# Line 2  C $Header$ Line 2  C $Header$
2  C $Name$  C $Name$
3    
4  #include "THSICE_OPTIONS.h"  #include "THSICE_OPTIONS.h"
5    #ifdef ALLOW_AIM
6    # include "AIM_OPTIONS.h"
7    #endif
8    
9  CStartOfInterface  CBOP
10    C     !ROUTINE: THSICE_INI_VARS
11    C     !INTERFACE:
12        SUBROUTINE THSICE_INI_VARS( myThid )        SUBROUTINE THSICE_INI_VARS( myThid )
13    
14    C     !DESCRIPTION: \bv
15  C     *==========================================================*  C     *==========================================================*
16  C     | SUBROUTINE THSICE_INI_VARS  C     | S/R THSICE_INI_VARS
17  C     | o initialize THermo_SeaICE variables  C     | o initialize THermo_SeaICE variables
18  C     *==========================================================*  C     *==========================================================*
19    C     \ev
20    
21    C     !USES:
22        IMPLICIT NONE        IMPLICIT NONE
23    
24  C     === Global variables ===  C     === Global variables ===
25  #include "SIZE.h"  #include "SIZE.h"
26  #include "EEPARAMS.h"  #include "EEPARAMS.h"
27  #include "PARAMS.h"  #include "PARAMS.h"
28  #include "GRID.h"  #include "FFIELDS.h"
29  #include "DYNVARS.h"  #include "DYNVARS.h"
30  #include "THSICE_PARAMS.h"  #include "THSICE_PARAMS.h"
31  #include "THSICE.h"  #include "THSICE_VARS.h"
32    #ifdef ALLOW_AIM
33    # include "AIM_FFIELDS.h"
34    #endif
35    
36    C     !INPUT/OUTPUT PARAMETERS:
37  C     == Routine arguments ==  C     == Routine arguments ==
38  C     myThid -  Number of this instance of INI_RBCS  C     myThid :: My Thread Id. number
39        INTEGER myThid        INTEGER myThid
40  CEndOfInterface  CEOP
41    
42  #ifdef ALLOW_THSICE  #ifdef ALLOW_THSICE
43  C     == Local variables ==  C     == Local variables ==
44  C     bi,bj  - Loop counters  C     bi,bj  :: Loop counters
45  C     I,J  C     i,j    :: Loop counters
46        INTEGER bi, bj        INTEGER bi, bj
47        INTEGER I, J        INTEGER i, j
48        INTEGER prec        INTEGER prec
49        CHARACTER*(MAX_LEN_FNAM) fn  c     CHARACTER*(MAX_LEN_FNAM) fn
50          _RL v2Loc
51    
52    
53  c     set up ice arrays to zero if starting ice  c     set up ice arrays to zero if starting ice
54          DO bj = myByLo(myThid), myByHi(myThid)        DO bj = myByLo(myThid), myByHi(myThid)
55           DO bi = myBxLo(myThid), myBxHi(myThid)          DO bi = myBxLo(myThid), myBxHi(myThid)
56            DO J=1-Oly,sNy+Oly  C-        state variables :
57             DO I=1-Olx,sNx+Olx            DO j=1-OLy,sNy+OLy
58              iceMask(i,j,bi,bj)=0. _d 0             DO i=1-OLx,sNx+OLx
59              iceHeight(i,j,bi,bj)=0. _d 0              iceMask(i,j,bi,bj)  = 0. _d 0
60                iceHeight(i,j,bi,bj)= 0. _d 0
61              snowHeight(i,j,bi,bj)=0. _d 0              snowHeight(i,j,bi,bj)=0. _d 0
62              Tsrf(i,j,bi,bj)=theta(i,j,1,bi,bj)              Tsrf(i,j,bi,bj)     = 0. _d 0
63              Tice1(i,j,bi,bj)=0. _d 0              Tice1(i,j,bi,bj)    = 0. _d 0
64              Tice2(i,j,bi,bj)=0. _d 0              Tice2(i,j,bi,bj)    = 0. _d 0
65              Qice1(i,j,bi,bj)=0. _d 0              Qice1(i,j,bi,bj)    = 0. _d 0
66              Qice2(i,j,bi,bj)=0. _d 0              Qice2(i,j,bi,bj)    = 0. _d 0
67              sage(i,j,bi,bj)=0. _d 0              snowAge(i,j,bi,bj)  = 0. _d 0
 #ifdef COUPLE_MODEL  
             dFdT(i,j,bi,bj)=0. _d 0  
 #endif  
             snow(i,j,bi,bj)=0. _d 0  
68             ENDDO             ENDDO
69            ENDDO            ENDDO
70           ENDDO  C-        fluxes :
71              DO j=1-OLy,sNy+OLy
72               DO i=1-OLx,sNx+OLx
73                sHeating(i,j,bi,bj) = 0. _d 0
74                flxCndBt(i,j,bi,bj) = 0. _d 0
75                snowPrc(i,j,bi,bj)  = 0. _d 0
76                siceAlb(i,j,bi,bj)  = 0. _d 0
77                icFlxSW (i,j,bi,bj) = 0. _d 0
78                icFlxAtm(i,j,bi,bj) = 0. _d 0
79                icFrwAtm(i,j,bi,bj) = 0. _d 0
80    C-        needed when using advection/diffusion:
81                oceFWfx(i,j,bi,bj)  = 0. _d 0
82                oceSflx(i,j,bi,bj)  = 0. _d 0
83                oceQnet(i,j,bi,bj)  = 0. _d 0
84               ENDDO
85              ENDDO
86    C-        oceanic mixed layer state :
87              v2Loc = vMxL_default*vMxL_default
88              DO j=1-OLy,sNy+OLy
89               DO i=1-OLx,sNx+OLx
90                 hOceMxL(i,j,bi,bj) = hMxL_default
91                 tOceMxL(i,j,bi,bj) = 0. _d 0
92                 sOceMxL(i,j,bi,bj) = sMxL_default
93                 v2ocMxL(i,j,bi,bj) = v2Loc
94               ENDDO
95              ENDDO
96    #ifdef ALLOW_AIM
97              IF ( useAIM ) THEN
98    C-        Mask mixed layer depth : depth is used in thsice slab_ocean
99    C         and this mask is used in thsice_advdiff and if coupled
100               DO j=1-OLy,sNy+OLy
101                DO i=1-OLx,sNx+OLx
102                 IF ( aim_landFr(i,j,bi,bj).EQ.1. _d 0 )
103         &       hOceMxL(i,j,bi,bj) = 0.
104                ENDDO
105               ENDDO
106              ENDIF
107    #endif /* ALLOW_AIM */
108          ENDDO          ENDDO
109          ENDDO
110    
111    C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
112    
113        IF ( startIceModel.NE.1 .AND. nIter0.NE.0 ) THEN        IF ( startIceModel.LE.0 .AND. nIter0.NE.0 ) THEN
114  C--     Read ice pickup fields  C--     Read ice pickup fields
115         _BARRIER         _BARRIER
116          prec=precFloat64          prec=precFloat64
117          CALL THSICE_READ_CHECKPOINT( prec, nIter0, myThid )          CALL THSICE_READ_PICKUP( prec, nIter0, myThid )
118    
119          _EXCH_XY_R8(iceMask, myThid)        ELSE
120          _EXCH_XY_R8(iceHeight, myThid)  C--     Read initial conditions:
121          _EXCH_XY_R8(snowHeight, myThid)          _BEGIN_MASTER( myThid )
122          _EXCH_XY_R8(Tsrf, myThid)          IF ( thSIceThick_InitFile .NE. ' ' ) THEN
123          _EXCH_XY_R8(Tice1, myThid)           CALL READ_REC_XY_RL(thSIceThick_InitFile,iceHeight,1,0,myThid)
124          _EXCH_XY_R8(Tice2, myThid)          ENDIF
125          _EXCH_XY_R8(Qice1, myThid)          IF ( thSIceFract_InitFile .NE. ' ' ) THEN
126          _EXCH_XY_R8(Qice2, myThid)           CALL READ_REC_XY_RL(thSIceFract_InitFile,iceMask,1,0,myThid)
127  #ifdef COUPLE_MODEL          ELSE
128          _EXCH_XY_R8(dFdT, myThid)           DO bj = myByLo(myThid), myByHi(myThid)
129  #endif            DO bi = myBxLo(myThid), myBxHi(myThid)
130               DO j=1-OLy,sNy+OLy
131                DO i=1-OLx,sNx+OLx
132                 IF (iceHeight(i,j,bi,bj) .NE. 0. _d 0)
133         &            iceMask(i,j,bi,bj) = 1. _d 0
134                ENDDO
135               ENDDO
136              ENDDO
137             ENDDO
138            ENDIF
139            IF ( thSIceSnowH_InitFile .NE. ' ' ) THEN
140             CALL READ_REC_XY_RL(thSIceSnowH_InitFile,snowHeight,1,0,myThid)
141            ELSE
142             DO bj = myByLo(myThid), myByHi(myThid)
143              DO bi = myBxLo(myThid), myBxHi(myThid)
144               DO j=1-OLy,sNy+OLy
145                DO i=1-OLx,sNx+OLx
146                 snowHeight(i,j,bi,bj) = 0.2 _d 0 * iceMask(i,j,bi,bj)
147                ENDDO
148               ENDDO
149              ENDDO
150             ENDDO
151            ENDIF
152            IF ( thSIceSnowA_InitFile .NE. ' ' ) THEN
153             CALL READ_REC_XY_RL(thSIceSnowA_InitFile,snowAge,1,0,myThid)
154            ELSE
155             DO bj = myByLo(myThid), myByHi(myThid)
156              DO bi = myBxLo(myThid), myBxHi(myThid)
157               DO j=1-OLy,sNy+OLy
158                DO i=1-OLx,sNx+OLx
159                 IF (snowHeight(i,j,bi,bj) .NE. 0. _d 0)
160         &            snowAge(i,j,bi,bj) = 259200. _d 0
161                ENDDO
162               ENDDO
163              ENDDO
164             ENDDO
165            ENDIF
166            IF ( thSIceEnthp_InitFile .NE. ' ' ) THEN
167             CALL READ_REC_XY_RL(thSIceEnthp_InitFile,Qice1,1,0,myThid)
168             CALL READ_REC_XY_RL(thSIceEnthp_InitFile,Qice2,2,0,myThid)
169            ELSE
170             DO bj = myByLo(myThid), myByHi(myThid)
171              DO bi = myBxLo(myThid), myBxHi(myThid)
172               DO j=1-OLy,sNy+OLy
173                DO i=1-OLx,sNx+OLx
174                 IF (iceMask(i,j,bi,bj) .NE. 0. _d 0) THEN
175                  Qice1(i,j,bi,bj) = 3.4 _d 5
176                  Qice2(i,j,bi,bj) = 3.4 _d 5
177                 ENDIF
178                ENDDO
179               ENDDO
180              ENDDO
181             ENDDO
182            ENDIF
183            IF ( thSIceTsurf_InitFile .NE. ' ' ) THEN
184             CALL READ_REC_XY_RS(thSIceTsurf_InitFile,Tsrf,1,0,myThid)
185            ENDIF
186            _END_MASTER(myThid)
187        ENDIF        ENDIF
188    
189            _EXCH_XY_R8(iceMask,myThid)
190            _EXCH_XY_R8(iceHeight, myThid)
191            _EXCH_XY_R8(snowHeight,myThid)
192            _EXCH_XY_R8(Tsrf,   myThid)
193            _EXCH_XY_R8(Tice1,  myThid)
194            _EXCH_XY_R8(Tice2,  myThid)
195            _EXCH_XY_R8(Qice1,  myThid)
196            _EXCH_XY_R8(Qice2,  myThid)
197            _EXCH_XY_R8(snowAge,myThid)
198    
199    C--     Initialise Sea-Ice Loading for SeaIce-Dynamics :
200            IF ( useSEAICE ) THEN
201              DO bj = myByLo(myThid), myByHi(myThid)
202               DO bi = myBxLo(myThid), myBxHi(myThid)
203                DO j=1-OLy,sNy+OLy
204                 DO i=1-OLx,sNx+OLx
205                   sIceLoad(i,j,bi,bj) = ( snowHeight(i,j,bi,bj)*rhos
206         &                               + iceHeight(i,j,bi,bj)*rhoi
207         &                               )*iceMask(i,j,bi,bj)
208                 ENDDO
209                ENDDO
210               ENDDO
211              ENDDO
212            ENDIF
213    
214  #endif /* ALLOW_THSICE */  #endif /* ALLOW_THSICE */
215    
216        RETURN        RETURN

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.12

  ViewVC Help
Powered by ViewVC 1.1.22