/[MITgcm]/MITgcm_contrib/ksnow/press_release/code_expt/shelfice_readparms.F
ViewVC logotype

Annotation of /MITgcm_contrib/ksnow/press_release/code_expt/shelfice_readparms.F

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


Revision 1.1 - (hide annotations) (download)
Fri Dec 16 15:25:29 2016 UTC (8 years, 7 months ago) by ksnow
Branch: MAIN
Adding shelfice_remeshing files for experiment

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

  ViewVC Help
Powered by ViewVC 1.1.22