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

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

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


Revision 1.24 - (hide annotations) (download)
Fri Mar 24 23:51:14 2017 UTC (7 years, 1 month ago) by jmc
Branch: MAIN
CVS Tags: checkpoint66g, checkpoint66f, checkpoint66o, checkpoint66n, checkpoint66m, checkpoint66l, checkpoint66k, checkpoint66j, checkpoint66i, checkpoint66h, HEAD
Changes since 1.23: +2 -4 lines
use new S/R RW_GET_SUFFIX to get file suffix (according to "rwSuffixType")

1 jmc 1.24 C $Header: /u/gcmpack/MITgcm/pkg/thsice/thsice_ini_vars.F,v 1.23 2016/01/02 00:53:30 jmc Exp $
2 jmc 1.1 C $Name: $
3    
4     #include "THSICE_OPTIONS.h"
5 jmc 1.8 #ifdef ALLOW_AIM
6     # include "AIM_OPTIONS.h"
7     #endif
8 jmc 1.1
9 jmc 1.2 CBOP
10     C !ROUTINE: THSICE_INI_VARS
11     C !INTERFACE:
12 jmc 1.1 SUBROUTINE THSICE_INI_VARS( myThid )
13 jmc 1.2
14     C !DESCRIPTION: \bv
15 jmc 1.1 C *==========================================================*
16 jmc 1.2 C | S/R THSICE_INI_VARS
17 jmc 1.1 C | o initialize THermo_SeaICE variables
18     C *==========================================================*
19 jmc 1.2 C \ev
20    
21     C !USES:
22 jmc 1.1 IMPLICIT NONE
23    
24     C === Global variables ===
25     #include "SIZE.h"
26     #include "EEPARAMS.h"
27     #include "PARAMS.h"
28 jmc 1.7 #include "FFIELDS.h"
29 jmc 1.1 #include "THSICE_PARAMS.h"
30 jmc 1.2 #include "THSICE_VARS.h"
31 jmc 1.8 #ifdef ALLOW_AIM
32     # include "AIM_FFIELDS.h"
33     #endif
34 jmc 1.1
35 jmc 1.2 C !INPUT/OUTPUT PARAMETERS:
36 jmc 1.1 C == Routine arguments ==
37 jmc 1.8 C myThid :: My Thread Id. number
38 jmc 1.1 INTEGER myThid
39 jmc 1.2 CEOP
40 jmc 1.1
41     #ifdef ALLOW_THSICE
42     C == Local variables ==
43 jmc 1.2 C bi,bj :: Loop counters
44     C i,j :: Loop counters
45 jmc 1.1 INTEGER bi, bj
46 jmc 1.8 INTEGER i, j
47 jmc 1.5 c CHARACTER*(MAX_LEN_FNAM) fn
48 jmc 1.2 _RL v2Loc
49 dimitri 1.15 _RL Tf
50 jmc 1.1
51     c set up ice arrays to zero if starting ice
52 jmc 1.8 DO bj = myByLo(myThid), myByHi(myThid)
53     DO bi = myBxLo(myThid), myBxHi(myThid)
54 jmc 1.2 C- state variables :
55 jmc 1.6 DO j=1-OLy,sNy+OLy
56     DO i=1-OLx,sNx+OLx
57 jmc 1.2 iceMask(i,j,bi,bj) = 0. _d 0
58     iceHeight(i,j,bi,bj)= 0. _d 0
59 jmc 1.1 snowHeight(i,j,bi,bj)=0. _d 0
60 jmc 1.2 Tsrf(i,j,bi,bj) = 0. _d 0
61     Tice1(i,j,bi,bj) = 0. _d 0
62     Tice2(i,j,bi,bj) = 0. _d 0
63     Qice1(i,j,bi,bj) = 0. _d 0
64     Qice2(i,j,bi,bj) = 0. _d 0
65     snowAge(i,j,bi,bj) = 0. _d 0
66     ENDDO
67     ENDDO
68     C- fluxes :
69 jmc 1.6 DO j=1-OLy,sNy+OLy
70     DO i=1-OLx,sNx+OLx
71 jmc 1.2 sHeating(i,j,bi,bj) = 0. _d 0
72     flxCndBt(i,j,bi,bj) = 0. _d 0
73 jmc 1.4 siceAlb(i,j,bi,bj) = 0. _d 0
74 jmc 1.6 icFlxSW (i,j,bi,bj) = 0. _d 0
75     icFlxAtm(i,j,bi,bj) = 0. _d 0
76     icFrwAtm(i,j,bi,bj) = 0. _d 0
77 jmc 1.11 C- needed when using advection/diffusion:
78 heimbach 1.9 oceFWfx(i,j,bi,bj) = 0. _d 0
79     oceSflx(i,j,bi,bj) = 0. _d 0
80     oceQnet(i,j,bi,bj) = 0. _d 0
81 jmc 1.2 ENDDO
82     ENDDO
83     C- oceanic mixed layer state :
84     v2Loc = vMxL_default*vMxL_default
85 jmc 1.6 DO j=1-OLy,sNy+OLy
86     DO i=1-OLx,sNx+OLx
87 jmc 1.2 hOceMxL(i,j,bi,bj) = hMxL_default
88     tOceMxL(i,j,bi,bj) = 0. _d 0
89     sOceMxL(i,j,bi,bj) = sMxL_default
90     v2ocMxL(i,j,bi,bj) = v2Loc
91 jmc 1.1 ENDDO
92     ENDDO
93 jmc 1.8 #ifdef ALLOW_AIM
94     IF ( useAIM ) THEN
95     C- Mask mixed layer depth : depth is used in thsice slab_ocean
96     C and this mask is used in thsice_advdiff and if coupled
97     DO j=1-OLy,sNy+OLy
98     DO i=1-OLx,sNx+OLx
99     IF ( aim_landFr(i,j,bi,bj).EQ.1. _d 0 )
100     & hOceMxL(i,j,bi,bj) = 0.
101     ENDDO
102     ENDDO
103     ENDIF
104     #endif /* ALLOW_AIM */
105 jmc 1.1 ENDDO
106 jmc 1.8 ENDDO
107 jmc 1.21 adjustFrW = 0. _d 0
108 jmc 1.1
109 jmc 1.3 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
110    
111 jmc 1.23 #ifdef ALLOW_OCN_COMPON_INTERF
112     IF ( useCoupler .AND. thSIce_skipThermo ) RETURN
113     #endif /* ALLOW_OCN_COMPON_INTERF */
114    
115 jmc 1.19 IF ( startIceModel.LE.0 .AND.
116     & ( nIter0.NE.0 .OR. pickupSuff.NE.' ' )
117     & ) THEN
118 jmc 1.1 C-- Read ice pickup fields
119 jmc 1.24 CALL THSICE_READ_PICKUP( nIter0, myThid )
120 jmc 1.1
121 jmc 1.3 ELSE
122     C-- Read initial conditions:
123 dimitri 1.15 IF ( thSIceFract_InitFile .NE. ' ' ) THEN
124     CALL READ_REC_XY_RL(thSIceFract_InitFile,iceMask,1,0,myThid)
125     ENDIF
126 dimitri 1.12 IF ( thSIceThick_InitFile .NE. ' ' ) THEN
127     CALL READ_REC_XY_RL(thSIceThick_InitFile,iceHeight,1,0,myThid)
128     ENDIF
129 jmc 1.3 IF ( thSIceSnowH_InitFile .NE. ' ' ) THEN
130     CALL READ_REC_XY_RL(thSIceSnowH_InitFile,snowHeight,1,0,myThid)
131     ENDIF
132     IF ( thSIceSnowA_InitFile .NE. ' ' ) THEN
133     CALL READ_REC_XY_RL(thSIceSnowA_InitFile,snowAge,1,0,myThid)
134     ENDIF
135     IF ( thSIceEnthp_InitFile .NE. ' ' ) THEN
136     CALL READ_REC_XY_RL(thSIceEnthp_InitFile,Qice1,1,0,myThid)
137     CALL READ_REC_XY_RL(thSIceEnthp_InitFile,Qice2,2,0,myThid)
138 dimitri 1.15 ENDIF
139     IF ( thSIceTsurf_InitFile .NE. ' ' ) THEN
140 jmc 1.20 CALL READ_REC_XY_RL(thSIceTsurf_InitFile,Tsrf,1,0,myThid)
141 dimitri 1.15 ENDIF
142     IF ( thSIceEnthp_InitFile .EQ. ' ' ) THEN
143     C- enthalpy of new ice in J/kg, taken from thsice_extend.F with Tf beeing
144     C the freezing Temp of seawater computed from a fixed salinity (31.5 psu)
145 dimitri 1.16 C Tf = -mu_Tf*salinity = -1.70 deg C; Qice1 ~ 3.2e5; Qice2 ~ 3.4e5
146 dimitri 1.15 Tf = -1.70 _d 0
147 dimitri 1.12 DO bj = myByLo(myThid), myByHi(myThid)
148     DO bi = myBxLo(myThid), myBxHi(myThid)
149     DO j=1-OLy,sNy+OLy
150     DO i=1-OLx,sNx+OLx
151     IF (iceMask(i,j,bi,bj) .NE. 0. _d 0) THEN
152 dimitri 1.15 Qice1(i,j,bi,bj) = -cpWater*Tmlt1
153     & + cpIce *(Tmlt1-Tf) + Lfresh*(1. _d 0-Tmlt1/Tf)
154     Qice2(i,j,bi,bj) = -cpIce *Tf + Lfresh
155 dimitri 1.12 ENDIF
156     ENDDO
157     ENDDO
158     ENDDO
159     ENDDO
160 jmc 1.3 ENDIF
161     ENDIF
162    
163 jmc 1.18 _EXCH_XY_RL(iceMask,myThid)
164     _EXCH_XY_RL(iceHeight, myThid)
165     _EXCH_XY_RL(snowHeight,myThid)
166     _EXCH_XY_RL(Tsrf, myThid)
167     _EXCH_XY_RL(Tice1, myThid)
168     _EXCH_XY_RL(Tice2, myThid)
169     _EXCH_XY_RL(Qice1, myThid)
170     _EXCH_XY_RL(Qice2, myThid)
171     _EXCH_XY_RL(snowAge,myThid)
172 jmc 1.1
173 jmc 1.7 C-- Initialise Sea-Ice Loading for SeaIce-Dynamics :
174 dimitri 1.15 IF ( useSEAICE ) THEN
175     DO bj = myByLo(myThid), myByHi(myThid)
176     DO bi = myBxLo(myThid), myBxHi(myThid)
177     DO j=1-OLy,sNy+OLy
178     DO i=1-OLx,sNx+OLx
179     sIceLoad(i,j,bi,bj) = ( snowHeight(i,j,bi,bj)*rhos
180     & + iceHeight(i,j,bi,bj)*rhoi
181     & )*iceMask(i,j,bi,bj)
182 jmc 1.7 ENDDO
183 dimitri 1.15 ENDDO
184     ENDDO
185     ENDDO
186     ENDIF
187 jmc 1.7
188 jmc 1.1 #endif /* ALLOW_THSICE */
189    
190     RETURN
191     END

  ViewVC Help
Powered by ViewVC 1.1.22