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

Diff of /MITgcm/model/src/thermodynamics.F

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

revision 1.13 by adcroft, Fri Sep 28 03:36:16 2001 UTC revision 1.13.2.4 by heimbach, Wed Apr 17 01:40:26 2002 UTC
# Line 2  C $Header$ Line 2  C $Header$
2  C $Name$  C $Name$
3    
4  #include "CPP_OPTIONS.h"  #include "CPP_OPTIONS.h"
5    #ifdef ALLOW_GMREDI
6    # include "GMREDI_OPTIONS.h"
7    #endif
8    #ifdef ALLOW_KPP
9    # include "KPP_OPTIONS.h"
10    #endif
11    
12  CBOP  CBOP
13  C     !ROUTINE: THERMODYNAMICS  C     !ROUTINE: THERMODYNAMICS
# Line 151  C     This is currently used by IVDC and Line 157  C     This is currently used by IVDC and
157        INTEGER i, j        INTEGER i, j
158        INTEGER k, km1, kup, kDown        INTEGER k, km1, kup, kDown
159    
 Cjmc : add for phiHyd output <- but not working if multi tile per CPU  
 c     CHARACTER*(MAX_LEN_MBUF) suff  
 c     LOGICAL  DIFFERENT_MULTIPLE  
 c     EXTERNAL DIFFERENT_MULTIPLE  
 Cjmc(end)  
160  CEOP  CEOP
161    
162  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
# Line 174  C     uninitialised but inert locations. Line 175  C     uninitialised but inert locations.
175          yA(i,j)      = 0. _d 0          yA(i,j)      = 0. _d 0
176          uTrans(i,j)  = 0. _d 0          uTrans(i,j)  = 0. _d 0
177          vTrans(i,j)  = 0. _d 0          vTrans(i,j)  = 0. _d 0
         DO k=1,Nr  
          phiHyd(i,j,k)  = 0. _d 0  
          sigmaX(i,j,k) = 0. _d 0  
          sigmaY(i,j,k) = 0. _d 0  
          sigmaR(i,j,k) = 0. _d 0  
         ENDDO  
         rhoKM1 (i,j) = 0. _d 0  
