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

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

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


Revision 1.27 - (show annotations) (download)
Tue Dec 12 19:38:55 2017 UTC (8 years, 1 month ago) by jmc
Branch: MAIN
CVS Tags: checkpoint66m
Changes since 1.26: +5 -4 lines
add SHELFICEselectDragQuadr to namelist

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

  ViewVC Help
Powered by ViewVC 1.1.22