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 6060 for branches/2015/dev_merge_2015/NEMOGCM/NEMO/OPA_SRC/TRA/traadv.F90 – NEMO

Ignore:
Timestamp:
2015-12-16T10:25:22+01:00 (9 years ago)
Author:
timgraham
Message:

Merged dev_r5836_noc2_VVL_BY_DEFAULT into branch

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2015/dev_merge_2015/NEMOGCM/NEMO/OPA_SRC/TRA/traadv.F90

    r5930 r6060  
    2626   USE ldftra         ! lateral diffusion: eddy diffusivity & EIV coeff. 
    2727   USE ldfslp         ! Lateral diffusion: slopes of neutral surfaces 
    28    USE c1d            ! 1D vertical configuration 
    2928   ! 
    3029   USE in_out_manager ! I/O manager 
     
    6766    
    6867   !! * Substitutions 
    69 #  include "domzgr_substitute.h90" 
    7068#  include "vectopt_loop_substitute.h90" 
    7169   !!---------------------------------------------------------------------- 
     
    103101      !                                         !==  effective transport  ==! 
    104102      DO jk = 1, jpkm1 
    105          zun(:,:,jk) = e2u  (:,:) * fse3u(:,:,jk) * un(:,:,jk)                  ! eulerian transport only 
    106          zvn(:,:,jk) = e1v  (:,:) * fse3v(:,:,jk) * vn(:,:,jk) 
     103         zun(:,:,jk) = e2u  (:,:) * e3u_n(:,:,jk) * un(:,:,jk)                  ! eulerian transport only 
     104         zvn(:,:,jk) = e1v  (:,:) * e3v_n(:,:,jk) * vn(:,:,jk) 
    107105         zwn(:,:,jk) = e1e2t(:,:)                 * wn(:,:,jk) 
    108106      END DO 
     
    144142      CASE ( np_QCK )                                    ! QUICKEST 
    145143         CALL tra_adv_qck    ( kt, nit000, 'TRA', r2dtra, zun, zvn, zwn, tsb, tsn, tsa, jpts                     ) 
    146       ! 
    147144      END SELECT 
    148145      ! 
    149       !                                              ! print mean trends (used for debugging) 
     146      !                                         ! print mean trends (used for debugging) 
    150147      IF(ln_ctl)   CALL prt_ctl( tab3d_1=tsa(:,:,:,jp_tem), clinfo1=' adv  - Ta: ', mask1=tmask,               & 
    151148         &                       tab3d_2=tsa(:,:,:,jp_sal), clinfo2=       ' Sa: ', mask2=tmask, clinfo3='tra' ) 
     
    175172      ! 
    176173      !                                !==  Namelist  ==! 
    177       ! 
    178174      REWIND( numnam_ref )                   ! Namelist namtra_adv in reference namelist : Tracer advection scheme 
    179175      READ  ( numnam_ref, namtra_adv, IOSTAT = ios, ERR = 901) 
    180 901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtra_adv in reference namelist', lwp ) 
     176901   IF( ios /= 0 )   CALL ctl_nam ( ios , 'namtra_adv in reference namelist', lwp ) 
    181177      ! 
    182178      REWIND( numnam_cfg )                   ! Namelist namtra_adv in configuration namelist : Tracer advection scheme 
    183179      READ  ( numnam_cfg, namtra_adv, IOSTAT = ios, ERR = 902 ) 
    184 902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtra_adv in configuration namelist', lwp ) 
    185       IF(lwm) WRITE ( numond, namtra_adv ) 
    186  
     180902   IF( ios /= 0 )   CALL ctl_nam ( ios , 'namtra_adv in configuration namelist', lwp ) 
     181      IF(lwm) WRITE( numond, namtra_adv ) 
     182      ! 
    187183      IF(lwp) THEN                           ! Namelist print 
    188184         WRITE(numout,*) 
     
    203199         WRITE(numout,*) '      QUICKEST scheme                           ln_traadv_qck = ', ln_traadv_qck 
    204200      ENDIF 
    205  
     201      ! 
    206202      ioptio = 0                       !==  Parameter control  ==! 
    207203      IF( ln_traadv_cen )   ioptio = ioptio + 1 
     
    215211         CALL ctl_warn( 'tra_adv_init: You are running without tracer advection.' ) 
    216212      ENDIF 
    217       IF( (ioptio /= 1).AND. (.NOT. lk_c1d ) ) &  
    218         CALL ctl_stop( 'tra_adv_init: Choose ONE advection scheme in namelist namtra_adv' ) 
     213      IF( ioptio /= 1 )   CALL ctl_stop( 'tra_adv_init: Choose ONE advection scheme in namelist namtra_adv' ) 
    219214      ! 
    220215      IF( ln_traadv_cen .AND. ( nn_cen_h /= 2 .AND. nn_cen_h /= 4 )   &          ! Centered 
     
    231226            CALL ctl_stop( 'tra_adv_init: force 2nd order FCT scheme, 4th order does not exist with sub-timestepping' ) 
    232227         ENDIF 
    233          IF( lk_vvl ) THEN 
     228         IF( .NOT.ln_linssh ) THEN 
    234229            CALL ctl_stop( 'tra_adv_init: vertical sub-timestepping not allow in non-linear free surface' ) 
    235230         ENDIF 
     
    255250      IF( ln_traadv_ubs                      )   nadv = np_UBS 
    256251      IF( ln_traadv_qck                      )   nadv = np_QCK 
    257  
     252      ! 
    258253      IF(lwp) THEN                           ! Print the choice 
    259254         WRITE(numout,*) 
    260          IF( nadv == np_NO_adv  )   WRITE(numout,*) '         NO T-S advection' 
    261          IF( nadv == np_CEN     )   WRITE(numout,*) '         CEN      scheme is used. Horizontal order: ', nn_cen_h,   & 
    262             &                                                                        ' Vertical   order: ', nn_cen_v 
    263          IF( nadv == np_FCT     )   WRITE(numout,*) '         FCT      scheme is used. Horizontal order: ', nn_fct_h,   & 
    264             &                                                                        ' Vertical   order: ', nn_fct_v 
    265          IF( nadv == np_FCT_zts )   WRITE(numout,*) '         use 2nd order FCT with ', nn_fct_zts,'vertical sub-timestepping' 
    266          IF( nadv == np_MUS     )   WRITE(numout,*) '         MUSCL    scheme is used' 
    267          IF( nadv == np_UBS     )   WRITE(numout,*) '         UBS      scheme is used' 
    268          IF( nadv == np_QCK     )   WRITE(numout,*) '         QUICKEST scheme is used' 
     255         SELECT CASE ( nadv ) 
     256         CASE( np_NO_adv  )   ;   WRITE(numout,*) '         NO T-S advection' 
     257         CASE( np_CEN     )   ;   WRITE(numout,*) '         CEN      scheme is used. Horizontal order: ', nn_cen_h,   & 
     258            &                                                                     ' Vertical   order: ', nn_cen_v 
     259         CASE( np_FCT     )   ;   WRITE(numout,*) '         FCT      scheme is used. Horizontal order: ', nn_fct_h,   & 
     260            &                                                                      ' Vertical   order: ', nn_fct_v 
     261         CASE( np_FCT_zts )   ;   WRITE(numout,*) '         use 2nd order FCT with ', nn_fct_zts,'vertical sub-timestepping' 
     262         CASE( np_MUS     )   ;   WRITE(numout,*) '         MUSCL    scheme is used' 
     263         CASE( np_UBS     )   ;   WRITE(numout,*) '         UBS      scheme is used' 
     264         CASE( np_QCK     )   ;   WRITE(numout,*) '         QUICKEST scheme is used' 
     265         END SELECT 
    269266      ENDIF 
    270267      ! 
Note: See TracChangeset for help on using the changeset viewer.