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

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

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

revision 1.18 by jmc, Mon Jul 11 22:34:16 2005 UTC revision 1.28 by jmc, Thu Mar 30 02:33:05 2006 UTC
# Line 19  C     !INTERFACE: Line 19  C     !INTERFACE:
19        SUBROUTINE DO_OCEANIC_PHYS(myTime, myIter, myThid)        SUBROUTINE DO_OCEANIC_PHYS(myTime, myIter, myThid)
20  C     !DESCRIPTION: \bv  C     !DESCRIPTION: \bv
21  C     *==========================================================*  C     *==========================================================*
22  C     | SUBROUTINE DO_OCEANIC_PHYS                                  C     | SUBROUTINE DO_OCEANIC_PHYS
23  C     | o Controlling routine for oceanic physics and  C     | o Controlling routine for oceanic physics and
24  C     |   parameterization  C     |   parameterization
25  C     *==========================================================*  C     *==========================================================*
26  C     | o originally, part of S/R thermodynamics  C     | o originally, part of S/R thermodynamics
# Line 35  C     == Global variables === Line 35  C     == Global variables ===
35  #include "PARAMS.h"  #include "PARAMS.h"
36  #include "DYNVARS.h"  #include "DYNVARS.h"
37  #include "GRID.h"  #include "GRID.h"
38    #ifdef ALLOW_TIMEAVE
39    #include "TIMEAVE_STATV.h"
40    #endif
41    #if defined (ALLOW_BALANCE_FLUXES) && !(defined ALLOW_AUTODIFF_TAMC)
42    #include "FFIELDS.h"
43    #endif
44    
45  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
46  # include "tamc.h"  # include "tamc.h"
# Line 124  C       and modify forcing terms includi Line 130  C       and modify forcing terms includi
130        ENDIF        ENDIF
131  #endif /* ALLOW_THSICE */  #endif /* ALLOW_THSICE */
132    
133    #ifdef ALLOW_SHELFICE
134          IF ( useShelfIce .AND. fluidIsWater ) THEN
135    #ifdef ALLOW_DEBUG
136            IF ( debugLevel .GE. debLevB )
137         &    CALL DEBUG_CALL('SHELFICE_THERMODYNAMICS',myThid)
138    #endif
139    C     compute temperature and (virtual) salt flux at the
140    C     shelf-ice ocean interface
141           CALL TIMER_START('SHELFICE_THERMODYNAMICS [DO_OCEANIC_PHYS]',
142         &       myThid)
143           CALL SHELFICE_THERMODYNAMICS( myTime, myIter, myThid )
144           CALL TIMER_STOP( 'SHELFICE_THERMODYNAMICS [DO_OCEANIC_PHYS]',
145         &      myThid)
146          ENDIF
147    #endif /* ALLOW_SHELFICE */
148    
149  C--   Freeze water at the surface  C--   Freeze water at the surface
150  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
151  CADJ STORE theta = comlev1, key = ikey_dynamics  CADJ STORE theta = comlev1, key = ikey_dynamics
# Line 134  CADJ STORE theta = comlev1, key = ikey_d Line 156  CADJ STORE theta = comlev1, key = ikey_d
156          CALL FREEZE_SURFACE(  myTime, myIter, myThid )          CALL FREEZE_SURFACE(  myTime, myIter, myThid )
157        ENDIF        ENDIF
158    
159  #ifdef COMPONENT_MODULE  #ifdef ALLOW_OCN_COMPON_INTERF
 # ifndef ALLOW_AIM  
160  C--    Apply imported data (from coupled interface) to forcing fields  C--    Apply imported data (from coupled interface) to forcing fields
161  C jmc: do not know precisely where to put this call (bf or af thSIce ?)  C jmc: do not know precisely where to put this call (bf or af thSIce ?)
162         IF ( useCoupler ) THEN         IF ( useCoupler ) THEN
163           CALL OCN_APPLY_IMPORT( .TRUE., myTime, myIter, myThid )           CALL OCN_APPLY_IMPORT( .TRUE., myTime, myIter, myThid )
164         ENDIF         ENDIF
165  # endif  #endif /* ALLOW_OCN_COMPON_INTERF */
166  #endif /* COMPONENT_MODULE */  
167    #ifdef ALLOW_BALANCE_FLUXES
168    C     balance fluxes
169           IF ( balanceEmPmR )
170         &        CALL REMOVE_MEAN_RS( 1, EmPmR, maskH, maskH, rA, drF,
171         &        'EmPmR', myTime, myThid )
172           IF ( balanceQnet )
173         &        CALL REMOVE_MEAN_RS( 1, Qnet,  maskH, maskH, rA, drF,
174         &        'Qnet ', myTime, myThid )
175    #endif /* ALLOW_BALANCE_FLUXES */
176    
177  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
178  C--   HPF directive to help TAMC  C--   HPF directive to help TAMC
# Line 231  CADJ &     = comlev1_bibj, key=itdkey, b Line 261  CADJ &     = comlev1_bibj, key=itdkey, b
261  CADJ STORE uvel (:,:,:,bi,bj) = comlev1_bibj, key=itdkey, byte=isbyte  CADJ STORE uvel (:,:,:,bi,bj) = comlev1_bibj, key=itdkey, byte=isbyte
262  CADJ STORE vvel (:,:,:,bi,bj) = comlev1_bibj, key=itdkey, byte=isbyte  CADJ STORE vvel (:,:,:,bi,bj) = comlev1_bibj, key=itdkey, byte=isbyte
263  # endif  # endif
 # ifdef EXACT_CONSERV  
 CADJ STORE pmepr(:,:,bi,bj)   = comlev1_bibj, key=itdkey, byte=isbyte  
 # endif  
