/[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.10 - (show annotations) (download)
Fri Apr 27 15:50:40 2007 UTC (17 years ago) by jmc
Branch: MAIN
CVS Tags: checkpoint59e, checkpoint59d, checkpoint59f, checkpoint59a, checkpoint59c, checkpoint59b
Changes since 1.9: +1 -3 lines
make pLoad & sIceLoad always available (but still only used if
      ATMOSPHERIC_LOADING is #define).

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

  ViewVC Help
Powered by ViewVC 1.1.22