/[MITgcm]/MITgcm_contrib/dgoldberg/shelfice/shelfice_readparms.F
ViewVC logotype

Contents of /MITgcm_contrib/dgoldberg/shelfice/shelfice_readparms.F

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


Revision 1.1 - (show annotations) (download)
Wed Aug 27 19:26:17 2014 UTC (9 years, 9 months ago) by dgoldberg
Branch: MAIN
contrib repo for changes to shelfice files for coupling

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

  ViewVC Help
Powered by ViewVC 1.1.22