264  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
265    
266  #ifdef ALLOW_DEBUG  #ifdef ALLOW_DEBUG
# Line 354  C       relaxation terms, etc. Line 381  C       relaxation terms, etc.
381          IF ( debugLevel .GE. debLevB )          IF ( debugLevel .GE. debLevB )
382       &    CALL DEBUG_CALL('EXTERNAL_FORCING_SURF',myThid)       &    CALL DEBUG_CALL('EXTERNAL_FORCING_SURF',myThid)
383  #endif  #endif
384    #ifdef ALLOW_AUTODIFF_TAMC
385    CADJ STORE EmPmR(:,:,bi,bj)
386    CADJ &     = comlev1_bibj, key=itdkey, byte=isbyte
387    # ifdef EXACT_CONSERV
388    CADJ STORE PmEpR(:,:,bi,bj)
389    CADJ &     = comlev1_bibj, key=itdkey, byte=isbyte
390    # endif
391    # ifdef NONLIN_FRSURF
392    CADJ STORE hFac_surfC(:,:,bi,bj)
393    CADJ &     = comlev1_bibj, key=itdkey, byte=isbyte
394    CADJ STORE recip_hFacC(:,:,:,bi,bj)
395    CADJ &     = comlev1_bibj, key=itdkey, byte=isbyte
396    # endif
397    #endif
398           CALL EXTERNAL_FORCING_SURF(           CALL EXTERNAL_FORCING_SURF(
399       I             bi, bj, iMin, iMax, jMin, jMax,       I             bi, bj, iMin, iMax, jMin, jMax,
400       I             myTime, myIter, myThid )       I             myTime, myIter, myThid )
401  #ifndef ALLOW_AUTODIFF_TAMC  #ifndef ALLOW_AUTODIFF_TAMC
402          ENDIF          ENDIF
403  #endif  #endif
404    #ifdef ALLOW_AUTODIFF_TAMC
405    # ifdef EXACT_CONSERV
406    cph-test
407    cphCADJ STORE PmEpR(:,:,bi,bj)
408    cphCADJ &     = comlev1_bibj, key=itdkey, byte=isbyte
409    # endif
410    #endif
411    
412  #ifdef ALLOW_AUTODIFF_TAMC  #ifdef ALLOW_AUTODIFF_TAMC
413  cph needed for KPP  cph needed for KPP
# Line 373  CADJ STORE surfaceForcingT(:,:,bi,bj) Line 421  CADJ STORE surfaceForcingT(:,:,bi,bj)
421  CADJ &     = comlev1_bibj, key=itdkey, byte=isbyte  CADJ &     = comlev1_bibj, key=itdkey, byte=isbyte
422  CADJ STORE surfaceForcingTice(:,:,bi,bj)  CADJ STORE surfaceForcingTice(:,:,bi,bj)
423  CADJ &     = comlev1_bibj, key=itdkey, byte=isbyte  CADJ &     = comlev1_bibj, key=itdkey, byte=isbyte
   
424  #endif /* ALLOW_AUTODIFF_TAMC */  #endif /* ALLOW_AUTODIFF_TAMC */
425    
426  #ifdef  ALLOW_GMREDI  #ifdef  ALLOW_GMREDI
# Line 465  C--     Compute GGL90 mixing coefficient Line 512  C--     Compute GGL90 mixing coefficient
512          ENDIF          ENDIF
513  #endif /* ALLOW_GGL90 */  #endif /* ALLOW_GGL90 */
514    
515    #ifdef ALLOW_TIMEAVE
516            IF ( taveFreq.GT. 0. _d 0 .AND. fluidIsWater ) THEN
517              CALL TIMEAVE_SURF_FLUX( bi, bj, myTime, myIter, myThid)
518            ENDIF
519            IF (taveFreq.GT.0. .AND. ivdc_kappa.NE.0.) THEN
520              CALL TIMEAVE_CUMULATE(ConvectCountTave, IVDConvCount,
521         I                           Nr, deltaTclock, bi, bj, myThid)
522            ENDIF
523    #endif /* ALLOW_TIMEAVE */
524    
525  C--   end bi,bj loops.  C--   end bi,bj loops.
526         ENDDO         ENDDO
527        ENDDO        ENDDO
# Line 473  C--   end bi,bj loops. Line 530  C--   end bi,bj loops.
530        IF ( fluidIsWater .AND. useDiagnostics ) THEN        IF ( fluidIsWater .AND. useDiagnostics ) THEN
531          CALL DIAGS_OCEANIC_SURF_FLUX( myTime, myIter, myThid )          CALL DIAGS_OCEANIC_SURF_FLUX( myTime, myIter, myThid )
532        ENDIF        ENDIF
533          IF ( ivdc_kappa.NE.0 .AND. useDiagnostics ) THEN
534            CALL DIAGNOSTICS_FILL( IVDConvCount,'CONVADJ ',
535         &                         0, Nr, 0, 1, 1, myThid )
536          ENDIF
537  #endif  #endif
538    
539  #ifdef ALLOW_DEBUG  #ifdef ALLOW_DEBUG

Legend:
Removed from v.1.18  
changed lines
  Added in v.1.28

  ViewVC Help
Powered by ViewVC 1.1.22