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

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

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


Revision 1.2 - (show annotations) (download)
Mon Jan 18 10:36:41 2016 UTC (9 years, 6 months ago) by dgoldberg
Branch: MAIN
Changes since 1.1: +5 -2 lines
Grounding line fix

1 C $Header: /u/gcmpack/MITgcm_contrib/verification_other/shelfice_remeshing/code/shelfice_readparms.F,v 1.1 2015/12/11 19:48:32 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 & SHELFICEthickBoundaryLayer,
55 & SHELFICErealFWflux,
56 & SHELFICEwriteState,
57 & SHELFICE_dumpFreq,
58 & SHELFICE_taveFreq,
59 & SHELFICE_tave_mnc,
60 & SHELFICE_dump_mnc,
61 & SHELFICEtopoFile,SHELFICEGroundTopoFile,
62 & SHELFICEmassFile, SHELFICEloadAnomalyFile,
63 & SHELFICEMassDynTendFile, SHELFICEGroundInitFile,
64 & SHELFICEDynMassOnly,
65 & SHELFICEadvDiffHeatFlux,
66 & SHELFICEuseGammaFrict,
67 & SHELFICERemeshFrequency,
68 & SHELFICESplitThreshold,
69 & SHELFICEMergeThreshold,
70 & SHELFICEGroundW,
71 & SHELFICEGROUNDC,
72 & shiCdrag, shiZetaN, shiRc,
73 & shiPrandtl, shiSchmidt, shiKinVisc
74 #ifdef ALLOW_COST
75 & , mult_shelfice
76 & , mult_shifwflx, wshifwflx0, shifwflx_errfile
77 #endif
78
79 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
80
81 IF ( .NOT.useShelfIce ) THEN
82 C- pkg SHELFICE is not used
83 _BEGIN_MASTER(myThid)
84 C- Track pkg activation status:
85 SHELFICEisOn = .FALSE.
86 C print a (weak) warning if data.shelfice is found
87 CALL PACKAGES_UNUSED_MSG( 'useShelfIce', ' ', ' ' )
88 _END_MASTER(myThid)
89 RETURN
90 ENDIF
91
92 _BEGIN_MASTER(myThid)
93
94 C This routine has been called by the main model so we set our
95 C internal flag to indicate we are in business
96 SHELFICEisOn = .TRUE.
97
98 C Set defaults values for parameters in SHELFICE.h
99 useISOMIPTD = .FALSE.
100 SHELFICEconserve = .FALSE.
101 SHELFICEboundaryLayer = .FALSE.
102 SHELFICEthickBoundaryLayer
103 & = .FALSE.
104 SHELFICErealFWflux = .FALSE.
105 SHELFICEMassStepping = .FALSE.
106 SHELFICEDynMassOnly = .FALSE.
107 SHELFICEtopoFile = ' '
108 SHELFICEmassFile = ' '
109 SHELFICEGroundTopoFile = ' '
110 SHELFICEloadAnomalyFile = ' '
111 SHELFICEMassDynTendFile = ' '
112 SHELFICEGroundInitFile = ' '
113 SHELFICElatentHeat = 334.0 _d 3
114 SHELFICEHeatCapacity_Cp = 2000.0 _d 0
115 rhoShelfIce = 917.0 _d 0
116 SHELFICEheatTransCoeff = 1.0 _d -04
117 SHELFICEsaltTransCoeff = UNSET_RL
118 SHELFICEkappa = 1.54 _d -06
119 SHELFICEthetaSurface = - 20.0 _d 0
120 no_slip_shelfice = no_slip_bottom
121 SHELFICEDragLinear = bottomDragLinear
122 SHELFICEDragQuadratic = UNSET_RL
123 SHELFICEselectDragQuadr = -1
124 SHELFICEwriteState = .FALSE.
125 SHELFICE_dumpFreq = dumpFreq
126 SHELFICE_taveFreq = taveFreq
127 SHELFICEadvDiffHeatFlux = .FALSE.
128 SHELFICEuseGammaFrict = .FALSE.
129 SHELFICERemeshFrequency = 2592000.
130 SHELFICESplitThreshold = 5
131 SHELFICEMergeThreshold = -8
132 SHELFICEGroundW = 100
133 SHELFICEGroundC = 1000
134 C these params. are default of Holland and Jenkins (1999)
135 shiCdrag = 0.0015 _d 0
136 shiZetaN = 0.052 _d 0
137 shiRc = 0.2 _d 0
138 shiPrandtl = 13.8 _d 0
139 shiSchmidt = 2432.0 _d 0
140 shiKinVisc = 1.95 _d -6
141 #ifdef ALLOW_COST
142 mult_shelfice = 0. _d 0
143 mult_shifwflx = 0. _d 0
144 wshifwflx0 = 0. _d 0
145 shifwflx_errfile = ' '
146 #endif
147 #ifdef ALLOW_MNC
148 SHELFICE_tave_mnc = timeave_mnc
149 SHELFICE_dump_mnc = snapshot_mnc
150 #else
151 SHELFICE_tave_mnc = .FALSE.
152 SHELFICE_dump_mnc = .FALSE.
153 #endif
154
155 C Open and read the data.shelfice file
156 WRITE(msgBuf,'(A)') ' SHELFICE_READPARMS: opening data.shelfice'
157 CALL PRINT_MESSAGE(msgBuf, standardMessageUnit,
158 & SQUEEZE_RIGHT, myThid )
159 CALL OPEN_COPY_DATA_FILE(
160 I 'data.shelfice', 'SHELFICE_READPARMS',
161 O iUnit,
162 I myThid )
163 READ(UNIT=iUnit,NML=SHELFICE_PARM01)
164 WRITE(msgBuf,'(A)')
165 & ' SHELFICE_READPARMS: finished reading data.shelfice'
166 CALL PRINT_MESSAGE(msgBuf, standardMessageUnit,
167 & SQUEEZE_RIGHT, myThid )
168
169 C Close the open data file
170 CLOSE(iUnit)
171
172 C Now set-up any remaining parameters that result from the input parameters
173 IF ( SHELFICEsaltTransCoeff .EQ. UNSET_RL )
174 & SHELFICEsaltTransCoeff =
175 & 5.05 _d -3 *SHELFICEheatTransCoeff
176
177 C Set quadratic bottom drag depending on choices:
178 IF ( SHELFICEDragQuadratic .EQ. UNSET_RL) THEN
179 IF ( SHELFICEuseGammaFrict ) THEN
180 SHELFICEDragQuadratic = shiCdrag
181 ELSE
182 SHELFICEDragQuadratic = bottomDragQuadratic
183 ENDIF
184 ENDIF
185 IF ( SHELFICEDragQuadratic.EQ.0. _d 0 ) THEN
186 SHELFICEselectDragQuadr = -1
187 ELSEIF ( SHELFICEselectDragQuadr.EQ.-1 ) THEN
188 SHELFICEselectDragQuadr = MAX( 0, selectBotDragQuadr )
189 ENDIF
190
191 C- Set Output type flags :
192 SHELFICE_tave_mdsio = .TRUE.
193 SHELFICE_dump_mdsio = .TRUE.
194 #ifdef ALLOW_MNC
195 IF (useMNC) THEN
196 IF ( .NOT.outputTypesInclusive
197 & .AND. SHELFICE_tave_mnc ) SHELFICE_tave_mdsio = .FALSE.
198 IF ( .NOT.outputTypesInclusive
199 & .AND. SHELFICE_dump_mnc ) SHELFICE_dump_mdsio = .FALSE.
200 ENDIF
201 #endif
202
203 _END_MASTER(myThid)
204 C Everyone else must wait for the parameters to be loaded
205 _BARRIER
206
207 #endif /* ALLOW_SHELFICE */
208
209 RETURN
210 END

  ViewVC Help
Powered by ViewVC 1.1.22