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

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

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


Revision 1.11 - (show annotations) (download)
Thu Aug 30 15:02:51 2007 UTC (16 years, 8 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint59q, checkpoint59p, checkpoint59g, checkpoint59m, checkpoint59l, checkpoint59o, checkpoint59n, checkpoint59i, checkpoint59h, checkpoint59k, checkpoint59j
Changes since 1.10: +2 -6 lines
cleaning: move common block out of "THSICE_2DYN.h" (removed) to "THSICE_VARS.h"

1 C $Header: /u/gcmpack/MITgcm/pkg/thsice/thsice_ini_vars.F,v 1.10 2007/04/27 15:50:40 jmc Exp $
2 C $Name: $
3
4 #include "THSICE_OPTIONS.h"
5 #ifdef ALLOW_AIM
6 # include "AIM_OPTIONS.h"
7 #endif
8
9 CBOP
10 C !ROUTINE: THSICE_INI_VARS
11 C !INTERFACE:
12 SUBROUTINE THSICE_INI_VARS( myThid )
13
14 C !DESCRIPTION: \bv
15 C *==========================================================*
16 C | S/R THSICE_INI_VARS
17 C | o initialize THermo_SeaICE variables
18 C *==========================================================*
19 C \ev
20
21 C !USES:
22 IMPLICIT NONE
23
24 C === Global variables ===
25 #include "SIZE.h"
26 #include "EEPARAMS.h"
27 #include "PARAMS.h"
28 #include "FFIELDS.h"
29 #include "THSICE_PARAMS.h"
30 #include "THSICE_VARS.h"
31 #ifdef ALLOW_AIM
32 # include "AIM_FFIELDS.h"
33 #endif
34
35 C !INPUT/OUTPUT PARAMETERS:
36 C == Routine arguments ==
37 C myThid :: My Thread Id. number
38 INTEGER myThid
39 CEOP
40
41 #ifdef ALLOW_THSICE
42 C == Local variables ==
43 C bi,bj :: Loop counters
44 C i,j :: Loop counters
45 INTEGER bi, bj
46 INTEGER i, j
47 INTEGER prec
48 c CHARACTER*(MAX_LEN_FNAM) fn
49 _RL v2Loc
50
51
52 c set up ice arrays to zero if starting ice
53 DO bj = myByLo(myThid), myByHi(myThid)
54 DO bi = myBxLo(myThid), myBxHi(myThid)
55 C- state variables :
56 DO j=1-OLy,sNy+OLy
57 DO i=1-OLx,sNx+OLx
58 iceMask(i,j,bi,bj) = 0. _d 0
59 iceHeight(i,j,bi,bj)= 0. _d 0
60 snowHeight(i,j,bi,bj)=0. _d 0
61 Tsrf(i,j,bi,bj) = 0. _d 0
62 Tice1(i,j,bi,bj) = 0. _d 0
63 Tice2(i,j,bi,bj) = 0. _d 0
64 Qice1(i,j,bi,bj) = 0. _d 0
65 Qice2(i,j,bi,bj) = 0. _d 0
66 snowAge(i,j,bi,bj) = 0. _d 0
67 ENDDO
68 ENDDO
69 C- fluxes :
70 DO j=1-OLy,sNy+OLy
71 DO i=1-OLx,sNx+OLx
72 sHeating(i,j,bi,bj) = 0. _d 0
73 flxCndBt(i,j,bi,bj) = 0. _d 0
74 snowPrc(i,j,bi,bj) = 0. _d 0
75 siceAlb(i,j,bi,bj) = 0. _d 0
76 icFlxSW (i,j,bi,bj) = 0. _d 0
77 icFlxAtm(i,j,bi,bj) = 0. _d 0
78 icFrwAtm(i,j,bi,bj) = 0. _d 0
79 C- needed when using advection/diffusion:
80 oceFWfx(i,j,bi,bj) = 0. _d 0
81 oceSflx(i,j,bi,bj) = 0. _d 0
82 oceQnet(i,j,bi,bj) = 0. _d 0
83 ENDDO
84 ENDDO
85 C- oceanic mixed layer state :
86 v2Loc = vMxL_default*vMxL_default
87 DO j=1-OLy,sNy+OLy
88 DO i=1-OLx,sNx+OLx
89 hOceMxL(i,j,bi,bj) = hMxL_default
90 tOceMxL(i,j,bi,bj) = 0. _d 0
91 sOceMxL(i,j,bi,bj) = sMxL_default
92 v2ocMxL(i,j,bi,bj) = v2Loc
93 ENDDO
94 ENDDO
95 #ifdef ALLOW_AIM
96 IF ( useAIM ) THEN
97 C- Mask mixed layer depth : depth is used in thsice slab_ocean
98 C and this mask is used in thsice_advdiff and if coupled
99 DO j=1-OLy,sNy+OLy
100 DO i=1-OLx,sNx+OLx
101 IF ( aim_landFr(i,j,bi,bj).EQ.1. _d 0 )
102 & hOceMxL(i,j,bi,bj) = 0.
103 ENDDO
104 ENDDO
105 ENDIF
106 #endif /* ALLOW_AIM */
107 ENDDO
108 ENDDO
109
110 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
111
112 IF ( startIceModel.LE.0 .AND. nIter0.NE.0 ) THEN
113 C-- Read ice pickup fields
114 _BARRIER
115 prec=precFloat64
116 CALL THSICE_READ_PICKUP( prec, nIter0, myThid )
117
118 ELSE
119 C-- Read initial conditions:
120 _BEGIN_MASTER( myThid )
121 IF ( thSIceFract_InitFile .NE. ' ' ) THEN
122 CALL READ_REC_XY_RL(thSIceFract_InitFile,iceMask,1,0,myThid)
123 ENDIF
124 IF ( thSIceThick_InitFile .NE. ' ' ) THEN
125 CALL READ_REC_XY_RL(thSIceThick_InitFile,iceHeight,1,0,myThid)
126 ENDIF
127 IF ( thSIceSnowH_InitFile .NE. ' ' ) THEN
128 CALL READ_REC_XY_RL(thSIceSnowH_InitFile,snowHeight,1,0,myThid)
129 ENDIF
130 IF ( thSIceSnowA_InitFile .NE. ' ' ) THEN
131 CALL READ_REC_XY_RL(thSIceSnowA_InitFile,snowAge,1,0,myThid)
132 ENDIF
133 IF ( thSIceEnthp_InitFile .NE. ' ' ) THEN
134 CALL READ_REC_XY_RL(thSIceEnthp_InitFile,Qice1,1,0,myThid)
135 CALL READ_REC_XY_RL(thSIceEnthp_InitFile,Qice2,2,0,myThid)
136 ENDIF
137 IF ( thSIceTsurf_InitFile .NE. ' ' ) THEN
138 CALL READ_REC_XY_RS(thSIceTsurf_InitFile,Tsrf,1,0,myThid)
139 ENDIF
140 _END_MASTER(myThid)
141 ENDIF
142
143 _EXCH_XY_R8(iceMask,myThid)
144 _EXCH_XY_R8(iceHeight, myThid)
145 _EXCH_XY_R8(snowHeight,myThid)
146 _EXCH_XY_R8(Tsrf, myThid)
147 _EXCH_XY_R8(Tice1, myThid)
148 _EXCH_XY_R8(Tice2, myThid)
149 _EXCH_XY_R8(Qice1, myThid)
150 _EXCH_XY_R8(Qice2, myThid)
151 _EXCH_XY_R8(snowAge,myThid)
152
153 C-- Initialise Sea-Ice Loading for SeaIce-Dynamics :
154 IF ( useSEAICE ) THEN
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 sIceLoad(i,j,bi,bj) = ( snowHeight(i,j,bi,bj)*rhos
160 & + iceHeight(i,j,bi,bj)*rhoi
161 & )*iceMask(i,j,bi,bj)
162 ENDDO
163 ENDDO
164 ENDDO
165 ENDDO
166 ENDIF
167
168 #endif /* ALLOW_THSICE */
169
170 RETURN
171 END

  ViewVC Help
Powered by ViewVC 1.1.22