/[MITgcm]/MITgcm/pkg/shelfice/shelfice_init_fixed.F
ViewVC logotype

Annotation of /MITgcm/pkg/shelfice/shelfice_init_fixed.F

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


Revision 1.8 - (hide annotations) (download)
Fri Mar 2 15:05:50 2012 UTC (12 years, 4 months ago) by mlosch
Branch: MAIN
CVS Tags: checkpoint63p, checkpoint63q, checkpoint63r, checkpoint63s, checkpoint63l, checkpoint63m, checkpoint63n, checkpoint63o, checkpoint63k
Changes since 1.7: +15 -1 lines
add diagnostics for the transfer coefficients

1 mlosch 1.8 C $Header: /u/gcmpack/MITgcm/pkg/shelfice/shelfice_init_fixed.F,v 1.7 2011/05/13 19:41:03 mlosch Exp $
2 mlosch 1.1 C $Name: $
3    
4     #include "SHELFICE_OPTIONS.h"
5    
6     SUBROUTINE SHELFICE_INIT_FIXED( myThid )
7 jmc 1.4 C *============================================================*
8     C | SUBROUTINE SHELFICE_INIT_FIXED
9     C | o Routine to initialize SHELFICE parameters and variables.
10     C *============================================================*
11     C | Initialize SHELFICE parameters and variables.
12     C *============================================================*
13 mlosch 1.1 IMPLICIT NONE
14    
15     C === Global variables ===
16     #include "SIZE.h"
17     #include "EEPARAMS.h"
18     #include "PARAMS.h"
19     #include "GRID.h"
20     #include "SHELFICE.h"
21 mlosch 1.6 #ifdef ALLOW_COST
22     # include "cost.h"
23     # include "SHELFICE_COST.h"
24     #endif /* ALLOW_COST */
25 mlosch 1.1
26     C === Routine arguments ===
27     C myThid - Number of this instance of SHELFICE_INIT_FIXED
28     INTEGER myThid
29    
30     #ifdef ALLOW_SHELFICE
31     C === Local variables ===
32     C I,J,K,bi,bj - Loop counters
33     INTEGER I, J, K, bi, bj
34     #ifdef ALLOW_DIAGNOSTICS
35     INTEGER diagNum
36 jmc 1.5 INTEGER diagMate
37 mlosch 1.1 CHARACTER*8 diagName
38     CHARACTER*16 diagCode
39     CHARACTER*16 diagUnits
40     CHARACTER*(80) diagTitle
41     #endif /* ALLOW_DIAGNOSTICS */
42 mlosch 1.7 #if (defined (ALLOW_SHIFWFLX_COST_CONTRIBUTION) && \
43     defined (ALLOW_SHIFWFLX_CONTROL))
44 mlosch 1.6 _RL dummy
45     #endif
46 mlosch 1.1
47 jmc 1.4 #ifdef ALLOW_MNC
48     C Initialize MNC variable information for SHELFICE
49     IF ( useMNC .AND. (shelfice_tave_mnc.OR.shelfice_dump_mnc)
50     & ) THEN
51     CALL SHELFICE_MNC_INIT( myThid )
52     ENDIF
53     #endif /* ALLOW_MNC */
54    
55 mlosch 1.1 C-----------------------------------------------------------------------
56     C-- Initialize SHELFICE variables kTopC
57     C-- kTopC is the same as kSurfC, except for places over land.
58     C-- Over land (completely dry cells), kTop = 0, while kSurfC = Nr+1
59     C-----------------------------------------------------------------------
60    
61     DO bj = myByLo(myThid), myByHi(myThid)
62     DO bi = myBxLo(myThid), myBxHi(myThid)
63     DO J = 1-OLy, sNy+OLy
64     DO I = 1-OLx, sNx+OLx
65     kTopC(i,j,bi,bj) = 0
66     DO K = Nr, 1, -1
67     IF ( maskC(I,J,K,bi,bj) .NE. 0. _d 0 )
68     & kTopC(I,J,bi,bj) = K
69     ENDDO
70     ENDDO
71     ENDDO
72     ENDDO
73     ENDDO
74 mlosch 1.6 #ifdef ALLOW_COST
75 mlosch 1.7 #if (defined (ALLOW_SHIFWFLX_COST_CONTRIBUTION) && \
76 mlosch 1.6 defined (ALLOW_SHIFWFLX_CONTROL))
77     IF ( shifwflx_errfile .NE. ' ' ) THEN
78     CALL READ_REC_XY_RL( shifwflx_errfile, wshifwflx, 1, 0, myThid )
79     ENDIF
80    
81     DO bj = myByLo(myThid), myByHi(myThid)
82     DO bi = myBxLo(myThid), myBxHi(myThid)
83     DO J = 1-OLy, sNy+OLy
84     DO I = 1-OLx, sNx+OLx
85     c-- Test for missing values.
86     IF (wshifwflx(i,j,bi,bj) .LT. -9900.) THEN
87     wshifwflx(i,j,bi,bj) = 0. _d 0
88     ENDIF
89     c-- use weight as mask
90     wshifwflx(i,j,bi,bj) =
91     & max(wshifwflx(i,j,bi,bj),wshifwflx0)
92     & *maskSHI(I,J,1,bi,bj)
93     IF (wshifwflx(i,j,bi,bj) .NE. 0.) THEN
94     wshifwflx(i,j,bi,bj) =
95     & 1./wshifwflx(i,j,bi,bj)/wshifwflx(i,j,bi,bj)
96     ENDIF
97     ENDDO
98     ENDDO
99     ENDDO
100     ENDDO
101     CALL ACTIVE_WRITE_XY_LOC( 'wshifwflx', wshifwflx,
102     & 1, 0, mythid, dummy)
103     #endif /* ALLOW_SHIFWFLX_COST_CONTRIBUTION or ALLOW_SHIFWFLX_CONTROL */
104     #endif /* ALLOW_COST */
105 mlosch 1.1
106     #ifdef ALLOW_DIAGNOSTICS
107     IF ( useDiagnostics ) THEN
108     diagName = 'SHIfwFlx'
109 mlosch 1.2 diagTitle = 'Ice shelf fresh water flux (positive upward)'
110 mlosch 1.1 diagUnits = 'kg/m^2/s '
111 jmc 1.5 diagCode = 'SM L1 '
112     CALL DIAGNOSTICS_ADDTOLIST( diagNum,
113     I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
114 mlosch 1.1
115     diagName = 'SHIhtFlx'
116 mlosch 1.2 diagTitle = 'Ice shelf heat flux (positive upward)'
117 mlosch 1.1 diagUnits = 'W/m^2 '
118 jmc 1.5 diagCode = 'SM L1 '
119     CALL DIAGNOSTICS_ADDTOLIST( diagNum,
120     I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
121 mlosch 1.1
122 mlosch 1.2 diagName = 'SHIUDrag'
123     diagTitle = 'U momentum tendency from ice shelf drag'
124 mlosch 1.1 diagUnits = 'm/s^2 '
125 jmc 1.5 diagCode = 'UU L1 '
126     diagMate = diagNum + 2
127     CALL DIAGNOSTICS_ADDTOLIST( diagNum,
128     I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
129 mlosch 1.1
130 mlosch 1.2 diagName = 'SHIVDrag'
131     diagTitle = 'V momentum tendency from ice shelf drag'
132 mlosch 1.1 diagUnits = 'm/s^2 '
133 jmc 1.5 diagCode = 'VV L1 '
134     diagMate = diagNum
135     CALL DIAGNOSTICS_ADDTOLIST( diagNum,
136     I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
137 dimitri 1.3
138     diagName = 'SHIForcT'
139     diagTitle = 'Ice shelf forcing for theta, >0 increases theta'
140     diagUnits = 'W/m^2 '
141 jmc 1.5 diagCode = 'SM L1 '
142     CALL DIAGNOSTICS_ADDTOLIST( diagNum,
143     I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
144 dimitri 1.3
145     diagName = 'SHIForcS'
146     diagTitle = 'Ice shelf forcing for salt, >0 increases salt'
147     diagUnits = 'g/m^2/s '
148 jmc 1.5 diagCode = 'SM L1 '
149     CALL DIAGNOSTICS_ADDTOLIST( diagNum,
150     I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
151 mlosch 1.8
152     diagName = 'SHIgammT'
153     diagTitle = 'Ice shelf exchange coefficient for theta'
154     diagUnits = 'm/s '
155     diagCode = 'SM L1 '
156     CALL DIAGNOSTICS_ADDTOLIST( diagNum,
157     I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
158    
159     diagName = 'SHIgammS'
160     diagTitle = 'Ice shelf exchange coefficient for salt'
161     diagUnits = 'm/s '
162     diagCode = 'SM L1 '
163     CALL DIAGNOSTICS_ADDTOLIST( diagNum,
164     I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
165 mlosch 1.1 ENDIF
166     #endif /* ALLOW_DIAGNOSTICS */
167     #endif /* ALLOW_SHELFICE */
168    
169     RETURN
170     END

  ViewVC Help
Powered by ViewVC 1.1.22