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

Annotation 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 - (hide 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 dgoldberg 1.5 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 ksnow 1.1 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 dgoldberg 1.5 INTEGER i, j, bi, bj, ks
38 dgoldberg 1.3 #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 ksnow 1.1 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 dgoldberg 1.5 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 ksnow 1.1 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 dgoldberg 1.5 DO bj=myByLo(myThid), myByHi(myThid)
149     DO bi=myBxLo(myThid), myBxHi(myThid)
150 ksnow 1.1
151 dgoldberg 1.5 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 ksnow 1.1 ENDDO
160     ENDDO
161 dgoldberg 1.5
162     C- end bi,bj loop.
163 ksnow 1.1 ENDDO
164     ENDDO
165 dgoldberg 1.5
166 dgoldberg 1.4 _EXCH_XY_RL (Rmin_surf, myThid)
167 ksnow 1.1
168     #endif
169    
170     #endif /* ALLOW_SHELFICE */
171    
172     RETURN
173     END

  ViewVC Help
Powered by ViewVC 1.1.22