/[MITgcm]/MITgcm/model/src/do_oceanic_phys.F
ViewVC logotype

Annotation of /MITgcm/model/src/do_oceanic_phys.F

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


Revision 1.20 - (hide annotations) (download)
Sun Nov 6 22:20:30 2005 UTC (18 years, 6 months ago) by jmc
Branch: MAIN
CVS Tags: checkpoint57y_post, checkpoint57y_pre, checkpoint58, checkpoint57x_post, checkpoint57z_post
Changes since 1.19: +14 -1 lines
time-ave surf_flux & convect_adjust moved from thermodynamics to do_oceanic_phys

1 jmc 1.20 C $Header: /u/gcmpack/MITgcm/model/src/do_oceanic_phys.F,v 1.19 2005/09/15 14:55:15 jmc Exp $
2 jmc 1.1 C $Name: $
3    
4     #include "PACKAGES_CONFIG.h"
5     #include "CPP_OPTIONS.h"
6    
7     #ifdef ALLOW_AUTODIFF_TAMC
8     # ifdef ALLOW_GMREDI
9     # include "GMREDI_OPTIONS.h"
10     # endif
11     # ifdef ALLOW_KPP
12     # include "KPP_OPTIONS.h"
13     # endif
14     #endif /* ALLOW_AUTODIFF_TAMC */
15    
16     CBOP
17     C !ROUTINE: DO_OCEANIC_PHYS
18     C !INTERFACE:
19     SUBROUTINE DO_OCEANIC_PHYS(myTime, myIter, myThid)
20     C !DESCRIPTION: \bv
21     C *==========================================================*
22     C | SUBROUTINE DO_OCEANIC_PHYS
23     C | o Controlling routine for oceanic physics and
24     C | parameterization
25     C *==========================================================*
26     C | o originally, part of S/R thermodynamics
27     C *==========================================================*
28     C \ev
29    
30     C !USES:
31     IMPLICIT NONE
32     C == Global variables ===
33     #include "SIZE.h"
34     #include "EEPARAMS.h"
35     #include "PARAMS.h"
36     #include "DYNVARS.h"
37     #include "GRID.h"
38 jmc 1.20 #ifdef ALLOW_TIMEAVE
39     #include "TIMEAVE_STATV.h"
40     #endif
41 jmc 1.1
42     #ifdef ALLOW_AUTODIFF_TAMC
43     # include "tamc.h"
44     # include "tamc_keys.h"
45     # include "FFIELDS.h"
46     # include "EOS.h"
47     # ifdef ALLOW_KPP
48     # include "KPP.h"
49     # endif
50     # ifdef ALLOW_GMREDI
51     # include "GMREDI.h"
52     # endif
53     # ifdef ALLOW_EBM
54     # include "EBM.h"
55     # endif
56 heimbach 1.10 # ifdef EXACT_CONSERV
57     # include "SURFACE.h"
58     # endif
59 jmc 1.1 #endif /* ALLOW_AUTODIFF_TAMC */
60    
61     C !INPUT/OUTPUT PARAMETERS:
62     C == Routine arguments ==
63 jmc 1.18 C myTime :: Current time in simulation
64     C myIter :: Current iteration number in simulation
65     C myThid :: Thread number for this instance of the routine.
66 jmc 1.1 _RL myTime
67     INTEGER myIter
68     INTEGER myThid
69    
70     C !LOCAL VARIABLES:
71     C == Local variables
72 jmc 1.18 C rhoK, rhoKM1 :: Density at current level, and level above
73     C iMin, iMax :: Ranges and sub-block indices on which calculations
74 jmc 1.1 C jMin, jMax are applied.
75 jmc 1.18 C bi, bj :: tile indices
76     C i,j,k :: loop indices
77 jmc 1.1 _RL rhokm1 (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
78     _RL rhok (1-OLx:sNx+OLx,1-OLy:sNy+OLy)
79     _RL sigmaX (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
80     _RL sigmaY (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
81     _RL sigmaR (1-OLx:sNx+OLx,1-OLy:sNy+OLy,Nr)
82     INTEGER iMin, iMax
83     INTEGER jMin, jMax
84     INTEGER bi, bj
85 jmc 1.18 INTEGER i, j, k
86 jmc 1.17 INTEGER doDiagsRho
87     #ifdef ALLOW_DIAGNOSTICS
88     LOGICAL DIAGNOSTICS_IS_ON
89     EXTERNAL DIAGNOSTICS_IS_ON
90     #endif /* ALLOW_DIAGNOSTICS */
91 jmc 1.1
92     CEOP
93    
94 heimbach 1.12 #ifdef ALLOW_AUTODIFF_TAMC
95     C-- dummy statement to end declaration part
96     itdkey = 1
97     #endif /* ALLOW_AUTODIFF_TAMC */
98    
99 jmc 1.1 #ifdef ALLOW_DEBUG
100 jmc 1.5 IF ( debugLevel .GE. debLevB )
101 jmc 1.1 & CALL DEBUG_ENTER('DO_OCEANIC_PHYS',myThid)
102     #endif
103    
104 jmc 1.17 doDiagsRho = 0
105     #ifdef ALLOW_DIAGNOSTICS
106     IF ( useDiagnostics .AND. fluidIsWater ) THEN
107     IF ( DIAGNOSTICS_IS_ON('DRHODR ',myThid) ) doDiagsRho = 1
108     IF ( DIAGNOSTICS_IS_ON('RHOANOSQ',myThid) .OR.
109     & DIAGNOSTICS_IS_ON('URHOMASS',myThid) .OR.
110     & DIAGNOSTICS_IS_ON('VRHOMASS',myThid) .OR.
111     & DIAGNOSTICS_IS_ON('WRHOMASS',myThid) .OR.
112     & DIAGNOSTICS_IS_ON('WRHOMASS',myThid) ) doDiagsRho = 2
113     ENDIF
114     #endif /* ALLOW_DIAGNOSTICS */
115    
116 jmc 1.5 #ifdef ALLOW_THSICE
117 jmc 1.14 IF ( useThSIce .AND. fluidIsWater ) THEN
118 jmc 1.5 #ifdef ALLOW_DEBUG
119     IF ( debugLevel .GE. debLevB )
120     & CALL DEBUG_CALL('THSICE_MAIN',myThid)
121     #endif
122     C-- Step forward Therm.Sea-Ice variables
123     C and modify forcing terms including effects from ice
124     CALL TIMER_START('THSICE_MAIN [DO_OCEANIC_PHYS]', myThid)
125     CALL THSICE_MAIN( myTime, myIter, myThid )
126     CALL TIMER_STOP( 'THSICE_MAIN [DO_OCEANIC_PHYS]', myThid)
127     ENDIF
128     #endif /* ALLOW_THSICE */
129    
130     C-- Freeze water at the surface
131     #ifdef ALLOW_AUTODIFF_TAMC
132     CADJ STORE theta = comlev1, key = ikey_dynamics
133     #endif
134 heimbach 1.12 IF ( allowFreezing
135     & .AND. .NOT. useSEAICE
136 jmc 1.5 & .AND. .NOT. useThSIce ) THEN
137     CALL FREEZE_SURFACE( myTime, myIter, myThid )
138     ENDIF
139    
140     #ifdef COMPONENT_MODULE
141     # ifndef ALLOW_AIM
142     C-- Apply imported data (from coupled interface) to forcing fields
143 edhill 1.7 C jmc: do not know precisely where to put this call (bf or af thSIce ?)
144 jmc 1.5 IF ( useCoupler ) THEN
145     CALL OCN_APPLY_IMPORT( .TRUE., myTime, myIter, myThid )
146     ENDIF
147     # endif
148     #endif /* COMPONENT_MODULE */
149    
150 jmc 1.1 #ifdef ALLOW_AUTODIFF_TAMC
151     C-- HPF directive to help TAMC
152     CHPF$ INDEPENDENT
153     #endif /* ALLOW_AUTODIFF_TAMC */
154     DO bj=myByLo(myThid),myByHi(myThid)
155     #ifdef ALLOW_AUTODIFF_TAMC
156 heimbach 1.15 C-- HPF directive to help TAMC
157     CHPF$ INDEPENDENT
158 jmc 1.1 #endif /* ALLOW_AUTODIFF_TAMC */
159     DO bi=myBxLo(myThid),myBxHi(myThid)
160    
161     #ifdef ALLOW_AUTODIFF_TAMC
162     act1 = bi - myBxLo(myThid)
163     max1 = myBxHi(myThid) - myBxLo(myThid) + 1
164     act2 = bj - myByLo(myThid)
165     max2 = myByHi(myThid) - myByLo(myThid) + 1
166     act3 = myThid - 1
167     max3 = nTx*nTy
168     act4 = ikey_dynamics - 1
169     itdkey = (act1 + 1) + act2*max1
170     & + act3*max1*max2
171     & + act4*max1*max2*max3
172     #endif /* ALLOW_AUTODIFF_TAMC */
173    
174     C-- Set up work arrays with valid (i.e. not NaN) values
175     C These inital values do not alter the numerical results. They
176     C just ensure that all memory references are to valid floating
177     C point numbers. This prevents spurious hardware signals due to
178     C uninitialised but inert locations.
179    
180     DO j=1-OLy,sNy+OLy
181     DO i=1-OLx,sNx+OLx
182     rhok (i,j) = 0. _d 0
183     rhoKM1 (i,j) = 0. _d 0
184     ENDDO
185     ENDDO
186    
187     DO k=1,Nr
188     DO j=1-OLy,sNy+OLy
189     DO i=1-OLx,sNx+OLx
190     C This is currently also used by IVDC and Diagnostics
191     sigmaX(i,j,k) = 0. _d 0
192     sigmaY(i,j,k) = 0. _d 0
193     sigmaR(i,j,k) = 0. _d 0
194     #ifdef ALLOW_AUTODIFF_TAMC
195     cph all the following init. are necessary for TAF
196     cph although some of these are re-initialised later.
197     IVDConvCount(i,j,k,bi,bj) = 0.
198     # ifdef ALLOW_GMREDI
199     Kwx(i,j,k,bi,bj) = 0. _d 0
200     Kwy(i,j,k,bi,bj) = 0. _d 0
201     Kwz(i,j,k,bi,bj) = 0. _d 0
202     # ifdef GM_NON_UNITY_DIAGONAL
203     Kux(i,j,k,bi,bj) = 0. _d 0
204     Kvy(i,j,k,bi,bj) = 0. _d 0
205     # endif
206     # ifdef GM_EXTRA_DIAGONAL
207     Kuz(i,j,k,bi,bj) = 0. _d 0
208     Kvz(i,j,k,bi,bj) = 0. _d 0
209     # endif
210     # ifdef GM_BOLUS_ADVEC
211     GM_PsiX(i,j,k,bi,bj) = 0. _d 0
212     GM_PsiY(i,j,k,bi,bj) = 0. _d 0
213     # endif
214     # ifdef GM_VISBECK_VARIABLE_K
215     VisbeckK(i,j,bi,bj) = 0. _d 0
216     # endif
217     # endif /* ALLOW_GMREDI */
218     #endif /* ALLOW_AUTODIFF_TAMC */
219     ENDDO
220     ENDDO
221     ENDDO
222    
223     iMin = 1-OLx
224     iMax = sNx+OLx
225     jMin = 1-OLy
226     jMax = sNy+OLy
227    
228     #ifdef ALLOW_AUTODIFF_TAMC
229     CADJ STORE theta(:,:,:,bi,bj) = comlev1_bibj, key=itdkey, byte=isbyte
230     CADJ STORE salt (:,:,:,bi,bj) = comlev1_bibj, key=itdkey, byte=isbyte
231 heimbach 1.12 CADJ STORE totphihyd(:,:,:,bi,bj)
232 jmc 1.1 CADJ & = comlev1_bibj, key=itdkey, byte=isbyte
233 heimbach 1.10 # ifdef ALLOW_KPP
234 jmc 1.1 CADJ STORE uvel (:,:,:,bi,bj) = comlev1_bibj, key=itdkey, byte=isbyte
235     CADJ STORE vvel (:,:,:,bi,bj) = comlev1_bibj, key=itdkey, byte=isbyte
236 heimbach 1.10 # endif
237     # ifdef EXACT_CONSERV
238     CADJ STORE pmepr(:,:,bi,bj) = comlev1_bibj, key=itdkey, byte=isbyte
239     # endif
240 jmc 1.1 #endif /* ALLOW_AUTODIFF_TAMC */
241    
242     #ifdef ALLOW_DEBUG
243     IF ( debugLevel .GE. debLevB )
244     & CALL DEBUG_MSG('ENTERING UPWARD K LOOP',myThid)
245     #endif
246    
247     C-- Start of diagnostic loop
248     DO k=Nr,1,-1
249    
250     #ifdef ALLOW_AUTODIFF_TAMC
251     C? Patrick, is this formula correct now that we change the loop range?
252     C? Do we still need this?
253     cph kkey formula corrected.
254     cph Needed for rhok, rhokm1, in the case useGMREDI.
255     kkey = (itdkey-1)*Nr + k
256     #endif /* ALLOW_AUTODIFF_TAMC */
257    
258     C-- Calculate gradients of potential density for isoneutral
259     C slope terms (e.g. GM/Redi tensor or IVDC diffusivity)
260     c IF ( k.GT.1 .AND. (useGMRedi.OR.ivdc_kappa.NE.0.) ) THEN
261 jmc 1.17 IF ( useGMRedi .OR. (k.GT.1 .AND. ivdc_kappa.NE.0.)
262     & .OR. doDiagsRho.GE.1 ) THEN
263 jmc 1.1 #ifdef ALLOW_DEBUG
264     IF ( debugLevel .GE. debLevB )
265     & CALL DEBUG_CALL('FIND_RHO',myThid)
266     #endif
267     #ifdef ALLOW_AUTODIFF_TAMC
268     CADJ STORE theta(:,:,k,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte
269     CADJ STORE salt (:,:,k,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte
270     #endif /* ALLOW_AUTODIFF_TAMC */
271     CALL FIND_RHO(
272     I bi, bj, iMin, iMax, jMin, jMax, k, k,
273     I theta, salt,
274     O rhoK,
275     I myThid )
276    
277     IF (k.GT.1) THEN
278     #ifdef ALLOW_AUTODIFF_TAMC
279     CADJ STORE theta(:,:,k-1,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte
280     CADJ STORE salt (:,:,k-1,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte
281     #endif /* ALLOW_AUTODIFF_TAMC */
282     CALL FIND_RHO(
283     I bi, bj, iMin, iMax, jMin, jMax, k-1, k,
284     I theta, salt,
285     O rhoKm1,
286     I myThid )
287     ENDIF
288     #ifdef ALLOW_DEBUG
289     IF ( debugLevel .GE. debLevB )
290     & CALL DEBUG_CALL('GRAD_SIGMA',myThid)
291     #endif
292     CALL GRAD_SIGMA(
293     I bi, bj, iMin, iMax, jMin, jMax, k,
294     I rhoK, rhoKm1, rhoK,
295     O sigmaX, sigmaY, sigmaR,
296     I myThid )
297     ENDIF
298    
299     #ifdef ALLOW_AUTODIFF_TAMC
300 heimbach 1.12 ctest# ifndef GM_EXCLUDE_CLIPPING
301 jmc 1.1 CADJ STORE rhok (:,:) = comlev1_bibj_k , key=kkey, byte=isbyte
302 heimbach 1.12 ctest# endif
303 jmc 1.1 CADJ STORE rhokm1 (:,:) = comlev1_bibj_k , key=kkey, byte=isbyte
304     #endif /* ALLOW_AUTODIFF_TAMC */
305     C-- Implicit Vertical Diffusion for Convection
306     c ==> should use sigmaR !!!
307     IF (k.GT.1 .AND. ivdc_kappa.NE.0.) THEN
308     #ifdef ALLOW_DEBUG
309     IF ( debugLevel .GE. debLevB )
310     & CALL DEBUG_CALL('CALC_IVDC',myThid)
311     #endif
312     CALL CALC_IVDC(
313     I bi, bj, iMin, iMax, jMin, jMax, k,
314     I rhoKm1, rhoK,
315     I myTime, myIter, myThid)
316     ENDIF
317    
318 jmc 1.17 #ifdef ALLOW_DIAGNOSTICS
319     IF ( doDiagsRho.GE.2 ) THEN
320     CALL DIAGS_RHO( k, bi, bj,
321     I rhoK, rhoKm1,
322     I myTime, myIter, myThid)
323     ENDIF
324     #endif
325    
326 jmc 1.1 C-- end of diagnostic k loop (Nr:1)
327     ENDDO
328    
329 jmc 1.8 #ifdef ALLOW_DIAGNOSTICS
330 jmc 1.17 c IF ( useDiagnostics .AND.
331     c & (useGMRedi .OR. ivdc_kappa.NE.0.) ) THEN
332     IF ( doDiagsRho.GE.1 ) THEN
333 jmc 1.16 CALL DIAGNOSTICS_FILL (sigmaR, 'DRHODR ', 0, Nr,
334     & 2, bi, bj, myThid)
335 jmc 1.8 ENDIF
336     #endif
337    
338 jmc 1.1 #ifdef ALLOW_OBCS
339     C-- Calculate future values on open boundaries
340     IF (useOBCS) THEN
341     #ifdef ALLOW_DEBUG
342     IF ( debugLevel .GE. debLevB )
343     & CALL DEBUG_CALL('OBCS_CALC',myThid)
344     #endif
345 heimbach 1.11 CALL OBCS_CALC( bi, bj, myTime+deltaTclock, myIter+1,
346 jmc 1.1 I uVel, vVel, wVel, theta, salt,
347     I myThid )
348     ENDIF
349     #endif /* ALLOW_OBCS */
350    
351     #ifndef ALLOW_AUTODIFF_TAMC
352 jmc 1.14 IF ( fluidIsWater ) THEN
353 jmc 1.1 #endif
354     C-- Determines forcing terms based on external fields
355     C relaxation terms, etc.
356     #ifdef ALLOW_DEBUG
357     IF ( debugLevel .GE. debLevB )
358     & CALL DEBUG_CALL('EXTERNAL_FORCING_SURF',myThid)
359     #endif
360     CALL EXTERNAL_FORCING_SURF(
361     I bi, bj, iMin, iMax, jMin, jMax,
362     I myTime, myIter, myThid )
363     #ifndef ALLOW_AUTODIFF_TAMC
364     ENDIF
365     #endif
366    
367     #ifdef ALLOW_AUTODIFF_TAMC
368     cph needed for KPP
369 jmc 1.4 CADJ STORE surfaceForcingU(:,:,bi,bj)
370 jmc 1.1 CADJ & = comlev1_bibj, key=itdkey, byte=isbyte
371 jmc 1.4 CADJ STORE surfaceForcingV(:,:,bi,bj)
372 jmc 1.1 CADJ & = comlev1_bibj, key=itdkey, byte=isbyte
373 jmc 1.4 CADJ STORE surfaceForcingS(:,:,bi,bj)
374 jmc 1.1 CADJ & = comlev1_bibj, key=itdkey, byte=isbyte
375 jmc 1.4 CADJ STORE surfaceForcingT(:,:,bi,bj)
376 jmc 1.1 CADJ & = comlev1_bibj, key=itdkey, byte=isbyte
377 jmc 1.4 CADJ STORE surfaceForcingTice(:,:,bi,bj)
378 jmc 1.1 CADJ & = comlev1_bibj, key=itdkey, byte=isbyte
379 heimbach 1.13
380 jmc 1.1 #endif /* ALLOW_AUTODIFF_TAMC */
381    
382     #ifdef ALLOW_GMREDI
383    
384     #ifdef ALLOW_AUTODIFF_TAMC
385 heimbach 1.10 # ifndef GM_EXCLUDE_CLIPPING
386 jmc 1.1 cph storing here is needed only for one GMREDI_OPTIONS:
387     cph define GM_BOLUS_ADVEC
388 heimbach 1.10 cph keep it although TAF says you dont need to.
389 jmc 1.1 cph but I've avoided the #ifdef for now, in case more things change
390     CADJ STORE sigmaX(:,:,:) = comlev1_bibj, key=itdkey, byte=isbyte
391     CADJ STORE sigmaY(:,:,:) = comlev1_bibj, key=itdkey, byte=isbyte
392 heimbach 1.12 CADJ STORE sigmaR(:,:,:) = comlev1_bibj, key=itdkey, byte=isbyte
393 heimbach 1.10 # endif
394 jmc 1.1 #endif /* ALLOW_AUTODIFF_TAMC */
395    
396     C-- Calculate iso-neutral slopes for the GM/Redi parameterisation
397     IF (useGMRedi) THEN
398     #ifdef ALLOW_DEBUG
399     IF ( debugLevel .GE. debLevB )
400     & CALL DEBUG_CALL('GMREDI_CALC_TENSOR',myThid)
401     #endif
402     CALL GMREDI_CALC_TENSOR(
403     I bi, bj, iMin, iMax, jMin, jMax,
404     I sigmaX, sigmaY, sigmaR,
405     I myThid )
406     #ifdef ALLOW_AUTODIFF_TAMC
407     ELSE
408     CALL GMREDI_CALC_TENSOR_DUMMY(
409     I bi, bj, iMin, iMax, jMin, jMax,
410     I sigmaX, sigmaY, sigmaR,
411     I myThid )
412     #endif /* ALLOW_AUTODIFF_TAMC */
413     ENDIF
414    
415     #endif /* ALLOW_GMREDI */
416    
417     #ifdef ALLOW_KPP
418     C-- Compute KPP mixing coefficients
419     IF (useKPP) THEN
420     #ifdef ALLOW_DEBUG
421     IF ( debugLevel .GE. debLevB )
422     & CALL DEBUG_CALL('KPP_CALC',myThid)
423     #endif
424     CALL KPP_CALC(
425     I bi, bj, myTime, myThid )
426     #ifdef ALLOW_AUTODIFF_TAMC
427     ELSE
428     CALL KPP_CALC_DUMMY(
429     I bi, bj, myTime, myThid )
430     #endif /* ALLOW_AUTODIFF_TAMC */
431     ENDIF
432    
433     #endif /* ALLOW_KPP */
434    
435 mlosch 1.6 #ifdef ALLOW_PP81
436     C-- Compute PP81 mixing coefficients
437     IF (usePP81) THEN
438     #ifdef ALLOW_DEBUG
439     IF ( debugLevel .GE. debLevB )
440     & CALL DEBUG_CALL('PP81_CALC',myThid)
441     #endif
442     CALL PP81_CALC(
443     I bi, bj, myTime, myThid )
444     ENDIF
445     #endif /* ALLOW_PP81 */
446    
447     #ifdef ALLOW_MY82
448     C-- Compute MY82 mixing coefficients
449     IF (useMY82) THEN
450     #ifdef ALLOW_DEBUG
451     IF ( debugLevel .GE. debLevB )
452     & CALL DEBUG_CALL('MY82_CALC',myThid)
453     #endif
454     CALL MY82_CALC(
455     I bi, bj, myTime, myThid )
456     ENDIF
457     #endif /* ALLOW_MY82 */
458    
459 mlosch 1.9 #ifdef ALLOW_GGL90
460     C-- Compute GGL90 mixing coefficients
461     IF (useGGL90) THEN
462     #ifdef ALLOW_DEBUG
463     IF ( debugLevel .GE. debLevB )
464     & CALL DEBUG_CALL('GGL90_CALC',myThid)
465     #endif
466     CALL GGL90_CALC(
467     I bi, bj, myTime, myThid )
468     ENDIF
469     #endif /* ALLOW_GGL90 */
470    
471 jmc 1.20 #ifdef ALLOW_TIMEAVE
472     IF ( taveFreq.GT. 0. _d 0 .AND. fluidIsWater ) THEN
473     CALL TIMEAVE_SURF_FLUX( bi, bj, myTime, myIter, myThid)
474     ENDIF
475     IF (taveFreq.GT.0. .AND. ivdc_kappa.NE.0.) THEN
476     CALL TIMEAVE_CUMULATE(ConvectCountTave, IVDConvCount,
477     I Nr, deltaTclock, bi, bj, myThid)
478     ENDIF
479     #endif /* ALLOW_TIMEAVE */
480    
481 jmc 1.1 C-- end bi,bj loops.
482     ENDDO
483     ENDDO
484    
485 jmc 1.18 #ifdef ALLOW_DIAGNOSTICS
486     IF ( fluidIsWater .AND. useDiagnostics ) THEN
487     CALL DIAGS_OCEANIC_SURF_FLUX( myTime, myIter, myThid )
488     ENDIF
489 jmc 1.19 IF ( ivdc_kappa.NE.0 .AND. useDiagnostics ) THEN
490     CALL DIAGNOSTICS_FILL( IVDConvCount,'CONVADJ ',
491     & 0, Nr, 0, 1, 1, myThid )
492     ENDIF
493 jmc 1.18 #endif
494    
495 jmc 1.1 #ifdef ALLOW_DEBUG
496     IF ( debugLevel .GE. debLevB )
497     & CALL DEBUG_LEAVE('DO_OCEANIC_PHYS',myThid)
498     #endif
499    
500     RETURN
501     END

  ViewVC Help
Powered by ViewVC 1.1.22