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 8882 for branches/2017/dev_CNRS_2017/NEMOGCM/NEMO/OPA_SRC/DYN/dynvor.F90 – NEMO

Ignore:
Timestamp:
2017-12-01T18:44:09+01:00 (6 years ago)
Author:
flavoni
Message:

dev_CNRS_2017 branch: merged dev_r7881_ENHANCE09_RK3 with trunk r8864

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2017/dev_CNRS_2017/NEMOGCM/NEMO/OPA_SRC/DYN/dynvor.F90

    r7913 r8882  
    1414   !!            2.0  ! 2006-11  (G. Madec)  flux form advection: add metric term 
    1515   !!            3.2  ! 2009-04  (R. Benshila)  vvl: correction of een scheme 
    16    !!            3.3  ! 2010-10  (C. Ethe, G. Madec) reorganisation of initialisation phase 
    17    !!            3.7  ! 2014-04  (G. Madec) trend simplification: suppress jpdyn_trd_dat vorticity  
    18    !!             -   ! 2014-06  (G. Madec) suppression of velocity curl from in-core memory 
     16   !!            3.3  ! 2010-10  (C. Ethe, G. Madec)  reorganisation of initialisation phase 
     17   !!            3.7  ! 2014-04  (G. Madec)  trend simplification: suppress jpdyn_trd_dat vorticity  
     18   !!             -   ! 2014-06  (G. Madec)  suppression of velocity curl from in-core memory 
    1919   !!             -   ! 2016-12  (G. Madec, E. Clementi) add Stokes-Coriolis trends (ln_stcor=T) 
     20   !!            4.0  ! 2017-07  (G. Madec)  linear dynamics + trends diag. with Stokes-Coriolis 
    2021   !!---------------------------------------------------------------------- 
    2122 
    2223   !!---------------------------------------------------------------------- 
    23    !!   dyn_vor      : Update the momentum trend with the vorticity trend 
    24    !!       vor_ens  : enstrophy conserving scheme       (ln_dynvor_ens=T) 
    25    !!       vor_ene  : energy conserving scheme          (ln_dynvor_ene=T) 
    26    !!       vor_een  : energy and enstrophy conserving   (ln_dynvor_een=T) 
    27    !!   dyn_vor_init : set and control of the different vorticity option 
     24   !!   dyn_vor       : Update the momentum trend with the vorticity trend 
     25   !!       vor_ens   : enstrophy conserving scheme       (ln_dynvor_ens=T) 
     26   !!       vor_ene   : energy conserving scheme          (ln_dynvor_ene=T) 
     27   !!       vor_een   : energy and enstrophy conserving   (ln_dynvor_een=T) 
     28   !!   dyn_vor_init  : set and control of the different vorticity option 
    2829   !!---------------------------------------------------------------------- 
    2930   USE oce            ! ocean dynamics and tracers 
    3031   USE dom_oce        ! ocean space and time domain 
    3132   USE dommsk         ! ocean mask 
    32    USE dynadv         ! momentum advection (use ln_dynadv_vec value) 
     33   USE dynadv         ! momentum advection 
    3334   USE trd_oce        ! trends: ocean variables 
    3435   USE trddyn         ! trend manager: dynamics 
     
    4041   USE in_out_manager ! I/O manager 
    4142   USE lib_mpp        ! MPP library 
    42    USE wrk_nemo       ! Memory Allocation 
    4343   USE timing         ! Timing 
    44  
    4544 
    4645   IMPLICIT NONE 
     
    8079#  include "vectopt_loop_substitute.h90" 
    8180   !!---------------------------------------------------------------------- 
    82    !! NEMO/OPA 3.7 , NEMO Consortium (2016) 
     81   !! NEMO/OPA 4.0 , NEMO Consortium (2017) 
    8382   !! $Id$ 
    8483   !! Software governed by the CeCILL licence     (NEMOGCM/NEMO_CeCILL.txt) 
     
    9897      INTEGER, INTENT( in ) ::   kt   ! ocean time-step index 
    9998      ! 
    100       REAL(wp), POINTER, DIMENSION(:,:,:) ::  ztrdu, ztrdv 
    101       !!---------------------------------------------------------------------- 
    102       ! 
    103       IF( nn_timing == 1 )  CALL timing_start('dyn_vor') 
    104       ! 
    105       IF( l_trddyn )   CALL wrk_alloc( jpi,jpj,jpk, ztrdu, ztrdv ) 
    106       ! 
    107       SELECT CASE ( nvor_scheme )               !==  vorticity trend added to the general trend  ==! 
    108       ! 
    109       CASE ( np_ENE )                                 !* energy conserving scheme 
    110          IF( l_trddyn ) THEN                                ! trend diagnostics: split the trend in two 
     99      REAL(wp), ALLOCATABLE, DIMENSION(:,:,:) ::  ztrdu, ztrdv 
     100      !!---------------------------------------------------------------------- 
     101      ! 
     102      IF( ln_timing )   CALL timing_start('dyn_vor') 
     103      ! 
     104      IF( l_trddyn ) THEN     !==  trend diagnostics case : split the added trend in two parts  ==! 
     105         ! 
     106         ALLOCATE( ztrdu(jpi,jpj,jpk), ztrdv(jpi,jpj,jpk) ) 
     107         ! 
     108         ztrdu(:,:,:) = ua(:,:,:)            !* planetary vorticity trend (including Stokes-Coriolis force) 
     109         ztrdv(:,:,:) = va(:,:,:) 
     110         SELECT CASE( nvor_scheme ) 
     111         CASE( np_ENE, np_MIX )   ;   CALL vor_ene( kt, ncor, un , vn , ua, va )   ! energy conserving scheme 
     112            IF( ln_stcor )            CALL vor_ene( kt, ncor, usd, vsd, ua, va )   ! add the Stokes-Coriolis trend 
     113         CASE( np_ENS )           ;   CALL vor_ens( kt, ncor, un , vn , ua, va )   ! enstrophy conserving scheme 
     114            IF( ln_stcor )            CALL vor_ens( kt, ncor, usd, vsd, ua, va )   ! add the Stokes-Coriolis trend 
     115         CASE( np_EEN )           ;   CALL vor_een( kt, ncor, un , vn , ua, va )   ! energy & enstrophy scheme 
     116            IF( ln_stcor )            CALL vor_een( kt, ncor, usd, vsd, ua, va )   ! add the Stokes-Coriolis trend 
     117         END SELECT 
     118         ztrdu(:,:,:) = ua(:,:,:) - ztrdu(:,:,:) 
     119         ztrdv(:,:,:) = va(:,:,:) - ztrdv(:,:,:) 
     120         CALL trd_dyn( ztrdu, ztrdv, jpdyn_pvo, kt ) 
     121         ! 
     122         IF( n_dynadv /= np_LIN_dyn ) THEN   !* relative vorticity or metric trend (only in non-linear case) 
    111123            ztrdu(:,:,:) = ua(:,:,:) 
    112124            ztrdv(:,:,:) = va(:,:,:) 
    113             CALL vor_ene( kt, nrvm, un , vn , ua, va )                    ! relative vorticity or metric trend 
     125            SELECT CASE( nvor_scheme ) 
     126            CASE( np_ENE )           ;   CALL vor_ene( kt, nrvm, un , vn , ua, va )  ! energy conserving scheme 
     127            CASE( np_ENS, np_MIX )   ;   CALL vor_ens( kt, nrvm, un , vn , ua, va )  ! enstrophy conserving scheme 
     128            CASE( np_EEN )           ;   CALL vor_een( kt, nrvm, un , vn , ua, va )  ! energy & enstrophy scheme 
     129            END SELECT 
    114130            ztrdu(:,:,:) = ua(:,:,:) - ztrdu(:,:,:) 
    115131            ztrdv(:,:,:) = va(:,:,:) - ztrdv(:,:,:) 
    116132            CALL trd_dyn( ztrdu, ztrdv, jpdyn_rvo, kt ) 
    117             ztrdu(:,:,:) = ua(:,:,:) 
    118             ztrdv(:,:,:) = va(:,:,:) 
    119             CALL vor_ene( kt, ncor, un , vn , ua, va )                    ! planetary vorticity trend 
    120             ztrdu(:,:,:) = ua(:,:,:) - ztrdu(:,:,:) 
    121             ztrdv(:,:,:) = va(:,:,:) - ztrdv(:,:,:) 
    122             CALL trd_dyn( ztrdu, ztrdv, jpdyn_pvo, kt ) 
    123          ELSE                                               ! total vorticity trend 
     133         ENDIF 
     134         ! 
     135         DEALLOCATE( ztrdu, ztrdv ) 
     136         ! 
     137      ELSE              !==  total vorticity trend added to the general trend  ==! 
     138         ! 
     139         SELECT CASE ( nvor_scheme )      !==  vorticity trend added to the general trend  ==! 
     140         CASE( np_ENE )                        !* energy conserving scheme 
    124141                             CALL vor_ene( kt, ntot, un , vn , ua, va )   ! total vorticity trend 
    125142            IF( ln_stcor )   CALL vor_ene( kt, ncor, usd, vsd, ua, va )   ! add the Stokes-Coriolis trend 
    126          ENDIF 
    127          ! 
    128       CASE ( np_ENS )                                 !* enstrophy conserving scheme 
    129          IF( l_trddyn ) THEN                                ! trend diagnostics: splitthe trend in two     
    130             ztrdu(:,:,:) = ua(:,:,:) 
    131             ztrdv(:,:,:) = va(:,:,:) 
    132             CALL vor_ens( kt, nrvm, un , vn , ua, va )            ! relative vorticity or metric trend 
    133             ztrdu(:,:,:) = ua(:,:,:) - ztrdu(:,:,:) 
    134             ztrdv(:,:,:) = va(:,:,:) - ztrdv(:,:,:) 
    135             CALL trd_dyn( ztrdu, ztrdv, jpdyn_rvo, kt ) 
    136             ztrdu(:,:,:) = ua(:,:,:) 
    137             ztrdv(:,:,:) = va(:,:,:) 
    138             CALL vor_ens( kt, ncor, un , vn , ua, va )            ! planetary vorticity trend 
    139             ztrdu(:,:,:) = ua(:,:,:) - ztrdu(:,:,:) 
    140             ztrdv(:,:,:) = va(:,:,:) - ztrdv(:,:,:) 
    141             CALL trd_dyn( ztrdu, ztrdv, jpdyn_pvo, kt ) 
    142          ELSE                                               ! total vorticity trend 
     143         CASE( np_ENS )                        !* enstrophy conserving scheme 
    143144                             CALL vor_ens( kt, ntot, un , vn , ua, va )  ! total vorticity trend 
    144145            IF( ln_stcor )   CALL vor_ens( kt, ncor, usd, vsd, ua, va )  ! add the Stokes-Coriolis trend 
    145          ENDIF 
    146          ! 
    147       CASE ( np_MIX )                                 !* mixed ene-ens scheme 
    148          IF( l_trddyn ) THEN                                ! trend diagnostics: split the trend in two 
    149             ztrdu(:,:,:) = ua(:,:,:) 
    150             ztrdv(:,:,:) = va(:,:,:) 
    151             CALL vor_ens( kt, nrvm, un , vn , ua, va )            ! relative vorticity or metric trend (ens) 
    152             ztrdu(:,:,:) = ua(:,:,:) - ztrdu(:,:,:) 
    153             ztrdv(:,:,:) = va(:,:,:) - ztrdv(:,:,:) 
    154             CALL trd_dyn( ztrdu, ztrdv, jpdyn_rvo, kt ) 
    155             ztrdu(:,:,:) = ua(:,:,:) 
    156             ztrdv(:,:,:) = va(:,:,:) 
    157             CALL vor_ene( kt, ncor, un , vn , ua, va )            ! planetary vorticity trend (ene) 
    158             ztrdu(:,:,:) = ua(:,:,:) - ztrdu(:,:,:) 
    159             ztrdv(:,:,:) = va(:,:,:) - ztrdv(:,:,:) 
    160             CALL trd_dyn( ztrdu, ztrdv, jpdyn_pvo, kt ) 
    161          ELSE                                               ! total vorticity trend 
     146         CASE( np_MIX )                        !* mixed ene-ens scheme 
    162147                             CALL vor_ens( kt, nrvm, un , vn , ua, va )   ! relative vorticity or metric trend (ens) 
    163148                             CALL vor_ene( kt, ncor, un , vn , ua, va )   ! planetary vorticity trend (ene) 
    164149            IF( ln_stcor )   CALL vor_ene( kt, ncor, usd, vsd, ua, va )   ! add the Stokes-Coriolis trend 
    165         ENDIF 
    166          ! 
    167       CASE ( np_EEN )                                 !* energy and enstrophy conserving scheme 
    168          IF( l_trddyn ) THEN                                ! trend diagnostics: split the trend in two 
    169             ztrdu(:,:,:) = ua(:,:,:) 
    170             ztrdv(:,:,:) = va(:,:,:) 
    171             CALL vor_een( kt, nrvm, un , vn , ua, va )            ! relative vorticity or metric trend 
    172             ztrdu(:,:,:) = ua(:,:,:) - ztrdu(:,:,:) 
    173             ztrdv(:,:,:) = va(:,:,:) - ztrdv(:,:,:) 
    174             CALL trd_dyn( ztrdu, ztrdv, jpdyn_rvo, kt ) 
    175             ztrdu(:,:,:) = ua(:,:,:) 
    176             ztrdv(:,:,:) = va(:,:,:) 
    177             CALL vor_een( kt, ncor, un , vn , ua, va )            ! planetary vorticity trend 
    178             ztrdu(:,:,:) = ua(:,:,:) - ztrdu(:,:,:) 
    179             ztrdv(:,:,:) = va(:,:,:) - ztrdv(:,:,:) 
    180             CALL trd_dyn( ztrdu, ztrdv, jpdyn_pvo, kt ) 
    181          ELSE                                               ! total vorticity trend 
     150         CASE( np_EEN )                        !* energy and enstrophy conserving scheme 
    182151                             CALL vor_een( kt, ntot, un , vn , ua, va )   ! total vorticity trend 
    183152            IF( ln_stcor )   CALL vor_een( kt, ncor, usd, vsd, ua, va )   ! add the Stokes-Coriolis trend 
    184          ENDIF 
    185          ! 
    186       END SELECT 
     153         END SELECT 
     154         ! 
     155      ENDIF 
    187156      ! 
    188157      !                       ! print sum trends (used for debugging) 
     
    190159         &                     tab3d_2=va, clinfo2=       ' Va: ', mask2=vmask, clinfo3='dyn' ) 
    191160      ! 
    192       IF( l_trddyn )   CALL wrk_dealloc( jpi,jpj,jpk, ztrdu, ztrdv ) 
    193       ! 
    194       IF( nn_timing == 1 )  CALL timing_stop('dyn_vor') 
     161      IF( ln_timing )   CALL timing_stop('dyn_vor') 
    195162      ! 
    196163   END SUBROUTINE dyn_vor 
     
    217184      !! References : Sadourny, r., 1975, j. atmos. sciences, 32, 680-689. 
    218185      !!---------------------------------------------------------------------- 
    219       INTEGER , INTENT(in   )                         ::   kt          ! ocean time-step index 
    220       INTEGER , INTENT(in   )                         ::   kvor        ! =ncor (planetary) ; =ntot (total) ; 
    221       !                                                                ! =nrvm (relative vorticity or metric) 
    222       REAL(wp), INTENT(inout), DIMENSION(jpi,jpj,jpk) ::   pun, pvn    ! now velocities 
    223       REAL(wp), INTENT(inout), DIMENSION(jpi,jpj,jpk) ::   pua, pva    ! total v-trend 
     186      INTEGER                         , INTENT(in   ) ::   kt          ! ocean time-step index 
     187      INTEGER                         , INTENT(in   ) ::   kvor        ! total, planetary, relative, or metric 
     188      REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout) ::   pun, pvn    ! now velocities 
     189      REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout) ::   pua, pva    ! total v-trend 
    224190      ! 
    225191      INTEGER  ::   ji, jj, jk           ! dummy loop indices 
    226192      REAL(wp) ::   zx1, zy1, zx2, zy2   ! local scalars 
    227       REAL(wp), POINTER, DIMENSION(:,:) ::   zwx, zwy, zwz   ! 2D workspace 
    228       !!---------------------------------------------------------------------- 
    229       ! 
    230       IF( nn_timing == 1 )  CALL timing_start('vor_ene') 
    231       ! 
    232       CALL wrk_alloc( jpi,jpj,   zwx, zwy, zwz )  
     193      REAL(wp), DIMENSION(jpi,jpj) ::   zwx, zwy, zwz   ! 2D workspace 
     194      !!---------------------------------------------------------------------- 
     195      ! 
     196      IF( ln_timing )  CALL timing_start('vor_ene') 
    233197      ! 
    234198      IF( kt == nit000 ) THEN 
     
    264228               DO ji = 1, fs_jpim1   ! vector opt. 
    265229                  zwz(ji,jj) = ff_f(ji,jj) + (  e2v(ji+1,jj  ) * pvn(ji+1,jj  ,jk) - e2v(ji,jj) * pvn(ji,jj,jk)    & 
    266                      &                      - e1u(ji  ,jj+1) * pun(ji  ,jj+1,jk) + e1u(ji,jj) * pun(ji,jj,jk)  ) & 
     230                     &                      - e1u(ji  ,jj+1) * pun(ji  ,jj+1,jk) + e1u(ji,jj) * pun(ji,jj,jk)  )   & 
    267231                     &                   * r1_e1e2f(ji,jj) 
    268232               END DO 
     
    311275      END DO                                           !   End of slab 
    312276      !                                                ! =============== 
    313       CALL wrk_dealloc( jpi, jpj, zwx, zwy, zwz )  
    314       ! 
    315       IF( nn_timing == 1 )  CALL timing_stop('vor_ene') 
     277      ! 
     278      IF( ln_timing )  CALL timing_stop('vor_ene') 
    316279      ! 
    317280   END SUBROUTINE vor_ene 
     
    338301      !! References : Sadourny, r., 1975, j. atmos. sciences, 32, 680-689. 
    339302      !!---------------------------------------------------------------------- 
    340       INTEGER , INTENT(in   )                         ::   kt          ! ocean time-step index 
    341       INTEGER , INTENT(in   )                         ::   kvor        ! =ncor (planetary) ; =ntot (total) ; 
    342          !                                                             ! =nrvm (relative vorticity or metric) 
    343       REAL(wp), INTENT(inout), DIMENSION(jpi,jpj,jpk) ::   pun, pvn    ! now velocities 
    344       REAL(wp), INTENT(inout), DIMENSION(jpi,jpj,jpk) ::   pua, pva    ! total v-trend 
     303      INTEGER                         , INTENT(in   ) ::   kt          ! ocean time-step index 
     304      INTEGER                         , INTENT(in   ) ::   kvor        ! total, planetary, relative, or metric 
     305      REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout) ::   pun, pvn    ! now velocities 
     306      REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout) ::   pua, pva    ! total v-trend 
    345307      ! 
    346308      INTEGER  ::   ji, jj, jk   ! dummy loop indices 
    347309      REAL(wp) ::   zuav, zvau   ! local scalars 
    348       REAL(wp), POINTER, DIMENSION(:,:) ::   zwx, zwy, zwz, zww   ! 2D workspace 
    349       !!---------------------------------------------------------------------- 
    350       ! 
    351       IF( nn_timing == 1 )  CALL timing_start('vor_ens') 
    352       ! 
    353       CALL wrk_alloc( jpi,jpj,   zwx, zwy, zwz )  
     310      REAL(wp), DIMENSION(jpi,jpj) ::   zwx, zwy, zwz, zww   ! 2D workspace 
     311      !!---------------------------------------------------------------------- 
     312      ! 
     313      IF( ln_timing )   CALL timing_start('vor_ens') 
    354314      ! 
    355315      IF( kt == nit000 ) THEN 
     
    431391      END DO                                           !   End of slab 
    432392      !                                                ! =============== 
    433       CALL wrk_dealloc( jpi, jpj, zwx, zwy, zwz )  
    434       ! 
    435       IF( nn_timing == 1 )  CALL timing_stop('vor_ens') 
     393      ! 
     394      IF( ln_timing )   CALL timing_stop('vor_ens') 
    436395      ! 
    437396   END SUBROUTINE vor_ens 
     
    455414      !! References : Arakawa and Lamb 1980, Mon. Wea. Rev., 109, 18-36 
    456415      !!---------------------------------------------------------------------- 
    457       INTEGER , INTENT(in   )                         ::   kt          ! ocean time-step index 
    458       INTEGER , INTENT(in   )                         ::   kvor        ! =ncor (planetary) ; =ntot (total) ; 
    459          !                                                             ! =nrvm (relative vorticity or metric) 
    460       REAL(wp), INTENT(inout), DIMENSION(jpi,jpj,jpk) ::   pun, pvn    ! now velocities 
    461       REAL(wp), INTENT(inout), DIMENSION(jpi,jpj,jpk) ::   pua, pva    ! total v-trend 
     416      INTEGER                         , INTENT(in   ) ::   kt          ! ocean time-step index 
     417      INTEGER                         , INTENT(in   ) ::   kvor        ! total, planetary, relative, or metric 
     418      REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout) ::   pun, pvn    ! now velocities 
     419      REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout) ::   pua, pva    ! total v-trend 
    462420      ! 
    463421      INTEGER  ::   ji, jj, jk   ! dummy loop indices 
     
    465423      REAL(wp) ::   zua, zva     ! local scalars 
    466424      REAL(wp) ::   zmsk, ze3    ! local scalars 
    467       ! 
    468       REAL(wp), POINTER, DIMENSION(:,:)   :: zwx, zwy, zwz, z1_e3f 
    469       REAL(wp), POINTER, DIMENSION(:,:)   :: ztnw, ztne, ztsw, ztse 
    470       !!---------------------------------------------------------------------- 
    471       ! 
    472       IF( nn_timing == 1 )  CALL timing_start('vor_een') 
    473       ! 
    474       CALL wrk_alloc( jpi,jpj,   zwx , zwy , zwz , z1_e3f )  
    475       CALL wrk_alloc( jpi,jpj,   ztnw, ztne, ztsw, ztse   )  
     425      REAL(wp), DIMENSION(jpi,jpj)   :: zwx , zwy , zwz , z1_e3f 
     426      REAL(wp), DIMENSION(jpi,jpj)   :: ztnw, ztne, ztsw, ztse 
     427      !!---------------------------------------------------------------------- 
     428      ! 
     429      IF( ln_timing )   CALL timing_start('vor_een') 
    476430      ! 
    477431      IF( kt == nit000 ) THEN 
     
    599553      !                                                ! =============== 
    600554      ! 
    601       CALL wrk_dealloc( jpi,jpj,   zwx , zwy , zwz , z1_e3f )  
    602       CALL wrk_dealloc( jpi,jpj,   ztnw, ztne, ztsw, ztse   )  
    603       ! 
    604       IF( nn_timing == 1 )  CALL timing_stop('vor_een') 
     555      IF( ln_timing )   CALL timing_stop('vor_een') 
    605556      ! 
    606557   END SUBROUTINE vor_een 
     
    618569      INTEGER ::   ios             ! Local integer output status for namelist read 
    619570      !! 
    620       NAMELIST/namdyn_vor/ ln_dynvor_ens, ln_dynvor_ene, ln_dynvor_mix, ln_dynvor_een, nn_een_e3f, ln_dynvor_msk 
     571      NAMELIST/namdyn_vor/ ln_dynvor_ens, ln_dynvor_ene, ln_dynvor_mix,   & 
     572         &                 ln_dynvor_een, nn_een_e3f   , ln_dynvor_msk 
    621573      !!---------------------------------------------------------------------- 
    622574 
     
    672624      !                       
    673625      IF(lwp) WRITE(numout,*)        ! type of calculated vorticity (set ncor, nrvm, ntot) 
    674       ncor = np_COR 
    675       IF( ln_dynadv_vec ) THEN      
    676          IF(lwp) WRITE(numout,*) '      ===>>   Vector form advection : vorticity = Coriolis + relative vorticity' 
     626      ncor = np_COR                       ! planetary vorticity 
     627      SELECT CASE( n_dynadv ) 
     628      CASE( np_LIN_dyn ) 
     629         IF(lwp) WRITE(numout,*) '      ===>>   linear dynamics : total vorticity = Coriolis' 
     630         nrvm = np_COR        ! planetary vorticity 
     631         ntot = np_COR        !     -         - 
     632      CASE( np_VEC_c2  ) 
     633         IF(lwp) WRITE(numout,*) '      ===>>   vector form dynamics : total vorticity = Coriolis + relative vorticity'  
    677634         nrvm = np_RVO        ! relative vorticity 
    678          ntot = np_CRV        ! relative + planetary vorticity 
    679       ELSE                         
    680          IF(lwp) WRITE(numout,*) '      ===>>   Flux form advection   : vorticity = Coriolis + metric term' 
     635         ntot = np_CRV        ! relative + planetary vorticity          
     636      CASE( np_FLX_c2 , np_FLX_ubs  ) 
     637         IF(lwp) WRITE(numout,*) '      ===>>   flux form dynamics : total vorticity = Coriolis + metric term' 
    681638         nrvm = np_MET        ! metric term 
    682639         ntot = np_CME        ! Coriolis + metric term 
    683       ENDIF 
     640      END SELECT 
    684641       
    685642      IF(lwp) THEN                   ! Print the choice 
    686643         WRITE(numout,*) 
    687          IF( nvor_scheme ==  np_ENE )   WRITE(numout,*) '      ===>>   energy conserving scheme' 
    688          IF( nvor_scheme ==  np_ENS )   WRITE(numout,*) '      ===>>   enstrophy conserving scheme' 
    689          IF( nvor_scheme ==  np_MIX )   WRITE(numout,*) '      ===>>   mixed enstrophy/energy conserving scheme' 
    690          IF( nvor_scheme ==  np_EEN )   WRITE(numout,*) '      ===>>   energy and enstrophy conserving scheme' 
     644         SELECT CASE( nvor_scheme ) 
     645         CASE( np_ENE )   ;   WRITE(numout,*) '      ===>>   energy conserving scheme' 
     646         CASE( np_ENS )   ;   WRITE(numout,*) '      ===>>   enstrophy conserving scheme' 
     647         CASE( np_MIX )   ;   WRITE(numout,*) '      ===>>   mixed enstrophy/energy conserving scheme' 
     648         CASE( np_EEN )   ;   WRITE(numout,*) '      ===>>   energy and enstrophy conserving scheme' 
     649         END SELECT          
    691650      ENDIF 
    692651      ! 
Note: See TracChangeset for help on using the changeset viewer.