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 5770 for branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_blp.F90 – NEMO

Ignore:
Timestamp:
2015-10-01T14:48:08+02:00 (9 years ago)
Author:
gm
Message:

#1593: LDF-ADV, step II.2: phasing the improvements/simplifications of advective tracer trend (see wiki page)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2015/dev_r5721_CNRS9_NOC3_LDF/NEMOGCM/NEMO/OPA_SRC/TRA/traldf_blp.F90

    r5758 r5770  
    88 
    99   !!---------------------------------------------------------------------- 
    10    !!   traldf_blp   : update the tracer trend with the bilaplacian lateral mixing trend 
     10   !!   traldf_blp    : update the tracer trend with the bilaplacian lateral mixing trend 
    1111   !!---------------------------------------------------------------------- 
    12    USE oce           ! ocean dynamics and active tracers 
    13    USE dom_oce       ! ocean space and time domain 
    14    USE phycst        ! physical constants 
    15    USE trc_oce       ! share passive tracers/Ocean variables 
    16    USE zdf_oce       ! ocean vertical physics 
    17    USE ldftra        ! lateral physics: eddy diffusivity 
    18    USE ldfslp        ! lateral physics: iso-neutral slopes 
    19    USE traldf_lap    ! lateral diffusion (Standard operator)         (tra_ldf_lap   routine) 
    20    USE traldf_iso    ! lateral diffusion (Standard operator)         (tra_ldf_iso   routine) 
    21    USE traldf_triad  ! lateral diffusion (Standard operator)         (tra_ldf_triad routine) 
    22    USE diaptr        ! poleward transport diagnostics 
    23    USE zpshde        ! partial step: hor. derivative     (zps_hde routine) 
     12   USE oce            ! ocean dynamics and active tracers 
     13   USE dom_oce        ! ocean space and time domain 
     14   USE phycst         ! physical constants 
     15   USE trc_oce        ! share passive tracers/Ocean variables 
     16   USE zdf_oce        ! ocean vertical physics 
     17   USE ldftra         ! lateral physics: eddy diffusivity 
     18   USE ldfslp         ! lateral physics: iso-neutral slopes 
     19   USE traldf_lap     ! lateral diffusion (Standard operator)         (tra_ldf_lap   routine) 
     20   USE traldf_iso     ! lateral diffusion (Standard operator)         (tra_ldf_iso   routine) 
     21   USE traldf_triad   ! lateral diffusion (Standard operator)         (tra_ldf_triad routine) 
     22   USE diaptr         ! poleward transport diagnostics 
     23   USE zpshde         ! partial step: hor. derivative     (zps_hde routine) 
    2424   ! 
    2525   USE in_out_manager ! I/O manager 
     
    3333   PRIVATE 
    3434 
    35    PUBLIC   tra_ldf_blp         ! routine called by traldf.F90 
     35   PUBLIC   tra_ldf_blp   ! routine called by traldf.F90 
    3636 
    37    !                                    ! Flag to control the type of lateral diffusive operator 
    38    INTEGER, PARAMETER, PUBLIC ::   n_no_ldf = 00                      ! without operator (i.e. no lateral diffusive trend) 
    39    !               !!      laplacian    !    bilaplacian   ! 
    40    INTEGER, PARAMETER, PUBLIC ::   n_lap    = 10   ,   n_blp    = 20  ! iso-level operator 
    41    INTEGER, PARAMETER, PUBLIC ::   n_lap_i  = 11   ,   n_blp_i  = 21  ! standard iso-neutral or geopotential operator  
    42    INTEGER, PARAMETER, PUBLIC ::   n_lap_it = 12   ,   n_blp_it = 22  ! triad    iso-neutral or geopotential operator 
     37   !                      ! Flag to control the type of lateral diffusive operator 
     38   INTEGER, PARAMETER, PUBLIC ::   np_no_ldf = 00   ! without operator (i.e. no lateral diffusive trend) 
     39   !                          !!      laplacian     !    bilaplacian    ! 
     40   INTEGER, PARAMETER, PUBLIC ::   np_lap    = 10   ,   np_blp    = 20  ! iso-level operator 
     41   INTEGER, PARAMETER, PUBLIC ::   np_lap_i  = 11   ,   np_blp_i  = 21  ! standard iso-neutral or geopotential operator 
     42   INTEGER, PARAMETER, PUBLIC ::   np_lap_it = 12   ,   np_blp_it = 22  ! triad    iso-neutral or geopotential operator 
    4343 
    4444   REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, SAVE ::   zdkt3d   !: vertical tracer gradient at 2 levels 
     
    9494         WRITE(numout,*) 
    9595         SELECT CASE ( kldf ) 
    96          CASE ( n_blp    )   ;   WRITE(numout,*) 'tra_ldf_blp : iso-level   bilaplacian operator on ', cdtype 
    97          CASE ( n_blp_i  )   ;   WRITE(numout,*) 'tra_ldf_blp : iso-neutral bilaplacian operator on ', cdtype, ' (Standard)' 
    98          CASE ( n_blp_it )   ;   WRITE(numout,*) 'tra_ldf_blp : iso-neutral bilaplacian operator on ', cdtype, ' (triad)' 
     96         CASE ( np_blp    )   ;   WRITE(numout,*) 'tra_ldf_blp : iso-level   bilaplacian operator on ', cdtype 
     97         CASE ( np_blp_i  )   ;   WRITE(numout,*) 'tra_ldf_blp : iso-neutral bilaplacian operator on ', cdtype, ' (Standard)' 
     98         CASE ( np_blp_it )   ;   WRITE(numout,*) 'tra_ldf_blp : iso-neutral bilaplacian operator on ', cdtype, ' (triad)' 
    9999         END SELECT 
    100100         WRITE(numout,*) '~~~~~~~~~~~' 
     
    105105      SELECT CASE ( kldf )       !==  1st laplacian applied to ptb (output in zlap)  ==! 
    106106      ! 
    107       CASE ( n_blp    )                ! iso-level bilaplacian 
     107      CASE ( np_blp    )               ! iso-level bilaplacian 
    108108         CALL tra_ldf_lap  ( kt, kit000, cdtype, pahu, pahv, pgu, pgv, pgui, pgvi, ptb,      zlap, kjpt, 1 ) 
    109109         ! 
    110       CASE ( n_blp_i  )                ! rotated   bilaplacian : standard operator (Madec) 
     110      CASE ( np_blp_i  )               ! rotated   bilaplacian : standard operator (Madec) 
    111111         CALL tra_ldf_iso  ( kt, kit000, cdtype, pahu, pahv, pgu, pgv, pgui, pgvi, ptb, ptb, zlap, kjpt, 1 ) 
    112112         ! 
    113       CASE ( n_blp_it )                ! rotated  bilaplacian : triad operator (griffies) 
     113      CASE ( np_blp_it )               ! rotated  bilaplacian : triad operator (griffies) 
    114114         CALL tra_ldf_triad( kt, kit000, cdtype, pahu, pahv, pgu, pgv, pgui, pgvi, ptb, ptb, zlap, kjpt, 1 ) 
    115115         ! 
     
    126126      SELECT CASE ( kldf )       !==  2nd laplacian applied to zlap (output in pta)  ==! 
    127127      ! 
    128       CASE ( n_blp    )                ! iso-level bilaplacian 
     128      CASE ( np_blp    )               ! iso-level bilaplacian 
    129129         CALL tra_ldf_lap  ( kt, kit000, cdtype, pahu, pahv, zglu, zglv, zgui, zgvi, zlap, pta,      kjpt, 2 ) 
    130130         ! 
    131       CASE ( n_blp_i  )                ! rotated   bilaplacian : standard operator (Madec) 
     131      CASE ( np_blp_i  )               ! rotated   bilaplacian : standard operator (Madec) 
    132132         CALL tra_ldf_iso  ( kt, kit000, cdtype, pahu, pahv, zglu, zglv, zgui, zgvi, zlap, ptb, pta, kjpt, 2 ) 
    133133         ! 
    134       CASE ( n_blp_it )                ! rotated  bilaplacian : triad operator (griffies) 
     134      CASE ( np_blp_it )               ! rotated  bilaplacian : triad operator (griffies) 
    135135         CALL tra_ldf_triad( kt, kit000, cdtype, pahu, pahv, zglu, zglv, zgui, zgvi, zlap, ptb, pta, kjpt, 2 ) 
    136136         ! 
Note: See TracChangeset for help on using the changeset viewer.