New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 2082 for branches/DEV_r2006_merge_TRA_TRC/NEMO/OPA_SRC/TRA/traadv_qck.F90 – NEMO

Ignore:
Timestamp:
2010-09-10T12:32:58+02:00 (14 years ago)
Author:
cetlod
Message:

Improve the merge of TRA-TRC, see ticket #717

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/DEV_r2006_merge_TRA_TRC/NEMO/OPA_SRC/TRA/traadv_qck.F90

    r2034 r2082  
    2525   USE in_out_manager  ! I/O manager 
    2626   USE diaptr          ! poleward transport diagnostics 
     27   USE trc_oce         ! share passive tracers/Ocean variables 
    2728 
    2829   IMPLICIT NONE 
     
    4546CONTAINS 
    4647 
    47    SUBROUTINE tra_adv_qck ( kt, cdtype, pun, pvn, pwn, & 
    48       &                                 ptb, ptn, pta, kjpt   ) 
     48   SUBROUTINE tra_adv_qck ( kt, cdtype, p2dt, pun, pvn, pwn, & 
     49      &                                       ptb, ptn, pta, kjpt   ) 
    4950      !!---------------------------------------------------------------------- 
    5051      !!                  ***  ROUTINE tra_adv_qck  *** 
     
    8586      CHARACTER(len=3), INTENT(in   )                               ::   cdtype          ! =TRA or TRC (tracer indicator) 
    8687      INTEGER         , INTENT(in   )                               ::   kjpt            ! number of tracers 
     88      REAL(wp)        , INTENT(in   ), DIMENSION(jpk)               ::   p2dt            ! vertical profile of tracer time-step 
    8789      REAL(wp)        , INTENT(in   ), DIMENSION(jpi,jpj,jpk)       ::   pun, pvn, pwn   ! 3 ocean velocity components 
    8890      REAL(wp)        , INTENT(in   ), DIMENSION(jpi,jpj,jpk,kjpt)  ::   ptb, ptn        ! before and now tracer fields 
    8991      REAL(wp)        , INTENT(inout), DIMENSION(jpi,jpj,jpk,kjpt)  ::   pta           ! tracer trend  
    90       !! 
    91       REAL(wp) ::   z2                            !    temporary scalar 
    92       !!---------------------------------------------------------------------- 
    93  
    94       IF( kt == nit000 ) THEN 
     92      !!---------------------------------------------------------------------- 
     93 
     94      IF( ( cdtype == 'TRA' .AND. kt == nit000 ) .OR. ( cdtype == 'TRC' .AND. kt == nittrc000 ) )  THEN 
    9595         IF(lwp) WRITE(numout,*) 
    96          IF(lwp) WRITE(numout,*) 'tra_adv_qck : 3rd order quickest advection scheme' 
     96         IF(lwp) WRITE(numout,*) 'tra_adv_qck : 3rd order quickest advection scheme on ', cdtype 
    9797         IF(lwp) WRITE(numout,*) '~~~~~~~~~~~~' 
    9898         IF(lwp) WRITE(numout,*) 
     
    102102      ENDIF 
    103103 
    104       IF( neuler == 0 .AND. kt == nit000 ) THEN   ;    z2 = 1. 
    105       ELSE                                        ;    z2 = 2. 
    106       ENDIF 
    107  
    108104      ! I. The horizontal fluxes are computed with the QUICKEST + ULTIMATE scheme 
    109105      !--------------------------------------------------------------------------- 
    110106 
    111       CALL tra_adv_qck_i( kt, cdtype, pun, z2, ptb, ptn, pta, kjpt )  
    112       CALL tra_adv_qck_j( kt, cdtype, pvn, z2, ptb, ptn, pta, kjpt )  
     107      CALL tra_adv_qck_i( kt, cdtype, p2dt, pun, ptb, ptn, pta, kjpt )  
     108      CALL tra_adv_qck_j( kt, cdtype, p2dt, pvn, ptb, ptn, pta, kjpt )  
    113109 
    114110      ! II. The vertical fluxes are computed with the 2nd order centered scheme 
     
    119115   END SUBROUTINE tra_adv_qck 
    120116 
    121    SUBROUTINE tra_adv_qck_i( kt, cdtype, pun, pz2,   & 
    122       &                                  ptb, ptn, pta, kjpt   ) 
     117   SUBROUTINE tra_adv_qck_i( kt, cdtype, p2dt, pun,    & 
     118      &                                        ptb, ptn, pta, kjpt   ) 
    123119      !!---------------------------------------------------------------------- 
    124120      !! 
     
    129125      CHARACTER(len=3), INTENT(in   )                               ::   cdtype          ! =TRA or TRC (tracer indicator) 
    130126      INTEGER         , INTENT(in   )                               ::   kjpt            ! number of tracers 
     127      REAL(wp)        , INTENT(in   ), DIMENSION(jpk)               ::   p2dt            ! vertical profile of tracer time-step 
    131128      REAL(wp)        , INTENT(in   ), DIMENSION(jpi,jpj,jpk)       ::   pun             ! zonal velocity component 
    132129      REAL(wp)        , INTENT(in   ), DIMENSION(jpi,jpj,jpk,kjpt)  ::   ptb, ptn    ! before tracer fields 
    133130      REAL(wp)        , INTENT(inout), DIMENSION(jpi,jpj,jpk,kjpt)  ::   pta           ! tracer trend  
    134       REAL(wp)        , INTENT(in   )                               ::   pz2 
    135131      !! 
    136132      INTEGER  :: ji, jj, jk, jn           ! dummy loop indices 
     
    176172         ! 
    177173         DO jk = 1, jpkm1   
    178             zdt =  pz2 * rdttra(jk) 
     174            zdt =  p2dt(jk) 
    179175            DO jj = 2, jpjm1 
    180176               DO ji = fs_2, fs_jpim1   ! vector opt.    
     
    239235   END SUBROUTINE tra_adv_qck_i 
    240236 
    241    SUBROUTINE tra_adv_qck_j( kt, cdtype, pvn, pz2,   & 
    242       &                                  ptb, ptn, pta, kjpt   ) 
     237   SUBROUTINE tra_adv_qck_j( kt, cdtype, p2dt, pvn,   & 
     238      &                                        ptb, ptn, pta, kjpt   ) 
    243239      !!---------------------------------------------------------------------- 
    244240      !! 
     
    250246      CHARACTER(len=3), INTENT(in   )                               ::   cdtype          ! =TRA or TRC (tracer indicator) 
    251247      INTEGER         , INTENT(in   )                               ::   kjpt            ! number of tracers 
     248      REAL(wp)        , INTENT(in   ), DIMENSION(jpk)               ::   p2dt            ! vertical profile of tracer time-step 
    252249      REAL(wp)        , INTENT(in   ), DIMENSION(jpi,jpj,jpk)       ::   pvn             ! meridional velocity component 
    253250      REAL(wp)        , INTENT(in   ), DIMENSION(jpi,jpj,jpk,kjpt)  ::   ptb, ptn    ! before tracer fields 
    254251      REAL(wp)        , INTENT(inout), DIMENSION(jpi,jpj,jpk,kjpt)  ::   pta           ! tracer trend  
    255       REAL(wp)        , INTENT(in   )                               ::   pz2 
    256252      !! 
    257253      INTEGER  :: ji, jj, jk, jn           ! dummy loop indices 
     
    296292         ! 
    297293         DO jk = 1, jpkm1   
    298             zdt =  pz2 * rdttra(jk) 
     294            zdt =  p2dt(jk) 
    299295            DO jj = 2, jpjm1 
    300296               DO ji = fs_2, fs_jpim1   ! vector opt.    
Note: See TracChangeset for help on using the changeset viewer.