/[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.39 by jmc, Thu May 1 22:30:33 2003 UTC revision 1.40 by adcroft, Tue May 13 17:42:00 2003 UTC
# Line 162  C     This is currently used by IVDC and Line 162  C     This is currently used by IVDC and
162        INTEGER k, km1, kup, kDown        INTEGER k, km1, kup, kDown
163    
164  CEOP  CEOP
165    
166    #ifndef DISABLE_DEBUGMODE
167             IF (debugMode) CALL DEBUG_ENTER('FORWARD_STEP',myThid)
168    #endif
169    
170  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
171  C--   dummy statement to end declaration part  C--   dummy statement to end declaration part
# Line 291  CADJ STORE vvel (:,:,:,bi,bj) = comlev1_ Line 295  CADJ STORE vvel (:,:,:,bi,bj) = comlev1_
295  #endif  #endif
296  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
297    
298    #ifndef DISABLE_DEBUGMODE
299            IF (debugMode) CALL DEBUG_MSG('ENTERING UPWARD K LOOP',myThid)
300    #endif
301    
302  C--     Start of diagnostic loop  C--     Start of diagnostic loop
303          DO k=Nr,1,-1          DO k=Nr,1,-1
304    
# Line 325  C--       Calculate gradients of potenti Line 333  C--       Calculate gradients of potenti
333  C         slope terms (e.g. GM/Redi tensor or IVDC diffusivity)  C         slope terms (e.g. GM/Redi tensor or IVDC diffusivity)
334  c         IF ( k.GT.1 .AND. (useGMRedi.OR.ivdc_kappa.NE.0.) ) THEN  c         IF ( k.GT.1 .AND. (useGMRedi.OR.ivdc_kappa.NE.0.) ) THEN
335            IF ( useGMRedi .OR. (k.GT.1 .AND. ivdc_kappa.NE.0.) ) THEN            IF ( useGMRedi .OR. (k.GT.1 .AND. ivdc_kappa.NE.0.) ) THEN
336    #ifndef DISABLE_DEBUGMODE
337                IF (debugMode) CALL DEBUG_CALL('FIND_RHO',myThid)
338    #endif
339  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
340  CADJ STORE theta(:,:,k,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte  CADJ STORE theta(:,:,k,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte
341  CADJ STORE salt (:,:,k,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte  CADJ STORE salt (:,:,k,bi,bj) = comlev1_bibj_k, key=kkey, byte=isbyte
# Line 346  CADJ STORE salt (:,:,k-1,bi,bj) = comlev Line 357  CADJ STORE salt (:,:,k-1,bi,bj) = comlev
357       O        rhoKm1,       O        rhoKm1,
358       I        myThid )       I        myThid )
359              ENDIF              ENDIF
360    #ifndef DISABLE_DEBUGMODE
361                IF (debugMode) CALL DEBUG_CALL('GRAD_SIGMA',myThid)
362    #endif
363              CALL GRAD_SIGMA(              CALL GRAD_SIGMA(
364       I             bi, bj, iMin, iMax, jMin, jMax, k,       I             bi, bj, iMin, iMax, jMin, jMax, k,
365       I             rhoK, rhoKm1, rhoK,       I             rhoK, rhoKm1, rhoK,
# Line 360  CADJ STORE rhokm1 (:,:) = comlev1_bibj_k Line 374  CADJ STORE rhokm1 (:,:) = comlev1_bibj_k
374  C--       Implicit Vertical Diffusion for Convection  C--       Implicit Vertical Diffusion for Convection
375  c ==> should use sigmaR !!!  c ==> should use sigmaR !!!
376            IF (k.GT.1 .AND. ivdc_kappa.NE.0.) THEN            IF (k.GT.1 .AND. ivdc_kappa.NE.0.) THEN
377    #ifndef DISABLE_DEBUGMODE
378                IF (debugMode) CALL DEBUG_CALL('CALC_IVDC',myThid)
379    #endif
380              CALL CALC_IVDC(              CALL CALC_IVDC(
381       I        bi, bj, iMin, iMax, jMin, jMax, k,       I        bi, bj, iMin, iMax, jMin, jMax, k,
382       I        rhoKm1, rhoK,       I        rhoKm1, rhoK,
# Line 380  CADJ STORE wvel (:,:,:,bi,bj) = comlev1_ Line 397  CADJ STORE wvel (:,:,:,bi,bj) = comlev1_
397  #ifdef  ALLOW_OBCS  #ifdef  ALLOW_OBCS
398  C--     Calculate future values on open boundaries  C--     Calculate future values on open boundaries
399          IF (useOBCS) THEN          IF (useOBCS) THEN
400    #ifndef DISABLE_DEBUGMODE
401              IF (debugMode) CALL DEBUG_CALL('OBCS_CALC',myThid)
402    #endif
403            CALL OBCS_CALC( bi, bj, myTime+deltaT, myIter+1,            CALL OBCS_CALC( bi, bj, myTime+deltaT, myIter+1,
404       I            uVel, vVel, wVel, theta, salt,       I            uVel, vVel, wVel, theta, salt,
405       I            myThid )       I            myThid )
# Line 390  C--     Calculate future values on open Line 410  C--     Calculate future values on open
410  c********************************************  c********************************************
411  cswdice --- add ---  cswdice --- add ---
412  #ifdef ALLOW_THERM_SEAICE  #ifdef ALLOW_THERM_SEAICE
413    #ifndef DISABLE_DEBUGMODE
414            IF (debugMode) CALL DEBUG_CALL('ICE_FORCING',myThid)
415    #endif
416  C--     Determines forcing terms based on external fields  C--     Determines forcing terms based on external fields
417  c--     including effects from ice  c--     including effects from ice
418          CALL ICE_FORCING(          CALL ICE_FORCING(
# Line 401  cswdice --- end add --- Line 424  cswdice --- end add ---
424    
425  C--     Determines forcing terms based on external fields  C--     Determines forcing terms based on external fields
426  C       relaxation terms, etc.  C       relaxation terms, etc.
427    #ifndef DISABLE_DEBUGMODE
428            IF (debugMode) CALL DEBUG_CALL('EXTERNAL_FORCING_SURF',myThid)
429    #endif
430          CALL EXTERNAL_FORCING_SURF(          CALL EXTERNAL_FORCING_SURF(
431       I             bi, bj, iMin, iMax, jMin, jMax,       I             bi, bj, iMin, iMax, jMin, jMax,
432       I             myThid )       I             myThid )
# Line 441  CADJ STORE sigmaR(:,:,:)        = comlev Line 467  CADJ STORE sigmaR(:,:,:)        = comlev
467    
468  C--     Calculate iso-neutral slopes for the GM/Redi parameterisation  C--     Calculate iso-neutral slopes for the GM/Redi parameterisation
469          IF (useGMRedi) THEN          IF (useGMRedi) THEN
470    #ifndef DISABLE_DEBUGMODE
471              IF (debugMode) CALL DEBUG_CALL('GMREDI_CALC_TENSOR',myThid)
472    #endif
473            CALL GMREDI_CALC_TENSOR(            CALL GMREDI_CALC_TENSOR(
474       I             bi, bj, iMin, iMax, jMin, jMax,       I             bi, bj, iMin, iMax, jMin, jMax,
475       I             sigmaX, sigmaY, sigmaR,       I             sigmaX, sigmaY, sigmaR,
# Line 465  CADJ STORE Kwz(:,:,:,bi,bj)   = comlev1_ Line 494  CADJ STORE Kwz(:,:,:,bi,bj)   = comlev1_
494  #ifdef  ALLOW_KPP  #ifdef  ALLOW_KPP
495  C--     Compute KPP mixing coefficients  C--     Compute KPP mixing coefficients
496          IF (useKPP) THEN          IF (useKPP) THEN
497    #ifndef DISABLE_DEBUGMODE
498              IF (debugMode) CALL DEBUG_CALL('KPP_CALC',myThid)
499    #endif
500            CALL KPP_CALC(            CALL KPP_CALC(
501       I                  bi, bj, myTime, myThid )       I                  bi, bj, myTime, myThid )
502  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
# Line 499  CADJ STORE tr1  (:,:,:,bi,bj) = comlev1_ Line 531  CADJ STORE tr1  (:,:,:,bi,bj) = comlev1_
531  #ifdef ALLOW_AIM  #ifdef ALLOW_AIM
532  C       AIM - atmospheric intermediate model, physics package code.  C       AIM - atmospheric intermediate model, physics package code.
533          IF ( useAIM ) THEN          IF ( useAIM ) THEN
534    #ifndef DISABLE_DEBUGMODE
535              IF (debugMode) CALL DEBUG_CALL('AIM_DO_PHYSICS',myThid)
536    #endif
537           CALL TIMER_START('AIM_DO_PHYSICS   [THERMODYNAMICS]', myThid)           CALL TIMER_START('AIM_DO_PHYSICS   [THERMODYNAMICS]', myThid)
538           CALL AIM_DO_PHYSICS( bi, bj, myTime, myIter, myThid )           CALL AIM_DO_PHYSICS( bi, bj, myTime, myIter, myThid )
539           CALL TIMER_STOP( 'AIM_DO_PHYSICS   [THERMODYNAMICS]', myThid)           CALL TIMER_STOP( 'AIM_DO_PHYSICS   [THERMODYNAMICS]', myThid)
# Line 517  C recomputation. It *is* differentiable, Line 552  C recomputation. It *is* differentiable,
552  C Edit GAD_OPTIONS.h and #define DISABLE_MULTIDIM_ADVECTION to  C Edit GAD_OPTIONS.h and #define DISABLE_MULTIDIM_ADVECTION to
553  C disable this section of code.  C disable this section of code.
554          IF (tempMultiDimAdvec) THEN          IF (tempMultiDimAdvec) THEN
555    #ifndef DISABLE_DEBUGMODE
556              IF (debugMode) CALL DEBUG_CALL('GAD_ADVECTION',myThid)
557    #endif
558            CALL GAD_ADVECTION(bi,bj,tempAdvScheme,GAD_TEMPERATURE,            CALL GAD_ADVECTION(bi,bj,tempAdvScheme,GAD_TEMPERATURE,
559       U                      theta,gT,       U                      theta,gT,
560       I                      myTime,myIter,myThid)       I                      myTime,myIter,myThid)
561          ENDIF          ENDIF
562          IF (saltMultiDimAdvec) THEN          IF (saltMultiDimAdvec) THEN
563    #ifndef DISABLE_DEBUGMODE
564              IF (debugMode) CALL DEBUG_CALL('GAD_ADVECTION',myThid)
565    #endif
566            CALL GAD_ADVECTION(bi,bj,saltAdvScheme,GAD_SALINITY,            CALL GAD_ADVECTION(bi,bj,saltAdvScheme,GAD_SALINITY,
567       U                      salt,gS,       U                      salt,gS,
568       I                      myTime,myIter,myThid)       I                      myTime,myIter,myThid)
# Line 531  C call the multi-dimensional method for Line 572  C call the multi-dimensional method for
572  C of whether multiDimAdvection is set or not.  C of whether multiDimAdvection is set or not.
573  #ifdef ALLOW_PTRACERS  #ifdef ALLOW_PTRACERS
574          IF ( usePTRACERS ) THEN          IF ( usePTRACERS ) THEN
575    #ifndef DISABLE_DEBUGMODE
576              IF (debugMode) CALL DEBUG_CALL('PTRACERS_ADVECTION',myThid)
577    #endif
578           CALL PTRACERS_ADVECTION( bi,bj,myIter,myTime,myThid )           CALL PTRACERS_ADVECTION( bi,bj,myIter,myTime,myThid )
579          ENDIF          ENDIF
580  #endif /* ALLOW_PTRACERS */  #endif /* ALLOW_PTRACERS */
581  #endif /* DISABLE_MULTIDIM_ADVECTION */  #endif /* DISABLE_MULTIDIM_ADVECTION */
582    
583    #ifndef DISABLE_DEBUGMODE
584           IF (debugMode) CALL DEBUG_MSG('ENTERING DOWNWARD K LOOP',myThid)
585    #endif
586    
587  C--     Start of thermodynamics loop  C--     Start of thermodynamics loop
588          DO k=Nr,1,-1          DO k=Nr,1,-1
589  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
# Line 788  C--   end bi,bj loops. Line 836  C--   end bi,bj loops.
836        ENDIF        ENDIF
837  #endif  #endif
838    
839    #ifndef DISABLE_DEBUGMODE
840             IF (debugMode) CALL DEBUG_LEAVE('FORWARD_STEP',myThid)
841    #endif
842    
843        RETURN        RETURN
844        END        END

Legend:
Removed from v.1.39  
changed lines
  Added in v.1.40

  ViewVC Help
Powered by ViewVC 1.1.22