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

Annotation 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 - (hide 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 dcarroll 1.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