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

Annotation of /MITgcm_contrib/verification_other/shelfice_remeshing/code/shelfice_readparms.F

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


Revision 1.1 - (hide annotations) (download)
Fri Dec 11 19:48:32 2015 UTC (9 years, 7 months ago) by dgoldberg
Branch: MAIN
CVS Tags: checkpoint65r, checkpoint65s
shelfice_remeshing verification

1 dgoldberg 1.1 C $Header: /u/gcmpack/MITgcm_contrib/shelfice_remeshing/CLEAN/code/shelfice_readparms.F,v 1.1 2015/12/07 17:08:44 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