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.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.F90

    r2034 r2082  
    4242   INTEGER ::   nadv   ! choice of the type of advection scheme 
    4343 
     44   REAL(wp), DIMENSION(jpk) ::   r2dt  ! vertical profile time-step, = 2 rdttra 
     45      !                                ! except at nit000 (=rdttra) if neuler=0 
     46 
    4447   !! * Substitutions 
    4548#  include "domzgr_substitute.h90" 
     
    6669      REAL(wp), DIMENSION(jpi,jpj,jpk)   ::  zun, zvn, zwn   ! effective transport 
    6770      !!---------------------------------------------------------------------- 
     71      !                                          ! set time step 
     72      IF( neuler == 0 .AND. kt == nit000 ) THEN     ! at nit000 
     73         r2dt(:) =  rdttra(:)                          ! = rdtra (restarting with Euler time stepping) 
     74      ELSEIF( kt <= nit000 + 1) THEN                ! at nit000 or nit000+1 
     75         r2dt(:) = 2. * rdttra(:)                      ! = 2 rdttra (leapfrog) 
     76      ENDIF 
    6877      !                                               !==  effective transport  ==! 
    6978      DO jk = 1, jpkm1 
     
    8291 
    8392      SELECT CASE ( nadv )                            !==  compute advection trend and add it to general trend  ==! 
    84       CASE ( 1 )   ;    CALL tra_adv_cen2  ( kt, 'TRA', zun, zvn, zwn, tsb, tsn, tsa, jpts )   !  2nd order centered 
    85       CASE ( 2 )   ;    CALL tra_adv_tvd   ( kt, 'TRA', zun, zvn, zwn, tsb, tsn, tsa, jpts )   !  TVD  
    86       CASE ( 3 )   ;    CALL tra_adv_muscl ( kt, 'TRA', zun, zvn, zwn, tsb,      tsa, jpts )   !  MUSCL  
    87       CASE ( 4 )   ;    CALL tra_adv_muscl2( kt, 'TRA', zun, zvn, zwn, tsb, tsn, tsa, jpts )   !  MUSCL2  
    88       CASE ( 5 )   ;    CALL tra_adv_ubs   ( kt, 'TRA', zun, zvn, zwn, tsb, tsn, tsa, jpts )   !  UBS  
    89       CASE ( 6 )   ;    CALL tra_adv_qck   ( kt, 'TRA', zun, zvn, zwn, tsb, tsn, tsa, jpts )   !  QUICKEST  
     93      CASE ( 1 )   ;    CALL tra_adv_cen2  ( kt, 'TRA',       zun, zvn, zwn, tsb, tsn, tsa, jpts )   !  2nd order centered 
     94      CASE ( 2 )   ;    CALL tra_adv_tvd   ( kt, 'TRA', r2dt, zun, zvn, zwn, tsb, tsn, tsa, jpts )   !  TVD  
     95      CASE ( 3 )   ;    CALL tra_adv_muscl ( kt, 'TRA', r2dt, zun, zvn, zwn, tsb,      tsa, jpts )   !  MUSCL  
     96      CASE ( 4 )   ;    CALL tra_adv_muscl2( kt, 'TRA', r2dt, zun, zvn, zwn, tsb, tsn, tsa, jpts )   !  MUSCL2  
     97      CASE ( 5 )   ;    CALL tra_adv_ubs   ( kt, 'TRA', r2dt, zun, zvn, zwn, tsb, tsn, tsa, jpts )   !  UBS  
     98      CASE ( 6 )   ;    CALL tra_adv_qck   ( kt, 'TRA', r2dt, zun, zvn, zwn, tsb, tsn, tsa, jpts )   !  QUICKEST  
    9099      ! 
    91100      CASE (-1 )                                      !==  esopa: test all possibility with control print  ==! 
    92          CALL tra_adv_cen2  ( kt , 'TRA', zun, zvn, zwn, tsb, tsn, tsa, jpts )           
     101         CALL tra_adv_cen2  ( kt, 'TRA',      zun, zvn, zwn, tsb, tsn, tsa, jpts )           
    93102         CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' adv0 - Ta: ', mask1=tmask,               & 
    94103            &          tab3d_2=tsa(:,:,:,jp_sal), clinfo2=       ' Sa: ', mask2=tmask, clinfo3='tra' ) 
    95          CALL tra_adv_tvd   ( kt, 'TRA', zun, zvn, zwn, tsb, tsn, tsa, jpts )           
     104         CALL tra_adv_tvd   ( kt, 'TRA', r2dt, zun, zvn, zwn, tsb, tsn, tsa, jpts )           
    96105         CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' adv1 - Ta: ', mask1=tmask,               & 
    97106            &          tab3d_2=tsa(:,:,:,jp_sal), clinfo2=       ' Sa: ', mask2=tmask, clinfo3='tra' ) 
    98          CALL tra_adv_muscl ( kt, 'TRA', zun, zvn, zwn, tsb,      tsa, jpts )           
     107         CALL tra_adv_muscl ( kt, 'TRA', r2dt, zun, zvn, zwn, tsb,      tsa, jpts )           
    99108         CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' adv3 - Ta: ', mask1=tmask,               & 
    100109            &          tab3d_2=tsa(:,:,:,jp_sal), clinfo2=       ' Sa: ', mask2=tmask, clinfo3='tra' ) 
    101          CALL tra_adv_muscl2( kt, 'TRA', zun, zvn, zwn, tsb, tsn, tsa, jpts )           
     110         CALL tra_adv_muscl2( kt, 'TRA', r2dt, zun, zvn, zwn, tsb, tsn, tsa, jpts )           
    102111         CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' adv4 - Ta: ', mask1=tmask,               & 
    103112            &          tab3d_2=tsa(:,:,:,jp_sal), clinfo2=       ' Sa: ', mask2=tmask, clinfo3='tra' ) 
    104          CALL tra_adv_ubs   ( kt, 'TRA', zun, zvn, zwn, tsb, tsn, tsa, jpts )           
     113         CALL tra_adv_ubs   ( kt, 'TRA', r2dt, zun, zvn, zwn, tsb, tsn, tsa, jpts )           
    105114         CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' adv5 - Ta: ', mask1=tmask,               & 
    106115            &          tab3d_2=tsa(:,:,:,jp_sal), clinfo2=       ' Sa: ', mask2=tmask, clinfo3='tra' ) 
    107          CALL tra_adv_qck   ( kt, 'TRA', zun, zvn, zwn, tsb, tsn, tsa, jpts )           
     116         CALL tra_adv_qck   ( kt, 'TRA', r2dt, zun, zvn, zwn, tsb, tsn, tsa, jpts )           
    108117         CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' adv6 - Ta: ', mask1=tmask,               & 
    109118            &          tab3d_2=tsa(:,:,:,jp_sal), clinfo2=       ' Sa: ', mask2=tmask, clinfo3='tra' ) 
     
    179188         IF( nadv ==  5 )   WRITE(numout,*) '         UBS       scheme is used' 
    180189         IF( nadv ==  6 )   WRITE(numout,*) '         QUICKEST  scheme is used' 
    181          IF( nadv ==  7 )   WRITE(numout,*) '         SMOLAR    scheme is used' 
    182190         IF( nadv == -1 )   WRITE(numout,*) '         esopa test: use all advection scheme' 
    183191      ENDIF 
Note: See TracChangeset for help on using the changeset viewer.