178          rhok   (i,j) = 0. _d 0          rhok   (i,j) = 0. _d 0
179          phiSurfX(i,j) = 0. _d 0          phiSurfX(i,j) = 0. _d 0
180          phiSurfY(i,j) = 0. _d 0          phiSurfY(i,j) = 0. _d 0
# Line 228  C--     Set up work arrays that need val Line 222  C--     Set up work arrays that need val
222            fVerS  (i,j,2) = 0. _d 0            fVerS  (i,j,2) = 0. _d 0
223            fVerTr1(i,j,1) = 0. _d 0            fVerTr1(i,j,1) = 0. _d 0
224            fVerTr1(i,j,2) = 0. _d 0            fVerTr1(i,j,2) = 0. _d 0
225              rhoKM1 (i,j)   = 0. _d 0
226           ENDDO           ENDDO
227          ENDDO          ENDDO
228    
# Line 235  C--     Set up work arrays that need val Line 230  C--     Set up work arrays that need val
230           DO j=1-OLy,sNy+OLy           DO j=1-OLy,sNy+OLy
231            DO i=1-OLx,sNx+OLx            DO i=1-OLx,sNx+OLx
232  C This is currently also used by IVDC and Diagnostics  C This is currently also used by IVDC and Diagnostics
233               phiHyd(i,j,k)  = 0. _d 0
234               sigmaX(i,j,k) = 0. _d 0
235               sigmaY(i,j,k) = 0. _d 0
236               sigmaR(i,j,k) = 0. _d 0
237             ConvectCount(i,j,k) = 0.             ConvectCount(i,j,k) = 0.
238             KappaRT(i,j,k) = 0. _d 0             KappaRT(i,j,k) = 0. _d 0
239             KappaRS(i,j,k) = 0. _d 0             KappaRS(i,j,k) = 0. _d 0
# Line 244  C This is currently also used by IVDC an Line 243  C This is currently also used by IVDC an
243  #ifdef ALLOW_PASSIVE_TRACER  #ifdef ALLOW_PASSIVE_TRACER
244             gTr1(i,j,k,bi,bj) = 0. _d 0             gTr1(i,j,k,bi,bj) = 0. _d 0
245  #endif  #endif
246    #ifdef ALLOW_GMREDI
247               Kwx(i,j,k,bi,bj)    = 0. _d 0
248               Kwy(i,j,k,bi,bj)    = 0. _d 0
249               Kwz(i,j,k,bi,bj)    = 0. _d 0
250    #ifdef GM_NON_UNITY_DIAGONAL
251               Kux(i,j,k,bi,bj)    = 0. _d 0
252               Kvy(i,j,k,bi,bj)    = 0. _d 0
253    #endif
254    #endif /* ALLOW_GMREDI */
255  #endif  #endif
256            ENDDO            ENDDO
257           ENDDO           ENDDO
# Line 344  CADJ STORE wvel (:,:,:,bi,bj) = comlev1_ Line 352  CADJ STORE wvel (:,:,:,bi,bj) = comlev1_
352  #ifdef  ALLOW_OBCS  #ifdef  ALLOW_OBCS
353  C--     Calculate future values on open boundaries  C--     Calculate future values on open boundaries
354          IF (useOBCS) THEN          IF (useOBCS) THEN
355            CALL OBCS_CALC( bi, bj, myTime+deltaT,            CALL OBCS_CALC( bi, bj, myTime+deltaT, myIter+1,
356       I            uVel, vVel, wVel, theta, salt,       I            uVel, vVel, wVel, theta, salt,
357       I            myThid )       I            myThid )
358          ENDIF          ENDIF
# Line 370  CADJ &     = comlev1_bibj, key=ikey, byt Line 378  CADJ &     = comlev1_bibj, key=ikey, byt
378  #ifdef  ALLOW_GMREDI  #ifdef  ALLOW_GMREDI
379    
380  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
381  CADJ STORE sigmaX(:,:,:) = comlev1, key=ikey, byte=isbyte  CADJ STORE sigmaX(:,:,k)        = comlev1_bibj_k, key=kkey, byte=isbyte
382  CADJ STORE sigmaY(:,:,:) = comlev1, key=ikey, byte=isbyte  CADJ STORE sigmaY(:,:,k)        = comlev1_bibj_k, key=kkey, byte=isbyte
383  CADJ STORE sigmaR(:,:,:) = comlev1, key=ikey, byte=isbyte  CADJ STORE sigmaR(:,:,k)        = comlev1_bibj_k, key=kkey, byte=isbyte
384  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
385  C--     Calculate iso-neutral slopes for the GM/Redi parameterisation  C--     Calculate iso-neutral slopes for the GM/Redi parameterisation
386          IF (useGMRedi) THEN          IF (useGMRedi) THEN
387            DO k=1,Nr            CALL GMREDI_CALC_TENSOR(
388              CALL GMREDI_CALC_TENSOR(       I             bi, bj, iMin, iMax, jMin, jMax,
      I             bi, bj, iMin, iMax, jMin, jMax, k,  
389       I             sigmaX, sigmaY, sigmaR,       I             sigmaX, sigmaY, sigmaR,
390       I             myThid )       I             myThid )
           ENDDO  
391  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
392          ELSE          ELSE
393            DO k=1, Nr            CALL GMREDI_CALC_TENSOR_DUMMY(
394              CALL GMREDI_CALC_TENSOR_DUMMY(       I             bi, bj, iMin, iMax, jMin, jMax,
      I             bi, bj, iMin, iMax, jMin, jMax, k,  
395       I             sigmaX, sigmaY, sigmaR,       I             sigmaX, sigmaY, sigmaR,
396       I             myThid )       I             myThid )
           ENDDO  
397  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
398          ENDIF          ENDIF
399    
# Line 445  C note(jmc) : phiHyd=0 at this point but Line 449  C note(jmc) : phiHyd=0 at this point but
449          ENDIF          ENDIF
450  #endif /* ALLOW_AIM */  #endif /* ALLOW_AIM */
451    
452    #ifdef ALLOW_TIMEAVE
453            IF (taveFreq.GT.0. .AND. ivdc_kappa.NE.0.) THEN
454              CALL TIMEAVE_CUMULATE(ConvectCountTave, ConvectCount, Nr,
455         I                               deltaTclock, bi, bj, myThid)
456            ENDIF
457    #endif /* ALLOW_TIMEAVE */
458    
459  #ifndef DISABLE_MULTIDIM_ADVECTION  #ifndef DISABLE_MULTIDIM_ADVECTION
460  C--     Some advection schemes are better calculated using a multi-dimensional  C--     Some advection schemes are better calculated using a multi-dimensional
461  C       method in the absence of any other terms and, if used, is done here.  C       method in the absence of any other terms and, if used, is done here.

Legend:
Removed from v.1.13  
changed lines
  Added in v.1.13.2.4

  ViewVC Help
Powered by ViewVC 1.1.22