/[MITgcm]/MITgcm_contrib/verification_other/shelfice_remeshing/code/shelfice_readparms.F
ViewVC logotype

Contents of /MITgcm_contrib/verification_other/shelfice_remeshing/code/shelfice_readparms.F

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


Revision 1.7 - (show annotations) (download)
Wed Jul 6 18:03:40 2016 UTC (9 years ago) by dgoldberg
Branch: MAIN
CVS Tags: checkpoint66g, checkpoint66f, checkpoint66e, checkpoint66d, checkpoint66c, checkpoint66b, checkpoint66a, checkpoint66o, checkpoint66n, checkpoint66m, checkpoint66l, checkpoint66k, checkpoint66j, checkpoint66i, checkpoint66h, checkpoint65z, checkpoint65y, checkpoint67a, checkpoint67b, checkpoint67d, HEAD
Changes since 1.6: +5 -4 lines
new files for vertical remeshing test only

1 C $Header: /u/gcmpack/MITgcm_contrib/verification_other/shelfice_remeshing/code/shelfice_readparms.F,v 1.6 2016/05/05 18:16:04 dgoldberg Exp $
2 C $Name: $
3
4 #include "SHELFICE_OPTIONS.h"
5
6 CBOP
7 C !ROUTINE: SHELFICE_READPARMS
8
9 C !INTERFACE: ==========================================================
10 SUBROUTINE SHELFICE_READPARMS( myThid )
11
12 C !DESCRIPTION:
13 C Initialize SHELFICE parameters, read in data.shelfice
14
15 C !USES: ===============================================================
16 IMPLICIT NONE
17 #include "SIZE.h"
18 #include "EEPARAMS.h"
19 #include "PARAMS.h"
20 #include "SHELFICE.h"
21 #ifdef ALLOW_COST
22 # include "SHELFICE_COST.h"
23 #endif /* ALLOW_COST */
24 #ifdef ALLOW_MNC
25 # include "MNC_PARAMS.h"
26 #endif
27
28 C !INPUT PARAMETERS: ===================================================
29 C myThid :: thread number
30 INTEGER myThid
31
32 C !OUTPUT PARAMETERS: ==================================================
33 C none
34
35 #ifdef ALLOW_SHELFICE
36
37 C !LOCAL VARIABLES: ====================================================
38 C iUnit :: unit number for I/O
39 C msgBuf :: message buffer
40 INTEGER iUnit
41 CHARACTER*(MAX_LEN_MBUF) msgBuf
42 CEOP
43
44 NAMELIST /SHELFICE_PARM01/
45 & SHELFICEheatTransCoeff,
46 & SHELFICEsaltTransCoeff,
47 & SHELFICEMassStepping,
48 & rhoShelfice, SHELFICEkappa,
49 & SHELFICElatentHeat, SHELFICEHeatCapacity_Cp,
50 & SHELFICEDragLinear, SHELFICEDragQuadratic,
51 & SHELFICEthetaSurface,
52 & useISOMIPTD, no_slip_shelfice,
53 & SHELFICEconserve, SHELFICEboundaryLayer,
54 & SHELFICErealFWflux,
55 & SHELFICEwriteState,
56 & SHELFICE_dumpFreq,
57 & SHELFICE_taveFreq,
58 & SHELFICE_tave_mnc,
59 & SHELFICE_dump_mnc,
60 & SHELFICEtopoFile,
61 & SHELFICEmassFile, SHELFICEloadAnomalyFile,
62 & SHELFICEMassDynTendFile,
63 & SHELFICEDynMassOnly,
64 & SHELFICEadvDiffHeatFlux,
65 & SHELFICEuseGammaFrict,
66 & SHELFICERemeshFrequency,
67 & SHELFICESplitThreshold,
68 & SHELFICEMergeThreshold,
69 & shiCdrag, shiZetaN, shiRc,
70 & shiPrandtl, shiSchmidt, shiKinVisc,
71 & shelficeEtaSponge, ShelficeEtaRelax,
72 & shelfice_etarestore_spongewidth,
73 & SHELFICE_dig_ice, SHELFICE_massmin_trueDens,
74 & conserve_ssh
75 #ifdef ALLOW_COST
76 & , mult_shelfice
77 & , mult_shifwflx, wshifwflx0, shifwflx_errfile
78 #endif
79
80 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
81
82 IF ( .NOT.useShelfIce ) THEN
83 C- pkg SHELFICE is not used
84 _BEGIN_MASTER(myThid)
85 C- Track pkg activation status:
86 SHELFICEisOn = .FALSE.
87 C print a (weak) warning if data.shelfice is found
88 CALL PACKAGES_UNUSED_MSG( 'useShelfIce', ' ', ' ' )
89 _END_MASTER(myThid)
90 RETURN
91 ENDIF
92
93 _BEGIN_MASTER(myThid)
94
95 C This routine has been called by the main model so we set our
96 C internal flag to indicate we are in business
97 SHELFICEisOn = .TRUE.
98
99 C Set defaults values for parameters in SHELFICE.h
100 useISOMIPTD = .FALSE.
101 SHELFICEconserve = .FALSE.
102 SHELFICEboundaryLayer = .FALSE.
103 SHELFICErealFWflux = .FALSE.
104 SHELFICEMassStepping = .FALSE.
105 SHELFICEDynMassOnly = .FALSE.
106 SHELFICEtopoFile = ' '
107 SHELFICEmassFile = ' '
108 SHELFICEloadAnomalyFile = ' '
109 SHELFICEMassDynTendFile = ' '
110 SHELFICETransCoeffTFile = ' '
111 SHELFICElatentHeat = 334.0 _d 3
112 SHELFICEHeatCapacity_Cp = 2000.0 _d 0
113 rhoShelfIce = 917.0 _d 0
114 SHELFICEheatTransCoeff = 1.0 _d -04
115 SHELFICEsaltTransCoeff = UNSET_RL
116 SHELFICEkappa = 1.54 _d -06
117 SHELFICEthetaSurface = - 20.0 _d 0
118 no_slip_shelfice = no_slip_bottom
119 SHELFICEDragLinear = bottomDragLinear
120 SHELFICEDragQuadratic = UNSET_RL
121 SHELFICEselectDragQuadr = -1
122 SHELFICEwriteState = .FALSE.
123 SHELFICE_dumpFreq = dumpFreq
124 SHELFICE_taveFreq = taveFreq
125 SHELFICEadvDiffHeatFlux = .FALSE.
126 SHELFICEuseGammaFrict = .FALSE.
127 SHELFICERemeshFrequency = 2592000.
128 SHELFICESplitThreshold = 5
129 SHELFICEMergeThreshold = -8
130 shelficeEtaRelax = 0.
131 shelfice_etarestore_spongewidth = 0
132 shelficeEtaSponge = .false.
133 SHELFICE_dig_ice = .false.
134 SHELFICE_massmin_trueDens = .false.
135 C KS16 initiliase conserve_ssh
136 conserve_ssh = .false.
137 C these params. are default of Holland and Jenkins (1999)
138 shiCdrag = 0.0015 _d 0
139 shiZetaN = 0.052 _d 0
140 shiRc = 0.2 _d 0
141 shiPrandtl = 13.8 _d 0
142 shiSchmidt = 2432.0 _d 0
143 shiKinVisc = 1.95 _d -6
144 #ifdef ALLOW_COST
145 mult_shelfice = 0. _d 0
146 mult_shifwflx = 0. _d 0
147 wshifwflx0 = 0. _d 0
148 shifwflx_errfile = ' '
149 #endif
150 #ifdef ALLOW_MNC
151 SHELFICE_tave_mnc = timeave_mnc
152 SHELFICE_dump_mnc = snapshot_mnc
153 #else
154 SHELFICE_tave_mnc = .FALSE.
155 SHELFICE_dump_mnc = .FALSE.
156 #endif
157
158 C Open and read the data.shelfice file
159 WRITE(msgBuf,'(A)') ' SHELFICE_READPARMS: opening data.shelfice'
160 CALL PRINT_MESSAGE(msgBuf, standardMessageUnit,
161 & SQUEEZE_RIGHT, myThid )
162 CALL OPEN_COPY_DATA_FILE(
163 I 'data.shelfice', 'SHELFICE_READPARMS',
164 O iUnit,
165 I myThid )
166 READ(UNIT=iUnit,NML=SHELFICE_PARM01)
167 WRITE(msgBuf,'(A)')
168 & ' SHELFICE_READPARMS: finished reading data.shelfice'
169 CALL PRINT_MESSAGE(msgBuf, standardMessageUnit,
170 & SQUEEZE_RIGHT, myThid )
171
172 C Close the open data file
173 CLOSE(iUnit)
174
175 C Now set-up any remaining parameters that result from the input parameters
176 IF ( SHELFICEsaltTransCoeff .EQ. UNSET_RL )
177 & SHELFICEsaltTransCoeff =
178 & 5.05 _d -3 *SHELFICEheatTransCoeff
179
180 C Set quadratic bottom drag depending on choices:
181 IF ( SHELFICEDragQuadratic .EQ. UNSET_RL) THEN
182 IF ( SHELFICEuseGammaFrict ) THEN
183 SHELFICEDragQuadratic = shiCdrag
184 ELSE
185 SHELFICEDragQuadratic = bottomDragQuadratic
186 ENDIF
187 ENDIF
188 IF ( SHELFICEDragQuadratic.EQ.0. _d 0 ) THEN
189 SHELFICEselectDragQuadr = -1
190 ELSEIF ( SHELFICEselectDragQuadr.EQ.-1 ) THEN
191 SHELFICEselectDragQuadr = MAX( 0, selectBotDragQuadr )
192 ENDIF
193
194 C- Set Output type flags :
195 SHELFICE_tave_mdsio = .TRUE.
196 SHELFICE_dump_mdsio = .TRUE.
197 #ifdef ALLOW_MNC
198 IF (useMNC) THEN
199 IF ( .NOT.outputTypesInclusive
200 & .AND. SHELFICE_tave_mnc ) SHELFICE_tave_mdsio = .FALSE.
201 IF ( .NOT.outputTypesInclusive
202 & .AND. SHELFICE_dump_mnc ) SHELFICE_dump_mdsio = .FALSE.
203 ENDIF
204 #endif
205
206 _END_MASTER(myThid)
207 C Everyone else must wait for the parameters to be loaded
208 _BARRIER
209
210 #endif /* ALLOW_SHELFICE */
211
212 RETURN
213 END

  ViewVC Help
Powered by ViewVC 1.1.22