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 2236 for branches/DEV_r2106_LOCEAN2010/NEMO/OPA_SRC/DYN/dynldf.F90 – NEMO

Ignore:
Timestamp:
2010-10-12T20:49:32+02:00 (14 years ago)
Author:
cetlod
Message:

First guess of NEMO_v3.3

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/DEV_r2106_LOCEAN2010/NEMO/OPA_SRC/DYN/dynldf.F90

    • Property svn:executable deleted
    r2104 r2236  
    3333   PUBLIC   dyn_ldf_init  ! called by opa  module  
    3434 
    35    INTEGER ::   nldf = 0   ! type of lateral diffusion used defined from ln_dynldf_... namlist logicals) 
     35   INTEGER ::   nldf = -2   ! type of lateral diffusion used defined from ln_dynldf_... namlist logicals) 
    3636 
    3737   !! * Substitutions 
     
    4141   !! NEMO/OPA 3.3 , LOCEAN-IPSL (2010)  
    4242   !! $Id$ 
    43    !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 
     43   !! Software governed by the CeCILL licence  (NEMOGCM/License_CeCILL.txt) 
    4444   !!---------------------------------------------------------------------- 
    4545 
     
    6868      CASE ( 2 )    ;   CALL dyn_ldf_bilap  ( kt )      ! iso-level bilaplacian 
    6969      CASE ( 3 )    ;   CALL dyn_ldf_bilapg ( kt )      ! s-coord. horizontal bilaplacian 
     70      CASE ( 4 )                                        ! iso-level laplacian + bilaplacian 
     71         CALL dyn_ldf_lap    ( kt ) 
     72         CALL dyn_ldf_bilap  ( kt ) 
     73      CASE ( 5 )                                        ! rotated laplacian + bilaplacian (s-coord) 
     74         CALL dyn_ldf_iso    ( kt ) 
     75         CALL dyn_ldf_bilapg ( kt ) 
    7076      ! 
    7177      CASE ( -1 )                                       ! esopa: test all possibility with control print 
     
    8288                        CALL prt_ctl( tab3d_1=ua, clinfo1=' ldf3 - Ua: ', mask1=umask,   & 
    8389            &                         tab3d_2=va, clinfo2=       ' Va: ', mask2=vmask, clinfo3='dyn' ) 
     90      ! 
     91      CASE ( -2 )                                       ! neither laplacian nor bilaplacian schemes used 
     92         IF( kt == nit000 ) THEN 
     93            IF(lwp) WRITE(numout,*) 
     94            IF(lwp) WRITE(numout,*) 'dyn_ldf : no lateral diffusion on momentum setup' 
     95            IF(lwp) WRITE(numout,*) '~~~~~~~ ' 
     96         ENDIF 
    8497      END SELECT 
    8598 
     
    123136      IF( ln_dynldf_lap   )   ioptio = ioptio + 1 
    124137      IF( ln_dynldf_bilap )   ioptio = ioptio + 1 
    125       IF( ioptio /= 1 ) CALL ctl_stop( '          use ONE of the 2 lap/bilap operator type on dynamics' ) 
     138      IF( ioptio <  1 ) CALL ctl_warn( '          neither laplacian nor bilaplacian operator set for dynamics' ) 
    126139      ioptio = 0 
    127140      IF( ln_dynldf_level )   ioptio = ioptio + 1 
     
    143156            IF ( ln_dynldf_iso   )   nldf = 1      ! isoneutral (   rotation) 
    144157         ENDIF 
    145          IF ( ln_sco ) THEN             ! z-coordinate 
     158         IF ( ln_sco ) THEN             ! s-coordinate 
    146159            IF ( ln_dynldf_level )   nldf = 0      ! iso-level  (no rotation) 
    147160            IF ( ln_dynldf_hor   )   nldf = 1      ! horizontal (   rotation) 
     
    161174            IF ( ln_dynldf_iso   )   ierr = 2      ! isoneutral (   rotation) 
    162175         ENDIF 
    163          IF ( ln_sco ) THEN             ! z-coordinate 
     176         IF ( ln_sco ) THEN             ! s-coordinate 
    164177            IF ( ln_dynldf_level )   nldf = 2      ! iso-level  (no rotation) 
    165178            IF ( ln_dynldf_hor   )   nldf = 3      ! horizontal (   rotation) 
     
    168181      ENDIF 
    169182       
     183      IF( ln_dynldf_lap .AND. ln_dynldf_bilap ) THEN  ! mixed laplacian and bilaplacian operators 
     184         IF ( ln_zco ) THEN                ! z-coordinate 
     185            IF ( ln_dynldf_level )   nldf = 4      ! iso-level  (no rotation) 
     186            IF ( ln_dynldf_hor   )   nldf = 4      ! horizontal (no rotation) 
     187            IF ( ln_dynldf_iso   )   ierr = 2      ! isoneutral (   rotation) 
     188         ENDIF 
     189         IF ( ln_zps ) THEN             ! z-coordinate 
     190            IF ( ln_dynldf_level )   ierr = 1      ! iso-level not allowed  
     191            IF ( ln_dynldf_hor   )   nldf = 4      ! horizontal (no rotation) 
     192            IF ( ln_dynldf_iso   )   ierr = 2      ! isoneutral (   rotation) 
     193         ENDIF 
     194         IF ( ln_sco ) THEN             ! s-coordinate 
     195            IF ( ln_dynldf_level )   nldf = 4      ! iso-level  (no rotation) 
     196            IF ( ln_dynldf_hor   )   nldf = 5      ! horizontal (   rotation) 
     197            IF ( ln_dynldf_iso   )   ierr = 2      ! isoneutral (   rotation) 
     198         ENDIF 
     199      ENDIF 
     200 
    170201      IF( lk_esopa )                 nldf = -1     ! esopa test 
    171202 
     
    178209      IF(lwp) THEN 
    179210         WRITE(numout,*) 
     211         IF( nldf == -2 )   WRITE(numout,*) '              neither laplacian nor bilaplacian schemes used' 
    180212         IF( nldf == -1 )   WRITE(numout,*) '              ESOPA test All scheme used' 
    181213         IF( nldf ==  0 )   WRITE(numout,*) '              laplacian operator' 
    182          IF( nldf ==  1 )   WRITE(numout,*) '              Rotated laplacian operator' 
     214         IF( nldf ==  1 )   WRITE(numout,*) '              rotated laplacian operator' 
    183215         IF( nldf ==  2 )   WRITE(numout,*) '              bilaplacian operator' 
    184          IF( nldf ==  3 )   WRITE(numout,*) '              Rotated bilaplacian' 
     216         IF( nldf ==  3 )   WRITE(numout,*) '              rotated bilaplacian' 
     217         IF( nldf ==  4 )   WRITE(numout,*) '              laplacian and bilaplacian operators' 
     218         IF( nldf ==  5 )   WRITE(numout,*) '              rotated laplacian and bilaplacian operators' 
    185219      ENDIF 
    186220      ! 
Note: See TracChangeset for help on using the changeset viewer.