/[MITgcm]/MITgcm_contrib/dgoldberg/CPL1/code/shelfice_dig_shelf.F
ViewVC logotype

Annotation of /MITgcm_contrib/dgoldberg/CPL1/code/shelfice_dig_shelf.F

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


Revision 1.1 - (hide annotations) (download)
Wed Jul 6 18:01:25 2016 UTC (9 years ago) by dgoldberg
Branch: MAIN
CVS Tags: HEAD
moving experiment out of shelfice_remeshing to replace with vertical remeshing only

1 dgoldberg 1.1 C $Header: /u/gcmpack/MITgcm_contrib/verification_other/shelfice_remeshing/code/shelfice_dig_shelf.F,v 1.2 2016/05/05 18:16:04 dgoldberg Exp $
2     C $Name: $
3    
4     #include "SHELFICE_OPTIONS.h"
5    
6    
7     CBOP
8     C !ROUTINE: SHELFICE_UPDATE_MASKS
9     C !INTERFACE:
10     SUBROUTINE SHELFICE_DIG_SHELF(
11     I myThid )
12     C !DESCRIPTION: \bv
13     C *==========================================================*
14     C | SUBROUTINE SHELFICE_UPDATE_MASKS
15     C | o modify topography factor hFacC according to ice shelf
16     C | topography
17     C *==========================================================*
18     C \ev
19    
20     C !USES:
21     IMPLICIT NONE
22     C === Global variables ===
23     #include "SIZE.h"
24     #include "EEPARAMS.h"
25     #include "PARAMS.h"
26     #ifdef ALLOW_SHELFICE
27     # include "SHELFICE.h"
28     #endif /* ALLOW_SHELFICE */
29     #include "GRID.h"
30    
31     C !INPUT/OUTPUT PARAMETERS:
32     C == Routine arguments ==
33     C rF :: R-coordinate of face of cell (units of r).
34     C recip_drF :: Recipricol of cell face separation along Z axis ( units of r ).
35     C hFacC :: Fraction of cell in vertical which is open (see GRID.h)
36     C myThid :: Number of this instance of SHELFICE_UPDATE_MASKS
37     ! _RS recip_drF (1:Nr)
38     ! _RS hFacC (1-OLx:sNx+OLx,1-OLy:sNy+OLy,1:Nr,nSx,nSy)
39     INTEGER myThid
40    
41     #ifdef ALLOW_SHELFICE
42     C !LOCAL VARIABLES:
43     C == Local variables ==
44     C bi,bj :: tile indices
45     C I,J,K :: Loop counters
46     INTEGER bi, bj
47     INTEGER I, J, K
48     _RL hFacCtmp
49     _RL hFacMnSz
50     _RL draft_west, draft_east, draft_south, draft_north
51     _RS min_draft (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
52     INTEGER ktmp (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
53     CEOP
54    
55     DO bj = myByLo(myThid), myByHi(myThid)
56     DO bi = myBxLo(myThid), myBxHi(myThid)
57     DO j=1-OLy,sNy+OLy
58     DO i=1-OLx,sNx+OLx
59     DO k= 1, Nr
60     IF (hFacC(i,j,k,bi,bj).NE.0) THEN
61     ktmp(i,j,bi,bj) = k
62     ENDIF
63     ENDDO
64     ENDDO
65     ENDDO
66     ENDDO
67     ENDDO
68    
69     DO bj = myByLo(myThid), myByHi(myThid)
70     DO bi = myBxLo(myThid), myBxHi(myThid)
71     DO j=1-OLy+1,sNy+OLy-1
72     DO i=1-OLx,sNx+OLx
73    
74     R_MWCT(i,j,bi,bj) = 0. _d 0
75    
76     ENDDO
77     ENDDO
78     ENDDO
79     ENDDO
80    
81     ! FIND MIN COL THICKNESS REGARDLESS OF NEIGHBORING CELLS
82    
83     DO bj = myByLo(myThid), myByHi(myThid)
84     DO bi = myBxLo(myThid), myBxHi(myThid)
85     DO j=1-OLy,sNy+OLy
86     DO i=1-OLx,sNx+OLx
87    
88     IF(maskInC(i,j,bi,bj).eq.1) THEN
89     min_draft(i,j,bi,bj) = R_low(i,j,bi,bj) +
90     & 2.*hfacmin*drF(ktmp(i,j,bi,bj))
91     ENDIF
92    
93     ENDDO
94     ENDDO
95     ENDDO
96     ENDDO
97    
98     if (shelfice_dig_ice) then
99    
100     ! NOW FIND MIN COL THICKNESS BASED ON U POINTS
101    
102     DO bj = myByLo(myThid), myByHi(myThid)
103     DO bi = myBxLo(myThid), myBxHi(myThid)
104     DO j=1-OLy,sNy+OLy
105     DO i=1-OLx+1,sNx+OLx-1
106    
107     IF(maskInC(i,j,bi,bj).eq.1 .AND.
108     & maskInC(i-1,j,bi,bj).eq.1) THEN
109    
110     draft_west = max (
111     & min_draft(i-1,j,bi,bj),
112     & R_low(i,j,bi,bj) + hfacmin * drF(ktmp(i,j,bi,bj)))
113    
114     draft_east = max (
115     & min_draft(i,j,bi,bj),
116     & R_low(i-1,j,bi,bj) + hfacmin * drF(ktmp(i-1,j,bi,bj)))
117    
118     min_draft(i-1,j,bi,bj) = max
119     & (draft_west, min_draft(i-1,j,bi,bj))
120    
121     min_draft(i,j,bi,bj) = max
122     & (draft_east, min_draft(i,j,bi,bj))
123    
124     ENDIF
125    
126     ENDDO
127     ENDDO
128     ENDDO
129     ENDDO
130    
131     _EXCH_XY_RS(min_draft, myThid)
132    
133     ! NOW FIND MIN COL THICKNESS BASED ON V POINTS
134    
135     DO bj = myByLo(myThid), myByHi(myThid)
136     DO bi = myBxLo(myThid), myBxHi(myThid)
137     DO j=1-OLy+1,sNy+OLy-1
138     DO i=1-OLx,sNx+OLx
139    
140     IF(maskInC(i,j,bi,bj).eq.1 .AND.
141     & maskInC(i,j-1,bi,bj).eq.1) THEN
142    
143     draft_south = max (
144     & min_draft(i,j-1,bi,bj),
145     & R_low(i,j,bi,bj) + hfacmin * drF(ktmp(i,j,bi,bj)))
146    
147     draft_north = max (
148     & min_draft(i,j,bi,bj),
149     & R_low(i,j-1,bi,bj) + hfacmin * drF(ktmp(i,j-1,bi,bj)))
150    
151     min_draft(i,j-1,bi,bj) = max
152     & (draft_south, min_draft(i,j-1,bi,bj))
153    
154     min_draft(i,j,bi,bj) = max
155     & (draft_north, min_draft(i,j,bi,bj))
156    
157     ENDIF
158    
159     ENDDO
160     ENDDO
161     ENDDO
162     ENDDO
163    
164     _EXCH_XY_RS(min_draft, myThid)
165    
166     endif
167    
168     DO bj = myByLo(myThid), myByHi(myThid)
169     DO bi = myBxLo(myThid), myBxHi(myThid)
170     DO j=1-OLy+1,sNy+OLy-1
171     DO i=1-OLx,sNx+OLx
172    
173     IF(maskInC(i,j,bi,bj).eq.1) THEN
174     R_MWCT(i,j,bi,bj) = min_draft(i,j,bi,bj) -
175     & R_low(i,j,bi,bj)
176     ENDIF
177    
178     ENDDO
179     ENDDO
180     ENDDO
181     ENDDO
182    
183    
184    
185    
186     IF ( debugLevel .GE. debLevD ) THEN
187    
188     CALL WRITE_FLD_XY_RL ("ShelficeMinColThick","",R_MWCT,0,mythid)
189    
190     ENDIF
191    
192    
193     #endif /* ALLOW_SHELFICE */
194    
195     RETURN
196     END

  ViewVC Help
Powered by ViewVC 1.1.22