/[MITgcm]/MITgcm/pkg/gmredi/gmredi_readparms.F
ViewVC logotype

Annotation of /MITgcm/pkg/gmredi/gmredi_readparms.F

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


Revision 1.37 - (hide annotations) (download)
Wed Aug 9 15:23:37 2017 UTC (6 years, 10 months ago) by mlosch
Branch: MAIN
CVS Tags: checkpoint66o, checkpoint66n, checkpoint66m, checkpoint66l, checkpoint66k, checkpoint66j, HEAD
Changes since 1.36: +6 -2 lines
replace CLOSE(nmlfileUnit) with CLOSE(nmlfileUnit,STATUS='DELETE') to remove
scratchfiles after closing, except for SINGLE_DISK_IO, when everything
stays the same

1 mlosch 1.37 C $Header: /u/gcmpack/MITgcm/pkg/gmredi/gmredi_readparms.F,v 1.36 2017/04/03 17:09:01 ou.wang Exp $
2     C $Name: BASE $
3 heimbach 1.1
4     #include "GMREDI_OPTIONS.h"
5    
6 jmc 1.15 CBOP
7     C !ROUTINE: GMREDI_READPARMS
8     C !INTERFACE:
9 heimbach 1.1 SUBROUTINE GMREDI_READPARMS( myThid )
10 jmc 1.15
11     C !DESCRIPTION: \bv
12     C *==========================================================*
13     C | SUBROUTINE GMREDI_READPARMS
14     C | o Routine to initialize GM/Redi variables and constants.
15     C *==========================================================*
16     C | Initialize GM/Redi parameters, read in data.gmredi
17     C *==========================================================*
18     C \ev
19    
20     C !USES:
21 heimbach 1.1 IMPLICIT NONE
22    
23     C === Global variables ===
24     #include "SIZE.h"
25     #include "EEPARAMS.h"
26     #include "PARAMS.h"
27     #include "GRID.h"
28     #include "GMREDI.h"
29    
30 jmc 1.15 C !INPUT/OUTPUT PARAMETERS:
31 heimbach 1.1 C === Routine arguments ===
32     INTEGER myThid
33    
34     #ifdef ALLOW_GMREDI
35 jmc 1.15 C !LOCAL VARIABLES:
36     C === Local variables ===
37 jmc 1.20 C msgBuf :: Informational/error message buffer
38     C iUnit :: Work variable for IO unit number
39 jmc 1.15 CHARACTER*(MAX_LEN_MBUF) msgBuf
40     INTEGER iUnit
41     CEOP
42 heimbach 1.1
43     C-- GM/Redi parameter
44 jmc 1.20 C GM_Small_Number :: epsilon used in computing the slope
45 jmc 1.14 C GM_slopeSqCutoff :: slope^2 cut-off value
46 heimbach 1.1 NAMELIST /GM_PARM01/
47 jmc 1.6 & GM_AdvForm, GM_AdvSeparate,
48 gforget 1.17 & GM_InMomAsStress,
49 jmc 1.5 & GM_isopycK,
50 jmc 1.14 & GM_background_K,
51 jmc 1.20 & GM_iso2dFile, GM_iso1dFile,
52     & GM_bol2dFile, GM_bol1dFile,
53 ou.wang 1.36 & GM_background_K3dFile,
54     & GM_isopycK3dFile,
55 heimbach 1.1 & GM_taper_scheme,
56     & GM_maxSlope,
57 jmc 1.5 & GM_Kmin_horiz,
58 jmc 1.8 & GM_Small_Number, GM_slopeSqCutoff,
59 jmc 1.19 & GM_Visbeck_alpha, GM_Visbeck_length,
60 heimbach 1.1 & GM_Visbeck_depth,
61 jmc 1.19 & GM_Visbeck_minDepth, GM_Visbeck_maxSlope,
62     & GM_Visbeck_minVal_K, GM_Visbeck_maxVal_K,
63 jmc 1.18 & GM_facTrL2dz, GM_facTrL2ML, GM_maxTransLay,
64     & GM_Scrit, GM_Sd,
65 jmc 1.21 & GM_MNC,
66 jmc 1.22 & GM_UseBVP, GM_BVP_cMin, GM_BVP_ModeNumber,
67     & GM_useSubMeso, subMeso_Ceff, subMeso_invTau,
68 m_bates 1.31 & subMeso_LfMin, subMeso_Lmax, GM_K3D_b1,
69 m_bates 1.26 & GM_K3D_gamma, GM_useK3D, GM_K3D_vecFreq,
70 m_bates 1.23 & GM_K3D_EadyMinDepth, GM_K3D_EadyMaxDepth,
71 m_bates 1.32 & GM_K3D_Lambda, GM_K3D_smallK, GM_K3D_surfK,
72 m_bates 1.23 & GM_K3D_maxC, GM_K3D_minCori, GM_K3D_minN2,
73 m_bates 1.31 & GM_K3D_surfMinDepth, GM_maxK3D, GM_K3D_Rmax,
74 m_bates 1.35 & GM_K3D_constK, GM_K3D_use_constK, GM_K3D_smooth,
75 m_bates 1.32 & GM_K3D_beta_eq_0, GM_K3D_Rmin, GM_K3D_ThickSheet,
76 m_bates 1.33 & GM_K3D_constRedi, GM_K3D_minRenorm,
77     & GM_K3D_maxRenorm
78 heimbach 1.1
79 jmc 1.34 C---+----1----+----2----+----3----+----4----+----5----+----6----+----7-|--+----|
80    
81     IF ( .NOT.useGMRedi ) THEN
82     C- pkg GMREDI is not used
83     _BEGIN_MASTER(myThid)
84     C- Track pkg activation status:
85     C print a (weak) warning if data.gmredi is found
86     CALL PACKAGES_UNUSED_MSG( 'useGMRedi', ' ', ' ' )
87     _END_MASTER(myThid)
88     RETURN
89     ENDIF
90    
91 jmc 1.14 _BEGIN_MASTER(myThid)
92    
93 heimbach 1.1 C-- Default values GM/Redi
94 jmc 1.5 GM_AdvForm = .FALSE.
95 jmc 1.6 GM_AdvSeparate = .FALSE.
96 gforget 1.17 GM_InMomAsStress = .FALSE.
97 jmc 1.5 GM_isopycK = -999.
98 jmc 1.15 GM_background_K = 0. _d 0
99 jmc 1.19 GM_maxSlope = 1. _d -2
100 jmc 1.15 GM_Kmin_horiz = 0. _d 0
101 jmc 1.16 GM_Small_Number = 1. _d -20
102 edhill 1.11 GM_slopeSqCutoff = 1. _d +48
103 heimbach 1.1 GM_taper_scheme = ' '
104 jmc 1.18 GM_facTrL2dz = 1.
105     GM_facTrL2ML = 5.
106     GM_maxTransLay = 500.
107 jmc 1.15 GM_Scrit = 0.004 _d 0
108     GM_Sd = 0.001 _d 0
109 edhill 1.11 GM_MNC = useMNC
110 jmc 1.20 GM_iso2dFile = ' '
111     GM_iso1dFile = ' '
112     GM_bol2dFile = ' '
113     GM_bol1dFile = ' '
114 ou.wang 1.36 GM_background_K3dFile = ' '
115     GM_isopycK3dFile = ' '
116 jmc 1.14
117 heimbach 1.1 C-- Default values GM/Redi I/O control
118 edhill 1.11 c GM_dumpFreq = -1.
119     c GM_taveFreq = -1.
120 heimbach 1.1
121     C-- Default values Visbeck
122 jmc 1.15 GM_Visbeck_alpha = 0. _d 0
123     GM_Visbeck_length = 200. _d 3
124     GM_Visbeck_depth = 1000. _d 0
125 jmc 1.19 GM_Visbeck_minDepth = 0. _d 0
126     GM_Visbeck_maxSlope = UNSET_RL
127     GM_Visbeck_minVal_K = 0. _d 0
128     GM_Visbeck_maxVal_K = 2500. _d 0
129 heimbach 1.1
130 jmc 1.21 C-- Default values BVP
131     GM_UseBVP = .FALSE.
132     GM_BVP_ModeNumber = 1
133     GM_BVP_cMin = 1. _d -1
134    
135 jmc 1.22 C-- Default values Sub-Meso (corresponding tau = 5.8 days):
136     GM_useSubMeso = .FALSE.
137     subMeso_invTau = 2.0 _d -6
138     subMeso_LfMin = 1.0 _d +3
139     subMeso_Ceff = 7.0 _d -2
140     subMeso_Lmax = 110. _d +3
141 jmc 1.21
142 m_bates 1.23 C-- Default values for K3D
143 m_bates 1.27 GM_useK3D = .FALSE.
144     GM_K3D_beta_eq_0 = .TRUE.
145 m_bates 1.35 GM_K3D_use_constK= .FALSE.
146 m_bates 1.31 GM_K3D_ThickSheet= .FALSE.
147 m_bates 1.27 GM_K3D_smooth = .TRUE.
148 m_bates 1.32 GM_K3D_surfK = .FALSE.
149     GM_K3D_constRedi = .FALSE.
150 m_bates 1.27 GM_K3D_constK = 1000.0
151 m_bates 1.31 GM_K3D_gamma = 1.0
152     GM_K3D_b1 = 4.0
153 m_bates 1.23 GM_K3D_EadyMinDepth = 50.0
154     GM_K3D_EadyMaxDepth = 1000.0
155 m_bates 1.27 GM_K3D_Lambda = 1.0
156     GM_K3D_smallK = 100.0
157     GM_K3D_maxC = 0.15
158     GM_maxK3D = 20e3
159 m_bates 1.31 GM_K3D_Rmin = 30e3
160     GM_K3D_Rmax = 75e3
161 m_bates 1.27 GM_K3D_minCori = zeroRL
162     GM_K3D_minN2 = 1.0e-8
163 m_bates 1.23 GM_K3D_surfMinDepth = 100.0
164 m_bates 1.27 GM_K3D_vecFreq = 2592000.0
165 m_bates 1.33 GM_K3D_minRenorm = oneRL
166     GM_K3D_maxRenorm = 20.0
167 jmc 1.34
168 edhill 1.11 WRITE(msgBuf,'(A)') ' GM_READPARMS: opening data.gmredi'
169     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
170     & SQUEEZE_RIGHT , 1)
171     CALL OPEN_COPY_DATA_FILE(
172     I 'data.gmredi', 'GM_READPARMS',
173     O iUnit,
174     I myThid )
175    
176     C Read parameters from open data file
177 heimbach 1.1 READ(UNIT=iUnit,NML=GM_PARM01)
178 jmc 1.9 WRITE(msgBuf,'(A)') ' GM_READPARMS: finished reading data.gmredi'
179     CALL PRINT_MESSAGE( msgBuf, standardMessageUnit,
180     & SQUEEZE_RIGHT , 1)
181 edhill 1.11 C Close the open data file
182 mlosch 1.37 #ifdef SINGLE_DISK_IO
183 jmc 1.9 CLOSE(iUnit)
184 mlosch 1.37 #else
185     CLOSE(iUnit,STATUS='DELETE')
186     #endif /* SINGLE_DISK_IO */
187 jmc 1.9
188 jmc 1.5 C Default value for GM_isopycK is equal to GM_background_K :
189     IF (GM_isopycK.EQ.-999.) GM_isopycK = GM_background_K
190    
191 jmc 1.19 C Default value for GM_Visbeck_maxSlope is equal to GM_maxSlope :
192     IF ( GM_Visbeck_maxSlope .EQ. UNSET_RL )
193     & GM_Visbeck_maxSlope = GM_maxSlope
194    
195 heimbach 1.1 C Some constants
196 jmc 1.18 GM_rMaxSlope = 0.
197     if (GM_maxSlope.NE.0.) GM_rMaxSlope = 1. _d 0 / GM_maxSlope
198 heimbach 1.1
199 jmc 1.5 IF (GM_AdvForm) THEN
200     GM_skewflx = 0.
201     GM_advect = 1.
202     GM_ExtraDiag = GM_Visbeck_alpha.NE.0. .OR. GM_isopycK.NE.0.
203     ELSE
204     GM_skewflx = 1.
205     GM_advect = 0.
206     GM_ExtraDiag = GM_isopycK.NE.GM_background_K
207     ENDIF
208 jmc 1.20 IF ( GM_iso2dFile .NE. GM_bol2dFile .OR.
209     & GM_iso1dFile .NE. GM_bol1dFile ) THEN
210     GM_ExtraDiag = .TRUE.
211     ENDIF
212 jmc 1.5
213 jmc 1.21 IF (GM_UseBVP) THEN
214     GM_BVP_rModeNumber = 1. _d 0/DBLE(GM_BVP_ModeNumber)
215     GM_BVP_cHat2Min = GM_BVP_cMin**2*rhoConst/gravity
216     ENDIF
217    
218 edhill 1.11 C Make sure that we locally honor the global MNC on/off flag
219     GM_MNC = GM_MNC .AND. useMNC
220     #ifndef ALLOW_MNC
221     C Fix to avoid running without getting any output:
222     GM_MNC = .FALSE.
223     #endif
224     GM_MDSIO = (.NOT. GM_MNC) .OR. outputTypesInclusive
225    
226 heimbach 1.1 _END_MASTER(myThid)
227    
228     C-- Everyone else must wait for the parameters to be loaded
229     _BARRIER
230    
231     #endif /* ALLOW_GMREDI */
232    
233 jmc 1.5 RETURN
234     END

  ViewVC Help
Powered by ViewVC 1.1.22