Changes between Version 3 and Version 4 of ticket/0664_TRA_TRP


Ignore:
Timestamp:
2010-04-27T12:41:50+02:00 (10 years ago)
Author:
cetlod
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • ticket/0664_TRA_TRP

    v3 v4  
    2020[[BR]] 
    2121 
    22 '''(1)''' Creation of advection/diffusion modules with 4D tracer array as input argument[[BR]] 
     22'''(1)''' Creation of advection/diffusion modules with 4D tracer array as input argument[[BR]][[BR]] 
     23 
    2324 
    2425{{{ 
     
    3738      REAL(wp)        , INTENT(inout), DIMENSION(:,:,:,:)     ::   ptraa           ! tracer trend 
    3839}}} 
     40[[BR]] 
    3941 
    40 '''(2)''' Test for T & S 3D arrays by using the fortran ''RESHAPE'' function [[BR]] 
     42'''(2)''' Test for T & S 3D arrays by using the fortran '''''RESHAPE''''' function [[BR]][[BR]] 
     43 
    4144 
    4245 
     
    8184}}} 
    8285 
     86[[BR]] 
     87 
     88'''(3)''' Apply to the passive tracers [[BR]][[BR]] 
     89 
     90 
     91 
     92{{{ 
     93   SUBROUTINE trc_adv( kt ) 
     94      !!---------------------------------------------------------------------- 
     95      !!                  ***  ROUTINE trc_adv  *** 
     96      !! 
     97      !! ** Purpose :   
     98      !! 
     99      !! ** Method  :  
     100      !!---------------------------------------------------------------------- 
     101      INTEGER, INTENT( in ) ::   kt   ! ocean time-step index 
     102      !! 
     103      INTEGER ::   jk   ! dummy loop index 
     104      REAL(wp), DIMENSION(jpi,jpj,jpk) ::   zun, zvn, zwn   ! effective transports 
     105      !!---------------------------------------------------------------------- 
     106 
     107      !                                              ! effective transport 
     108      DO jk = 1, jpkm1 
     109#if defined key_trcbbl_adv                                       
     110         !                                                ! eulerian + bbl transport 
     111         zun(:,:,jk) = e2u(:,:) * fse3u(:,:,jk) * ( un(:,:,jk) - u_trc_bbl(:,:,jk) ) 
     112         zvn(:,:,jk) = e1v(:,:) * fse3v(:,:,jk) * ( vn(:,:,jk) - v_trc_bbl(:,:,jk) ) 
     113         zwn(:,:,jk) = e1t(:,:) * e2t(:,:)      * ( wn(:,:,jk) + w_trc_bbl(:,:,jk) ) 
     114#else 
     115         !                                                ! eulerian transport only 
     116         zun(:,:,jk) = e2u(:,:) * fse3u(:,:,jk) *   un(:,:,jk) 
     117         zvn(:,:,jk) = e1v(:,:) * fse3v(:,:,jk) *   vn(:,:,jk) 
     118         zwn(:,:,jk) = e1t(:,:) * e2t(:,:)      *   wn(:,:,jk) 
     119#endif 
     120      END DO 
     121      zwn(:,:,jpk) = 0.e0                                 ! no transport trough the bottom 
     122 
     123      !                                                   ! add the eiv transport (if necessary) 
     124      IF( lk_trcldf_eiv )   CALL trc_adv_eiv( kt, zun, zvn, zwn ) 
     125 
     126      CALL tra_adv_cen2( kt, 'TRC', zun, zvn, zwn, trb, trn, tra )    ! 2nd order centered 
     127}}} 
    83128 
    84129----