/[MITgcm]/MITgcm_contrib/dcarroll/highres_darwin/code/shelfice_readparms.F
ViewVC logotype

Contents of /MITgcm_contrib/dcarroll/highres_darwin/code/shelfice_readparms.F

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


Revision 1.1 - (show annotations) (download)
Sun Sep 22 21:23:47 2019 UTC (5 years, 10 months ago) by dcarroll
Branch: MAIN
CVS Tags: HEAD
Initial check in of high resolution Darwin simulation code

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

  ViewVC Help
Powered by ViewVC 1.1.22