/[MITgcm]/MITgcm/compare01/src/set_defaults.F
ViewVC logotype

Contents of /MITgcm/compare01/src/set_defaults.F

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


Revision 1.2 - (show annotations) (download)
Mon Jun 8 21:42:59 1998 UTC (25 years, 11 months ago) by cnh
Branch: MAIN
CVS Tags: checkpoint6
Changes since 1.1: +16 -14 lines
Merge of GM Redi and spherical polar and inplicit diffusion
and CD. Everything for a global run is now included, however,
still some discrepancies with GM Redi.

1 C $Id: set_defaults.F,v 1.1 1998/05/25 20:21:05 cnh Exp $
2 #include "CPP_OPTIONS.h"
3 #include "CPP_MACROS.h"
4 C================================================================================
5 C Procedure name: SET_DEFAULTS |
6 C Function: Assign default values to model parameters. |
7 C Comments: |
8 C================================================================================
9
10 CStartofinterface
11 SUBROUTINE SET_DEFAULTS (
12 O U, V, W, T, S, PH, PS )
13 IMPLICIT NONE
14 C /-------------------------------------------------------------------------\
15 C | Global variable declarations |
16 C \-------------------------------------------------------------------------/
17 #include "SIZE.h"
18 #include "PARAMS.h"
19 #include "STRINGS.h"
20 #include "OPERATORS.h"
21 #include "GRID.h"
22 #include "OLDG.h"
23 #include "MASKS.h"
24 #include "CG2DA.h"
25 #include "CG2DZ.h"
26 #include "AJAINF.h"
27 #include "EPARAM.h"
28 #include "FORCING.h"
29 C /-------------------------------------------------------------------------\
30 C | Routine argument declarations |
31 C |=========================================================================|
32 C | U, V, W - X,Y,Z Velocity ( m/s, m/s, Pa/s ). |
33 C | T - Potential temperature (oC). |
34 C | S - Salinity (ppt). |
35 C | PH - Hydrostatic pressure perturbation (m). |
36 C | PS - Surface pressure (m). |
37 C \-------------------------------------------------------------------------/
38 REAL U (_I3(nz,nx,ny))
39 REAL V (_I3(nz,nx,ny))
40 REAL W (_I3(nz,nx,ny))
41 REAL T (_I3(nz,nx,ny))
42 REAL S (_I3(nz,nx,ny))
43 REAL PH(_I3(nz,nx,ny))
44 REAL PS(nx, ny )
45
46 CEndofinteface
47
48 C /-------------------------------------------------------------------------\
49 C | Local variable declarations |
50 C |=========================================================================|
51 C | DELTAZ - Layer thickness (m). |
52 C | torry - Reference wind stress (N). |
53 C | y - Distance accumulator (m). |
54 C | ySize - Basin extent in y (m). |
55 C | pBeta - Planetary beta (s^-1.m^-1). |
56 C | I,J,K - Loop counters. |
57 C \-------------------------------------------------------------------------/
58 REAL DELTAZ(nz)
59 REAL torry
60 REAL y
61 REAL ySize
62 REAL pBeta
63 REAL Q
64 REAL DELTAF
65 REAL Fref
66 REAL fWall
67 REAL Beta
68 REAL r
69 REAL Kz
70 REAL Dep
71 REAL Rho0
72 REAL dist
73 REAL RMAX
74 REAL RSQ
75 REAL tau
76 REAL XCENTER
77 REAL YCENTER
78 REAL mx
79 REAL mn
80 REAL HEATFLAG
81 REAL HEATSUM
82 REAL RANDN
83 INTEGER I
84 INTEGER J
85 INTEGER K
86
87 REAL TAUMAX, DISTY, LY
88 C
89 C /-------------------------------------------------------------------------\
90 C | Parameter settings for small double gyre beta-plane experiment. |
91 C \=========================================================================|
92 C
93 G = 9.81D0
94 RONIL = 999.8D0
95 CP = 3900.D0
96 CENDIGNOREENDIGNOREENDIGNOREENDIGNOREENDIGNOREENDIGNOREENDIGNOREENDIGNORE
97
98 delT = 1200.D0
99 freeSurfFac = 1.D0
100 startTime = 0.
101 endTime = startTime+10.*delT
102 dPUFreq = 300.*delT
103
104
105 CSTARTIGNORESTARTIGNORESTARTIGNORESTARTIGNORESTARTIGNORESTARTIGNORESTARTIGNORE
106 phiMin = -30.
107 dPhi = 1.0
108 dTheta = 1.0
109 CENDIGNOREENDIGNOREENDIGNOREENDIGNOREENDIGNOREENDIGNOREENDIGNOREENDIGNORE
110
111
112 a2MomXY = 4.D2
113 a2MomZ = 1.D-2*G*RONIL*G*RONIL
114 a4MomXY = 0.D0
115 a2TempXY = 4.D2
116 a2TempZ = 1.D-2*G*RONIL*G*RONIL
117 C a2TempZ = 1.D-5*G*RONIL*G*RONIL
118 a4TempXy = 0.D0
119
120
121 CSTARTIGNORESTARTIGNORESTARTIGNORESTARTIGNORESTARTIGNORESTARTIGNORESTARTIGNORE
122 WRITE(20,*) ' delT',delT
123 WRITE(20,*) ' startTime',startTime
124 WRITE(20,*) ' endTime',endTime
125 WRITE(20,*) ' dPUFreq',dPUFreq
126 WRITE(20,*) ' a2MomXY',a2MomXY
127 WRITE(20,*) ' a2MomZ',a2MomZ
128 WRITE(20,*) ' a2TempXY',a2TempXY
129 WRITE(20,*) ' a2TempZ',a2TempZ
130 C********* GMGS *******************
131 C Ratio of time step
132 asyncfac = 1.0
133 C Scale dependent mixing scheme parameters
134 difref = a2tempXY
135 difmin = 0.1 * a2tempXY
136 difhmx = 2.5 * a2tempXY
137 coef = 1.8E9
138 dbotm = 1000.
139 C NOTE: MOD( INT(dslpcalcfreq), INT(dkcalcfreq) ) must = 0
140 dslpcalcfreq = 2. * delT
141 dkcalcfreq = 12. * delT
142 C Threashold for mix layer base
143 MixLayrDensGrad = 0.05
144 C Slope factors
145 slpmax1=5.e-3
146 slpmax2=1.e-2
147 slpmax3=1.e-3
148 small=1.e-30
149 dthin=50.
150 C Minimum density stratification
151 MinSigStrat= -1.e-8
152 c epsl = Av/Ah in Redis scheme
153 epsl = 0.
154 trDifScheme = gmconKh
155 verticalProfKh = .FALSE.
156
157 divHmax = 1.D+300
158 divHMin = 0.
159 rDelt = 1./DELT
160 numberOfTimeSteps = NINT((endTime-startTime)/delT)
161 WRITE(20,*) ' numberOfTimeSteps',numberOfTimeSteps
162 currentTime = startTime
163 nIter = NINT(startTime/delt)
164 WRITE(20,*) ' nIter',nIter
165 WRITE(puSuffix,'(I10.10)') nIter
166 PickupRun = .FALSE.
167 IF ( startTime .NE. 0. ) pickupRun = .TRUE.
168 C State variables
169 gsNM1 = 0.
170 gtNM1 = 0.
171 guNM1 = 0.
172 gvNM1 = 0.
173 U = 0.
174 V = 0.
175 W = 0.
176 S = 0.
177 PH = 0.
178 PS = 0.
179 PSNM1 = 0.
180 PHNM1 = 0.
181 uAja = 0.
182 vAja = 0.
183 CENDIGNOREENDIGNOREENDIGNOREENDIGNOREENDIGNOREENDIGNOREENDIGNOREENDIGNORE
184
185
186 THS(1) = 20.D0
187 THS(2) = 10.D0
188 THS(3) = 8.D0
189 THS(4) = 6.D0
190 SSPPT = 10.D0
191 T(_I3(1,:,:)) = 20.0D0
192 T(_I3(2,:,:)) = 10.0D0
193 T(_I3(3,:,:)) = 8.0D0
194 T(_I3(4,:,:)) = 6.0D0
195 C T(_I3(1,:,:)) = 1.D-12
196 C T(_I3(2,:,:)) = 0.
197 C T(_I3(3,:,:)) = 0.
198 C T(_I3(4,:,:)) = 0.
199 C T(_I3(1,:,:)) = 23.0D0
200 C T(_I3(2,:,:)) = 22.0D0
201 C T(_I3(3,:,:)) = 21.0D0
202 C T(_I3(4,:,:)) = 20.0D0
203 S = 10.0D0
204 DELTAZ(1) = 500.0D0
205 DELTAZ(2) = 500.0D0
206 DELTAZ(3) = 500.0D0
207 DELTAZ(4) = 500.0D0
208
209 C Geometry
210 DM = 20. D3
211 DM = 1.
212 WRITE(20,*) ' DM',DM
213
214
215 CBEGINIGNOREBEGINIGNOREBEGINIGNOREBEGINIGNOREBEGINIGNOREBEGINIGNOREBEGINIGNORE
216 rPvolHat = 0.
217 DO K = 1, nz
218 DELPS(K) = G*RONIL*DELTAZ(K)
219 XA(_I3(K,:,:)) = DELPS(K)*DM
220 YA(_I3(K,:,:)) = DELPS(K)*DM
221 rUVol(_I3(K,:,:)) = 1.D0/DM/DM/DELPS(K)
222 rVVol(_I3(K,:,:)) = 1.D0/DM/DM/DELPS(K)
223 rPVol(_I3(K,:,:)) = 1.D0/DM/DM/DELPS(K)
224 rPvolHat = rPvolHat+DM*DM*DELPS(K)
225 IF ( K .EQ. 1 ) THEN
226 uDdzOp(_I3(K,:,:)) = 1.D0/DELPS(K)
227 vDdzOp(_I3(K,:,:)) = 1.D0/DELPS(K)
228 pDdzOp(_I3(K,:,:)) = 1.D0/DELPS(K)
229 ELSE
230 uDdzOp(_I3(K,:,:)) = 2.D0/(DELPS(K)+DELPS(K-1))
231 vDdzOp(_I3(K,:,:)) = 2.D0/(DELPS(K)+DELPS(K-1))
232 pDdzOp(_I3(K,:,:)) = 2.D0/(DELPS(K)+DELPS(K-1))
233 ENDIF
234 ! begin *** Redi Operators
235 rDZatP(K)=1.D0/DELPS(K)
236 if (K.eq.1) then
237 rDZatW(K)=1.D0/(DELPS(K))
238 else
239 rDZatW(K)=2.D0/(DELPS(K)+DELPS(K-1))
240 endif
241 ! end ***** Redi Operators
242 ENDDO
243 ! begin *** Redi Operators
244 rDXatU=1.d0/DM
245 rDYatV=1.d0/DM
246 ! end ***** Redi Operators
247
248 ZA = DM*DM
249 rPVolHat = 1.D0/rPvolHat
250 uDdxOp = 1.D0/DM
251 uDdyOp = 1.D0/DM
252 vDdxOp = uDdxOp
253 vDdyOp = uDdyOp
254 pDdxOp = uDdxOp
255 pDdyOp = uDdyOp
256 C Physical parameters
257 uTphiOp = 0.
258 vTphiOp = 0.
259 fCorW = 0.
260 pBeta = 1.D-11
261 CENDIGNOREENDIGNOREENDIGNOREENDIGNOREENDIGNOREENDIGNOREENDIGNOREENDIGNORE
262
263
264 C radial BETA code begins - to use comment out 'NOBETA CODE' following
265 XCENTER = (Nx + 1)/2
266 WRITE(0,*) ' XCENTER: ', XCENTER
267 YCENTER = (Ny + 1)/2
268 WRITE(0,*) ' YCENTER: ', YCENTER
269 RMAX = 54.0
270 WRITE(20,*) ' RMAX: ',RMAX
271 WRITE(20,*) ' actual radius (m): ',(RMAX*DM)
272 fRef = 4.0
273 WRITE(20,*) ' fRef: ',fRef
274 fWall = 4.0
275 WRITE(20,*) ' fWall: ',fWall
276 Beta = (fWall - fRef)/(RMAX)
277 WRITE(20,*) ' Beta(s-1/gridpoint): ',Beta
278 WRITE(20,*) ' Beta(s-1/m): ',Beta/DM
279
280
281
282 C start NOBETACODE
283
284 fCorV(_I3(:,:,1)) = 1.D-4
285 Cd2
286 C pBeta = 0.
287 Cd2
288 write(20,*) 'NO RADIAL BETA'
289
290 fCorU(_I3(:,:,1)) = fCorV(_I3(:,:,1))+0.5*DM*pBeta
291 DO J = 2, ny
292 fCorV(_I3(:,:,J)) = fCorV(_I3(:,:,J-1))+DM*pBeta
293 fCorU(_I3(:,:,J)) = fCorU(_I3(:,:,J-1))+DM*pBeta
294 ENDDO
295
296 C end NOBETACODE
297
298
299 CBEGINIGNOREBEGINIGNOREBEGINIGNOREBEGINIGNOREBEGINIGNOREBEGINIGNOREBEGINIGNORE
300 sBeta = 0.
301 WRITE(20,*) ' sBeta',sBeta
302 tAlpha = 2.D-4
303 C tAlpha = 0.D-4
304 WRITE(20,*) ' tAlpha',tAlpha
305
306
307 C Numerics parameters
308 abEps = 0.1
309 rAja = 9.930555555555556D-1
310 C rAja = 0.
311 dUnit = 10
312 scrUnit1 = 11
313 scrUnit2 = 12
314 scrUnitError = 13
315 InitialisationError = .FALSE.
316 IntegrationError = .FALSE.
317
318 C Topography
319 PMASK = WATER
320 C Enclose in a box
321 C Wall at X = Lx
322 PMASK(_I3(:,nx,:)) = LAND ! Land in east most cell
323 C Wall at Y = Ly
324 PMASK(_I3(:,:,ny)) = LAND ! Land in northern most cell
325 C bathySource = textBathymetry
326 C Island
327 PMASK(_I3(Nz,1,24)) = LAND
328
329 C
330
331 MAX2DIT = 1000
332 TOLER2D = 1.D-13
333 freqCheckToler2d = 1
334
335 C-- Momentum equation forcing terms
336 tauMax = 0.1D0
337 lY = 0.
338 DO j=1,nY-1
339 lY = lY + DM
340 ENDDO
341 distY = 0.
342 DO j=1,nY
343 distY = distY+DM*0.5D0
344 DO i=1,nX
345 fv(i,j) = 0.D0
346 fu(i,j) = -tauMax*cos(2.D0*PI*distY/lY)
347 C fu(i,j) = -tauMax
348 fu(i,j) = tauMax*sin(PI*distY/lY)
349 fu(i,j) = fu(i,j)/(deltaZ(1)*ronil)
350 ENDDO
351 distY = distY+DM*0.5D0
352 ENDDO
353 fu(4,4) = fu(4,4)*0.917D0
354
355 C
356 CcnhDebugStarts
357 Cdbg WRITE(0,*) ' lY = ', lY
358 Cdbg WRITE(0,*) ' distY = ', distY
359 Cdbg WRITE(0,*) ' tauMax = ', tauMax
360 WRITE(0,*) ' fu '
361 CALL PLOT_FIELD(fu,Nx,Ny)
362 Cdbg STOP
363 CcnhDebugEnds
364 C
365 END

  ViewVC Help
Powered by ViewVC 1.1.22