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

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

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


Revision 1.2 - (hide annotations) (download)
Sun Dec 14 18:48:40 2014 UTC (10 years, 6 months ago) by dgoldberg
Branch: MAIN
CVS Tags: HEAD
Changes since 1.1: +2 -1 lines
updates to branch of pkg/shelfice for dynamic ice mass

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

  ViewVC Help
Powered by ViewVC 1.1.22