/[MITgcm]/MITgcm_contrib/ksnow/press_release/code_expt/shelfice_init_varia.F
ViewVC logotype

Contents of /MITgcm_contrib/ksnow/press_release/code_expt/shelfice_init_varia.F

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


Revision 1.5 - (show annotations) (download)
Tue Jul 11 13:48:29 2017 UTC (9 years, 1 month ago) by dgoldberg
Branch: MAIN
CVS Tags: HEAD
Changes since 1.4: +28 -9 lines
update ro_surf from pickup

1 C $Header: /u/gcmpack/MITgcm_contrib/ksnow/press_release/code_expt/shelfice_init_varia.F,v 1.4 2017/02/05 15:49:42 dgoldberg Exp $
2 C $Name: $
3
4 #include "SHELFICE_OPTIONS.h"
5
6 CBOP
7 SUBROUTINE SHELFICE_INIT_VARIA( myThid )
8 C *============================================================*
9 C | SUBROUTINE SHELFICE_INIT_VARIA
10 C | o Routine to initialize SHELFICE variables.
11 C *============================================================*
12 C | Initialize SHELFICE parameters and variables.
13 C *============================================================*
14 IMPLICIT NONE
15
16 C === Global variables ===
17 #include "SIZE.h"
18 #include "EEPARAMS.h"
19 #include "PARAMS.h"
20 #include "GRID.h"
21 #include "SHELFICE.h"
22 #ifdef ALLOW_COST
23 # include "SHELFICE_COST.h"
24 #endif /* ALLOW_COST */
25 #ifdef ALLOW_SHELFICE_GROUNDED_ICE
26 #include "SURFACE.h"
27 #endif
28
29 C === Routine arguments ===
30 C myThid - Number of this instance of SHELFICE_INIT_VARIA
31 INTEGER myThid
32 CEndOfInterface
33
34 #ifdef ALLOW_SHELFICE
35 C === Local variables ===
36 C i,j,bi,bj - Loop counters
37 INTEGER i, j, bi, bj, ks
38 #ifdef ALLOW_SHELFICE_GROUNDED_ICE
39 ! simply as an argument to find the the grounded factor
40 _RL massMin(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
41 #endif
42 CEOP
43
44 DO bj = myByLo(myThid), myByHi(myThid)
45 DO bi = myBxLo(myThid), myBxHi(myThid)
46 DO j = 1-OLy, sNy+OLy
47 DO i = 1-OLx, sNx+OLx
48 shelficeForcingT (i,j,bi,bj) = 0. _d 0
49 shelficeForcingS (i,j,bi,bj) = 0. _d 0
50 shelficeHeatFlux (i,j,bi,bj) = 0. _d 0
51 shelficeFreshWaterFlux(i,j,bi,bj) = 0. _d 0
52 shiTransCoeffT (i,j,bi,bj) = 0. _d 0
53 shiTransCoeffS (i,j,bi,bj) = 0. _d 0
54 shelficeMass (i,j,bi,bj) = 0. _d 0
55 EFFMASS (i,j,bi,bj) = 0. _d 0
56 SeaLevelRestore (i,j,bi,bj) = 0. _d 0
57 ENDDO
58 ENDDO
59 ENDDO
60 ENDDO
61 IF ( .NOT. SHELFICEuseGammaFrict ) THEN
62 IF ( SHELFICETransCoeffTFile .NE. ' ' ) THEN
63 CALL READ_FLD_XY_RL( SHELFICETransCoeffTFile, ' ',
64 & shiTransCoeffT, 0, myThid )
65 _EXCH_XY_RL( shiTransCoeffT, myThid )
66 DO bj = myByLo(myThid), myByHi(myThid)
67 DO bi = myBxLo(myThid), myBxHi(myThid)
68 DO j = 1-OLy, sNy+OLy
69 DO i = 1-OLx, sNx+OLx
70 shiTransCoeffS(i,j,bi,bj) = 5.05 _d -3 *
71 & shiTransCoeffT(i,j,bi,bj)
72 ENDDO
73 ENDDO
74 ENDDO
75 ENDDO
76 ELSE
77 C set coefficients to constant values
78 DO bj = myByLo(myThid), myByHi(myThid)
79 DO bi = myBxLo(myThid), myBxHi(myThid)
80 DO j = 1-OLy, sNy+OLy
81 DO i = 1-OLx, sNx+OLx
82 shiTransCoeffT(i,j,bi,bj) = SHELFICEheatTransCoeff
83 shiTransCoeffS(i,j,bi,bj) = SHELFICEsaltTransCoeff
84 ENDDO
85 ENDDO
86 ENDDO
87 ENDDO
88 ENDIF
89 ENDIF
90
91 DO bj = myByLo(myThid), myByHi(myThid)
92 DO bi = myBxLo(myThid), myBxHi(myThid)
93 DO j = 1-OLy, sNy+OLy
94 DO i = 1-OLx, sNx+OLx
95 shelficeMass(i,j,bi,bj) = shelficeMassInit(i,j,bi,bj)
96 ENDDO
97 ENDDO
98 ENDDO
99 ENDDO
100
101 IF (shelficeMassStepping) THEN
102
103 IF ( .NOT. ( startTime .EQ. baseTime .AND. nIter0 .EQ. 0
104 & .AND. pickupSuff .EQ. ' ') ) THEN
105
106 CALL SHELFICE_READ_PICKUP ( myThid )
107
108 IF ( usingZCoords ) THEN
109 DO bj=myByLo(myThid), myByHi(myThid)
110 DO bi=myBxLo(myThid), myBxHi(myThid)
111 DO j=1-OLy,sNy+OLy
112 DO i=1-OLx,sNx+OLx
113 ro_surf(i,j,bi,bj) =
114 & R_shelfIce(i,j,bi,bj)
115 ENDDO
116 ENDDO
117 ENDDO
118 ENDDO
119 ENDIF
120
121 ENDIF
122
123 ENDIF
124
125
126 #ifdef ALLOW_COST
127 DO bj = myByLo(myThid), myByHi(myThid)
128 DO bi = myBxLo(myThid), myBxHi(myThid)
129 DO j = 1-OLy, sNy+OLy
130 DO i = 1-OLx, sNx+OLx
131 cMeanSHIforT (i,j,bi,bj) = 0. _d 0
132 cMeanSHIforS (i,j,bi,bj) = 0. _d 0
133 ENDDO
134 ENDDO
135 ENDDO
136 ENDDO
137 c--
138 DO bj = myByLo(myThid), myByHi(myThid)
139 DO bi = myBxLo(myThid), myBxHi(myThid)
140 objf_shelfice(bi,bj) = 0. _d 0
141 objf_shifwflx(bi,bj) = 0. _d 0
142 num_shifwflx(bi,bj) = 0. _d 0
143 ENDDO
144 ENDDO
145 #endif /* ALLOW_COST */
146
147 #ifdef ALLOW_SHELFICE_GROUNDED_ICE
148 DO bj=myByLo(myThid), myByHi(myThid)
149 DO bi=myBxLo(myThid), myBxHi(myThid)
150
151 C-- Compute the mimimum value of r_surf (used for computing hFac_surfC)
152 DO j=1,sNy
153 DO i=1,sNx
154 ks = kSurfC(i,j,bi,bj)
155 IF (ks.LE.Nr) THEN
156 Rmin_surf(i,j,bi,bj) =
157 & MAX(rF(ks+1),R_low(i,j,bi,bj)) + hFacInf*drF(ks)
158 ENDIF
159 ENDDO
160 ENDDO
161
162 C- end bi,bj loop.
163 ENDDO
164 ENDDO
165
166 _EXCH_XY_RL (Rmin_surf, myThid)
167
168 #endif
169
170 #endif /* ALLOW_SHELFICE */
171
172 RETURN
173 END

  ViewVC Help
Powered by ViewVC 1.1.22