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

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

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


Revision 1.7 - (show annotations) (download)
Fri May 13 19:41:03 2011 UTC (13 years, 1 month ago) by mlosch
Branch: MAIN
CVS Tags: checkpoint63h, checkpoint63i, checkpoint63j, checkpoint63d, checkpoint63e, checkpoint63f, checkpoint63g, checkpoint63a, checkpoint63b, checkpoint63c, checkpoint63, checkpoint62z, checkpoint62y
Changes since 1.6: +4 -3 lines
fix CPP-flag combinations

1 C $Header: /u/gcmpack/MITgcm/pkg/shelfice/shelfice_init_fixed.F,v 1.6 2011/05/10 07:49:19 mlosch Exp $
2 C $Name: $
3
4 #include "SHELFICE_OPTIONS.h"
5
6 SUBROUTINE SHELFICE_INIT_FIXED( myThid )
7 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 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 #ifdef ALLOW_COST
22 # include "cost.h"
23 # include "SHELFICE_COST.h"
24 #endif /* ALLOW_COST */
25
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 INTEGER diagMate
37 CHARACTER*8 diagName
38 CHARACTER*16 diagCode
39 CHARACTER*16 diagUnits
40 CHARACTER*(80) diagTitle
41 #endif /* ALLOW_DIAGNOSTICS */
42 #if (defined (ALLOW_SHIFWFLX_COST_CONTRIBUTION) && \
43 defined (ALLOW_SHIFWFLX_CONTROL))
44 _RL dummy
45 #endif
46
47 #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 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 #ifdef ALLOW_COST
75 #if (defined (ALLOW_SHIFWFLX_COST_CONTRIBUTION) && \
76 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
106 #ifdef ALLOW_DIAGNOSTICS
107 IF ( useDiagnostics ) THEN
108 diagName = 'SHIfwFlx'
109 diagTitle = 'Ice shelf fresh water flux (positive upward)'
110 diagUnits = 'kg/m^2/s '
111 diagCode = 'SM L1 '
112 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
113 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
114
115 diagName = 'SHIhtFlx'
116 diagTitle = 'Ice shelf heat flux (positive upward)'
117 diagUnits = 'W/m^2 '
118 diagCode = 'SM L1 '
119 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
120 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
121
122 diagName = 'SHIUDrag'
123 diagTitle = 'U momentum tendency from ice shelf drag'
124 diagUnits = 'm/s^2 '
125 diagCode = 'UU L1 '
126 diagMate = diagNum + 2
127 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
128 I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
129
130 diagName = 'SHIVDrag'
131 diagTitle = 'V momentum tendency from ice shelf drag'
132 diagUnits = 'm/s^2 '
133 diagCode = 'VV L1 '
134 diagMate = diagNum
135 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
136 I diagName, diagCode, diagUnits, diagTitle, diagMate, myThid )
137
138 diagName = 'SHIForcT'
139 diagTitle = 'Ice shelf forcing for theta, >0 increases theta'
140 diagUnits = 'W/m^2 '
141 diagCode = 'SM L1 '
142 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
143 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
144
145 diagName = 'SHIForcS'
146 diagTitle = 'Ice shelf forcing for salt, >0 increases salt'
147 diagUnits = 'g/m^2/s '
148 diagCode = 'SM L1 '
149 CALL DIAGNOSTICS_ADDTOLIST( diagNum,
150 I diagName, diagCode, diagUnits, diagTitle, 0, myThid )
151 ENDIF
152 #endif /* ALLOW_DIAGNOSTICS */
153 #endif /* ALLOW_SHELFICE */
154
155 RETURN
156 END

  ViewVC Help
Powered by ViewVC 1.1.22