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 1601 for trunk/NEMO/OPA_SRC/LDF – NEMO

Ignore:
Timestamp:
2009-08-11T12:09:19+02:00 (15 years ago)
Author:
ctlod
Message:

Doctor naming of OPA namelist variables , see ticket: #526

Location:
trunk/NEMO/OPA_SRC/LDF
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMO/OPA_SRC/LDF/ldfdyn.F90

    r1152 r1601  
    44   !! Ocean physics:  lateral viscosity coefficient  
    55   !!===================================================================== 
     6   !! History :  OPA  ! 1997-07  (G. Madec)  multi dimensional coefficients 
     7   !!   NEMO     1.0  ! 2002-09  (G. Madec)  F90: Free form and module 
     8   !!---------------------------------------------------------------------- 
    69 
    710   !!---------------------------------------------------------------------- 
     
    1114   !!   ldf_dyn_c1d   : 1D eddy viscosity coefficient initialization 
    1215   !!---------------------------------------------------------------------- 
    13    !! * Modules used 
    1416   USE oce             ! ocean dynamics and tracers    
    1517   USE dom_oce         ! ocean space and time domain  
     
    1719   USE phycst          ! physical constants 
    1820   USE ldfslp          ! ??? 
     21   USE ioipsl 
    1922   USE in_out_manager  ! I/O manager 
    2023   USE lib_mpp         ! distribued memory computing library 
     
    2427   PRIVATE 
    2528 
    26    !! *  Routine accessibility 
    27    PUBLIC ldf_dyn_init   ! called by opa.F90 
     29   PUBLIC   ldf_dyn_init   ! called by opa.F90 
    2830 
    2931  INTERFACE ldf_zpf 
     
    3436#  include "domzgr_substitute.h90" 
    3537   !!---------------------------------------------------------------------- 
    36    !!   OPA 9.0 , LOCEAN-IPSL (2005)  
     38   !! NEMO/OPA 3.2 , LOCEAN-IPSL (2009)  
    3739   !! $Id$  
    38    !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt  
     40   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 
    3941   !!---------------------------------------------------------------------- 
    4042 
     
    4850      !! 
    4951      !! ** Method  :   
    50       !!      Eddy viscosity coefficients: 
    51       !!         default option   : constant coef. ahm0 (namelist) 
    52       !!        'key_dynldf_c1d': depth dependent coef. defined in  
    53       !!                        in ldf_dyn_c1d routine 
    54       !!        'key_dynldf_c2d': latitude and longitude dependent coef. 
    55       !!                        defined in ldf_dyn_c2d routine 
    56       !!        'key_dynldf_c3d': latitude, longitude, depth dependent coef. 
    57       !!                        defined in ldf_dyn_c3d routine 
     52      !!      -  default option : ahm = constant coef. = rn_ahm_0 (namelist) 
     53      !!      - 'key_dynldf_c1d': ahm = F(depth)                     see ldf_dyn_c1d.h90 
     54      !!      - 'key_dynldf_c2d': ahm = F(latitude,longitude)        see ldf_dyn_c2d.h90 
     55      !!      - 'key_dynldf_c3d': ahm = F(latitude,longitude,depth)  see ldf_dyn_c3d.h90 
     56      !! 
    5857      !!      N.B. User defined include files.  By default, 3d and 2d coef. 
    5958      !!      are set to a constant value given in the namelist and the 1d 
     
    6160      !!      profile. 
    6261      !! 
    63       !! Reference : 
    64       !!      Madec, G. and M. Imbard, 1996, A global ocean mesh to overcome 
    65       !!      the North Pole singularity, Climate Dynamics, 12, 381-388. 
    66       !! 
    67       !! History : 
    68       !!        !  07-97  (G. Madec)  from inimix.F split in 2 routines 
    69       !!        !  08-97  (G. Madec)  multi dimensional coefficients 
    70       !!   8.5  !  02-09  (G. Madec)  F90: Free form and module 
    71       !!---------------------------------------------------------------------- 
    72       !! * Modules used 
    73       USE ioipsl 
    74  
    75       !! * Local declarations 
     62      !! Reference :   Madec, G. and M. Imbard, 1996: Climate Dynamics, 12, 381-388. 
     63      !!---------------------------------------------------------------------- 
    7664      INTEGER ::   ioptio         ! ??? 
    7765      LOGICAL :: ll_print = .FALSE.    ! Logical flag for printing viscosity coef. 
    78  
    79         
    80       NAMELIST/nam_dynldf/ ln_dynldf_lap  , ln_dynldf_bilap,                & 
    81          &                 ln_dynldf_level, ln_dynldf_hor, ln_dynldf_iso,   & 
    82          &                 ahm0, ahmb0 
    83       !!---------------------------------------------------------------------- 
    84  
    85  
    86       ! Define the lateral physics parameters 
    87       ! ====================================== 
    88      
    89       ! Read Namelist nam_dynldf : Lateral physics 
    90       REWIND( numnam ) 
    91       READ  ( numnam, nam_dynldf ) 
    92  
    93       ! Parameter print 
    94       IF(lwp) THEN 
     66      !!  
     67      NAMELIST/namdyn_ldf/ ln_dynldf_lap  , ln_dynldf_bilap,                  & 
     68         &                 ln_dynldf_level, ln_dynldf_hor  , ln_dynldf_iso,   & 
     69         &                 rn_ahm_0       , rn_ahmb_0 
     70      !!---------------------------------------------------------------------- 
     71 
     72      REWIND( numnam )                  ! Read Namelist namdyn_ldf : Lateral physics 
     73      READ  ( numnam, namdyn_ldf ) 
     74 
     75      IF(lwp) THEN                      ! Parameter print 
    9576         WRITE(numout,*) 
    9677         WRITE(numout,*) 'ldf_dyn : lateral momentum physics' 
    9778         WRITE(numout,*) '~~~~~~~' 
    98          WRITE(numout,*) '          Namelist nam_dynldf : set lateral mixing parameters' 
    99          WRITE(numout,*) '             laplacian operator          ln_dynldf_lap   = ', ln_dynldf_lap 
    100          WRITE(numout,*) '             bilaplacian operator        ln_dynldf_bilap = ', ln_dynldf_bilap 
    101          WRITE(numout,*) '             iso-level                   ln_dynldf_level = ', ln_dynldf_level 
    102          WRITE(numout,*) '             horizontal (geopotential)   ln_dynldf_hor   = ', ln_dynldf_hor 
    103          WRITE(numout,*) '             iso-neutral                 ln_dynldf_iso   = ', ln_dynldf_iso 
    104          WRITE(numout,*) '             horizontal eddy viscosity            ahm0   = ', ahm0 
    105          WRITE(numout,*) '             background viscosity                 ahmb0  = ', ahmb0 
    106       ENDIF 
     79         WRITE(numout,*) '   Namelist nam_dynldf : set lateral mixing parameters' 
     80         WRITE(numout,*) '      laplacian operator          ln_dynldf_lap   = ', ln_dynldf_lap 
     81         WRITE(numout,*) '      bilaplacian operator        ln_dynldf_bilap = ', ln_dynldf_bilap 
     82         WRITE(numout,*) '      iso-level                   ln_dynldf_level = ', ln_dynldf_level 
     83         WRITE(numout,*) '      horizontal (geopotential)   ln_dynldf_hor   = ', ln_dynldf_hor 
     84         WRITE(numout,*) '      iso-neutral                 ln_dynldf_iso   = ', ln_dynldf_iso 
     85         WRITE(numout,*) '      horizontal eddy viscosity   rn_ahm_0        = ', rn_ahm_0 
     86         WRITE(numout,*) '      background viscosity        rn_ahmb_0       = ', rn_ahmb_0 
     87      ENDIF 
     88 
     89      ahm0  = rn_ahm_0                  ! OLD namelist variables defined from DOCTOR namelist variables 
     90      ahmb0 = rn_ahmb_0 
    10791 
    10892      ! ... check of lateral diffusive operator on tracers 
     
    11296      ioptio = 0 
    11397#if defined key_dynldf_c3d 
    114       IF(lwp) WRITE(numout,*) '          momentum mixing coef. = F( latitude, longitude, depth)' 
     98      IF(lwp) WRITE(numout,*) '   momentum mixing coef. = F( latitude, longitude, depth)' 
    11599      ioptio = ioptio+1 
    116100#endif 
    117101#if defined key_dynldf_c2d 
    118       IF(lwp) WRITE(numout,*) '          momentum mixing coef. = F( latitude, longitude)' 
     102      IF(lwp) WRITE(numout,*) '   momentum mixing coef. = F( latitude, longitude)' 
    119103      ioptio = ioptio+1 
    120104#endif 
    121105#if defined key_dynldf_c1d 
    122       IF(lwp) WRITE(numout,*) '          momentum mixing coef. = F( depth )' 
     106      IF(lwp) WRITE(numout,*) '   momentum mixing coef. = F( depth )' 
    123107      ioptio = ioptio+1 
    124       IF( ln_sco ) CALL ctl_stop( '          key_dynldf_c1d cannot be used in s-coordinate (ln_sco)' ) 
     108      IF( ln_sco ) CALL ctl_stop( 'key_dynldf_c1d cannot be used in s-coordinate (ln_sco)' ) 
    125109#endif 
    126110      IF( ioptio == 0 ) THEN 
    127           IF(lwp) WRITE(numout,*) '          momentum mixing coef. = constant  (default option)' 
     111          IF(lwp) WRITE(numout,*) '   momentum mixing coef. = constant  (default option)' 
    128112        ELSEIF( ioptio > 1 ) THEN 
    129            CALL ctl_stop( '          use only one of the following keys:',   & 
    130                 &         ' key_dynldf_c3d, key_dynldf_c2d, key_dynldf_c1d' ) 
     113           CALL ctl_stop( 'use only one of the following keys: key_dynldf_c3d, key_dynldf_c2d, key_dynldf_c1d' ) 
    131114      ENDIF 
    132115 
    133116 
    134117      IF( ln_dynldf_bilap ) THEN 
    135          IF(lwp) WRITE(numout,*) '          biharmonic momentum diffusion' 
    136          IF( ahm0 > 0 .AND. .NOT. lk_esopa )   & 
    137               &   CALL ctl_stop( 'The horizontal viscosity coef. ahm0 must be negative' ) 
     118         IF(lwp) WRITE(numout,*) '   biharmonic momentum diffusion' 
     119         IF( ahm0 > 0 .AND. .NOT. lk_esopa )   CALL ctl_stop( 'The horizontal viscosity coef. ahm0 must be negative' ) 
    138120      ELSE 
    139          IF(lwp) WRITE(numout,*) '          harmonic momentum diff. (default)' 
    140          IF( ahm0 < 0 .AND. .NOT. lk_esopa ) & 
    141               &   CALL ctl_stop( '          The horizontal viscosity coef. ahm0 must be positive' ) 
     121         IF(lwp) WRITE(numout,*) '   harmonic momentum diff. (default)' 
     122         IF( ahm0 < 0 .AND. .NOT. lk_esopa )   CALL ctl_stop( 'The horizontal viscosity coef. ahm0 must be positive' ) 
    142123      ENDIF 
    143124 
     
    145126      ! Lateral eddy viscosity 
    146127      ! ====================== 
    147  
    148128#if defined key_dynldf_c3d 
    149129      CALL ldf_dyn_c3d( ll_print )   ! ahm = 3D coef. = F( longitude, latitude, depth ) 
     
    159139      IF(lwp) WRITE(numout,*) '        ahm1 = ahm2 = ahm0 =  ',ahm0 
    160140#endif 
    161  
     141      ! 
    162142   END SUBROUTINE ldf_dyn_init 
    163143 
     
    178158      !! 
    179159      !! ** Method  :   1D eddy viscosity coefficients ( depth ) 
    180       !! 
    181       !!---------------------------------------------------------------------- 
    182       !! * Arguments 
    183       LOGICAL , INTENT (in   ) :: ld_print   ! If true, output arrays on numout 
    184       REAL(wp), INTENT (in   ) ::   & 
    185           pdam,     &  ! depth of the inflection point 
    186           pwam,     &  ! width of inflection 
    187           pbot         ! battom value (0<pbot<= 1) 
    188       REAL(wp), INTENT (in   ), DIMENSION(jpk) ::   & 
    189           pdep         ! depth of the gridpoint (T, U, V, F) 
    190       REAL(wp), INTENT (inout), DIMENSION(jpk) ::   & 
    191           pah          ! adimensional vertical profile 
    192  
    193       !! * Local variables 
     160      !!---------------------------------------------------------------------- 
     161      LOGICAL , INTENT(in   )                 ::   ld_print   ! If true, output arrays on numout 
     162      REAL(wp), INTENT(in   )                 ::   pdam       ! depth of the inflection point 
     163      REAL(wp), INTENT(in   )                 ::   pwam       ! width of inflection 
     164      REAL(wp), INTENT(in   )                 ::   pbot       ! bottom value (0<pbot<= 1) 
     165      REAL(wp), INTENT(in   ), DIMENSION(jpk) ::   pdep       ! depth of the gridpoint (T, U, V, F) 
     166      REAL(wp), INTENT(inout), DIMENSION(jpk) ::   pah        ! adimensional vertical profile 
     167      !! 
    194168      INTEGER  ::   jk           ! dummy loop indices 
    195169      REAL(wp) ::   zm00, zm01, zmhb, zmhs       ! temporary scalars 
     
    205179      END DO 
    206180 
    207       ! Control print 
    208       IF(lwp .AND. ld_print ) THEN 
     181      IF(lwp .AND. ld_print ) THEN      ! Control print 
    209182         WRITE(numout,*) 
    210183         WRITE(numout,*) '         ahm profile : ' 
     
    215188         END DO 
    216189      ENDIF 
    217  
     190      ! 
    218191   END SUBROUTINE ldf_zpf_1d 
    219192 
     
    226199      !! 
    227200      !! ** Method  :   1D eddy viscosity coefficients ( depth ) 
    228       !! 
    229       !!---------------------------------------------------------------------- 
    230       !! * Arguments 
    231       LOGICAL , INTENT (in   ) :: ld_print   ! If true, output arrays on numout 
    232       REAL(wp), INTENT (in   ) ::   & 
    233           pdam,     &  ! depth of the inflection point 
    234           pwam,     &  ! width of inflection 
    235           pbot         ! battom value (0<pbot<= 1) 
    236       REAL(wp), INTENT (in   ), DIMENSION(jpk) ::   & 
    237           pdep         ! depth of the gridpoint (T, U, V, F) 
    238       REAL(wp), INTENT (inout), DIMENSION(jpi,jpj,jpk) ::   & 
    239           pah          ! adimensional vertical profile 
    240  
    241       !! * Local variables 
     201      !!---------------------------------------------------------------------- 
     202      LOGICAL , INTENT(in   )                         ::   ld_print   ! If true, output arrays on numout 
     203      REAL(wp), INTENT(in   )                         ::   pdam       ! depth of the inflection point 
     204      REAL(wp), INTENT(in   )                         ::   pwam       ! width of inflection 
     205      REAL(wp), INTENT(in   )                         ::   pbot       ! bottom value (0<pbot<= 1) 
     206      REAL(wp), INTENT(in   ), DIMENSION        (jpk) ::   pdep       ! depth of the gridpoint (T, U, V, F) 
     207      REAL(wp), INTENT(inout), DIMENSION(jpi,jpj,jpk) ::   pah        ! adimensional vertical profile 
     208      !! 
    242209      INTEGER  ::   jk           ! dummy loop indices 
    243210      REAL(wp) ::   zm00, zm01, zmhb, zmhs, zcf  ! temporary scalars 
     
    254221      END DO 
    255222 
    256       ! Control print 
    257       IF(lwp .AND. ld_print ) THEN 
     223      IF(lwp .AND. ld_print ) THEN      ! Control print 
    258224         WRITE(numout,*) 
    259225         WRITE(numout,*) '         ahm profile : ' 
     
    264230         END DO 
    265231      ENDIF 
    266  
     232      ! 
    267233   END SUBROUTINE ldf_zpf_1d_3d 
    268234 
     
    275241      !! 
    276242      !! ** Method  :   3D for partial step or s-coordinate 
    277       !! 
    278       !!---------------------------------------------------------------------- 
    279       !! * Arguments 
    280       LOGICAL , INTENT (in   ) :: ld_print   ! If true, output arrays on numout 
    281       REAL(wp), INTENT (in   ) ::   & 
    282           pdam,     &  ! depth of the inflection point 
    283           pwam,     &  ! width of inflection 
    284           pbot         ! reduction factor (surface value / bottom value) 
    285       REAL(wp), INTENT (in   ), DIMENSION(jpi,jpj,jpk) ::   & 
    286           pdep         ! dep of the gridpoint (T, U, V, F) 
    287       REAL(wp), INTENT (inout), DIMENSION(jpi,jpj,jpk) ::   & 
    288           pah          ! adimensional vertical profile 
    289  
    290       !! * Local variables 
     243      !!---------------------------------------------------------------------- 
     244      LOGICAL , INTENT(in   )                         ::   ld_print   ! If true, output arrays on numout 
     245      REAL(wp), INTENT(in   )                         ::   pdam       ! depth of the inflection point 
     246      REAL(wp), INTENT(in   )                         ::   pwam       ! width of inflection 
     247      REAL(wp), INTENT(in   )                         ::   pbot       ! bottom value (0<pbot<= 1) 
     248      REAL(wp), INTENT(in   ), DIMENSION(jpi,jpj,jpk) ::   pdep       ! dep of the gridpoint (T, U, V, F) 
     249      REAL(wp), INTENT(inout), DIMENSION(jpi,jpj,jpk) ::   pah        ! adimensional vertical profile 
     250      !! 
    291251      INTEGER  ::   jk           ! dummy loop indices 
    292252      REAL(wp) ::   zm00, zm01, zmhb, zmhs       ! temporary scalars 
     
    302262      END DO 
    303263 
    304       ! Control print 
    305       IF(lwp .AND. ld_print ) THEN 
     264      IF(lwp .AND. ld_print ) THEN      ! Control print 
    306265         WRITE(numout,*) 
    307266         WRITE(numout,*) '         ahm profile : ' 
     
    312271         END DO 
    313272      ENDIF 
    314  
     273      ! 
    315274   END SUBROUTINE ldf_zpf_3d 
     275 
    316276   !!====================================================================== 
    317277END MODULE ldfdyn 
  • trunk/NEMO/OPA_SRC/LDF/ldfdyn_oce.F90

    r1152 r1601  
    44   !! Ocean physics:  lateral momentum mixing coefficient defined in memory  
    55   !!====================================================================== 
    6    !! 
    7    !! ** Purpose : 
    8    !!       - Define in memory lateral momentum mixing coefficients 
    9    !! 
    10    !! History : 
    11    !!   8.5  !  02-11  (G. Madec)  F90: Free form and module 
     6   !! History :  1.0  ! 2002-11  (G. Madec)  F90: Free form and module 
    127   !!---------------------------------------------------------------------- 
    13    !!  OPA 9.0 , LOCEAN-IPSL (2005)  
    14    !! $Id$  
    15    !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt 
    16    !!---------------------------------------------------------------------- 
    17    !! * Modules used 
    188   USE par_oce      ! ocean parameters 
    199 
     
    2111   PUBLIC 
    2212 
    23    !!---------------------------------------------------------------------- 
    24    !! Lateral eddy viscosity coefficients (dynamics) 
    25    !!---------------------------------------------------------------------- 
     13   !                                                  !!* Namelist namdyn_ldf : lateral mixing * 
     14   LOGICAL , PUBLIC ::   ln_dynldf_lap   = .TRUE.      !: laplacian operator 
     15   LOGICAL , PUBLIC ::   ln_dynldf_bilap = .FALSE.     !: bilaplacian operator 
     16   LOGICAL , PUBLIC ::   ln_dynldf_level = .FALSE.     !: iso-level direction 
     17   LOGICAL , PUBLIC ::   ln_dynldf_hor   = .TRUE.      !: horizontal (geopotential) direction 
     18   LOGICAL , PUBLIC ::   ln_dynldf_iso   = .FALSE.     !: iso-neutral direction 
     19   REAL(wp), PUBLIC ::   rn_ahm_0        = 40000._wp   !: lateral eddy viscosity (m2/s) 
     20   REAL(wp), PUBLIC ::   rn_ahmb_0       =     0._wp   !: lateral background eddy viscosity (m2/s) 
    2621 
    27    LOGICAL  ::                      & !!! ** lateral mixing namelist (nam_dynldf) ** 
    28       ln_dynldf_lap   = .TRUE.  ,   &  ! laplacian operator 
    29       ln_dynldf_bilap = .FALSE. ,   &  ! bilaplacian operator 
    30       ln_dynldf_level = .FALSE. ,   &  ! iso-level direction 
    31       ln_dynldf_hor   = .TRUE.  ,   &  ! horizontal (geopotential) direction 
    32       ln_dynldf_iso   = .FALSE.        ! iso-neutral direction 
    33  
    34    REAL(wp) ::                      & !!! ** lateral mixing namelist (nam_dynldf) ** 
    35       ahm0  = 40000._wp ,   &  ! lateral eddy viscosity (m2/s) 
    36       ahmb0 =     0._wp        ! lateral background eddy viscosity (m2/s) 
     22   REAL(wp), PUBLIC ::   ahm0, ahmb0                 ! OLD namelist names 
    3723 
    3824#if defined key_dynldf_c3d 
    39    REAL(wp), DIMENSION(jpi,jpj,jpk) ::   &  ! ** 3D coefficients ** 
     25   REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jpk) ::   ahm1, ahm2, ahm3, ahm4  ! ** 3D coefficients ** 
    4026#elif defined key_dynldf_c2d 
    41    REAL(wp), DIMENSION(jpi,jpj)     ::   &  ! ** 2D coefficients ** 
     27   REAL(wp), PUBLIC, DIMENSION(jpi,jpj)     ::   ahm1, ahm2, ahm3, ahm4  ! ** 2D coefficients ** 
    4228#elif defined key_dynldf_c1d 
    43    REAL(wp), DIMENSION(jpk)         ::   &  ! ** 2D coefficients ** 
     29   REAL(wp), PUBLIC, DIMENSION(jpk)         ::   ahm1, ahm2, ahm3, ahm4  ! ** 2D coefficients ** 
    4430#else 
    45    REAL(wp)                         ::   &  ! ** 0D coefficients ** 
     31   REAL(wp), PUBLIC                         ::   ahm1, ahm2, ahm3, ahm4  ! ** 0D coefficients ** 
    4632#endif 
    47       ahm1, ahm2, ahm3, ahm4                ! ???? 
    4833 
    4934   !!---------------------------------------------------------------------- 
     35   !! NEMO/OPA 3.2 , LOCEAN-IPSL (2009)  
     36   !! $Id$  
     37   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 
     38   !!====================================================================== 
    5039END MODULE ldfdyn_oce 
  • trunk/NEMO/OPA_SRC/LDF/ldftra.F90

    r1152 r1601  
    44   !! Ocean physics:  lateral diffusivity coefficient  
    55   !!===================================================================== 
    6    !! History : 
    7    !!        !  07-97  (G. Madec)  from inimix.F split in 2 routines 
    8    !!        !  08-97  (G. Madec)  multi dimensional coefficients 
    9    !!   8.5  !  02-09  (G. Madec)  F90: Free form and module 
    10    !!   9.0  !  05-11  (G. Madec)   
     6   !! History :        ! 1997-07  (G. Madec)  from inimix.F split in 2 routines 
     7   !!   NEMO      1.0  ! 2002-09  (G. Madec)  F90: Free form and module 
     8   !!             2.0  ! 2005-11  (G. Madec)   
     9   !!---------------------------------------------------------------------- 
     10 
    1111   !!---------------------------------------------------------------------- 
    1212   !!   ldf_tra_init : initialization, namelist read, and parameters control 
     
    1515   !!   ldf_tra_c1d   : 1D eddy viscosity coefficient initialization 
    1616   !!---------------------------------------------------------------------- 
    17    !! * Modules used 
    1817   USE oce             ! ocean dynamics and tracers 
    1918   USE dom_oce         ! ocean space and time domain 
     
    2221   USE ldfslp          ! ??? 
    2322   USE in_out_manager  ! I/O manager 
     23   USE ioipsl 
    2424   USE lib_mpp         ! distribued memory computing library 
    2525   USE lbclnk          ! ocean lateral boundary conditions (or mpp link) 
     
    2828   PRIVATE 
    2929 
    30    !! *  Routine accessibility 
    31    PUBLIC ldf_tra_init   ! called by opa.F90 
     30   PUBLIC   ldf_tra_init   ! called by opa.F90 
    3231 
    3332   !! * Substitutions 
    3433#  include "domzgr_substitute.h90" 
    3534#  include "vectopt_loop_substitute.h90" 
    36    !!--------------------------------------------------------------------------------- 
    37    !!   OPA 9.0 , LOCEAN-IPSL (2005)  
     35   !!---------------------------------------------------------------------- 
     36   !! NEMO/OPA 3.2 , LOCEAN-IPSL (2009)  
    3837   !! $Id$ 
    39    !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt 
    40    !!--------------------------------------------------------------------------------- 
     38   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 
     39   !!---------------------------------------------------------------------- 
    4140 
    4241CONTAINS 
     
    6261      !!      coefficients are initialized to a hyperbolic tangent vertical 
    6362      !!      profile. 
    64       !! 
    6563      !!---------------------------------------------------------------------- 
    66       USE ioipsl 
    67  
    68       INTEGER ::   ioptio               ! ??? 
     64      INTEGER ::   ioptio               ! temporary integer 
    6965      LOGICAL ::   ll_print = .FALSE.   ! =T print eddy coef. in numout 
    70        
    71       NAMELIST/nam_traldf/ ln_traldf_lap  , ln_traldf_bilap,                & 
    72          &                 ln_traldf_level, ln_traldf_hor, ln_traldf_iso,   & 
    73          &                 aht0, ahtb0, aeiv0 
     66      !!  
     67      NAMELIST/namtra_ldf/ ln_traldf_lap  , ln_traldf_bilap,                  & 
     68         &                 ln_traldf_level, ln_traldf_hor  , ln_traldf_iso,   & 
     69         &                 rn_aht_0       , rn_ahtb_0      , rn_aeiv_0 
    7470      !!---------------------------------------------------------------------- 
    7571 
     
    7773      ! ============================================= 
    7874     
    79       ! Read Namelist nam_traldf : Lateral physics on tracers 
    80       REWIND( numnam ) 
    81       READ  ( numnam, nam_traldf ) 
     75      REWIND( numnam )                  ! Read Namelist namtra_ldf : Lateral physics on tracers 
     76      READ  ( numnam, namtra_ldf ) 
    8277 
    83       IF(lwp) THEN 
     78      IF(lwp) THEN                      ! control print 
    8479         WRITE(numout,*) 
    8580         WRITE(numout,*) 'ldf_tra_init : lateral tracer physics' 
    8681         WRITE(numout,*) '~~~~~~~~~~~~ ' 
    87          WRITE(numout,*) '          Namelist nam_traldf : lateral mixing coefficients' 
    88          WRITE(numout,*) '             laplacian operator          ln_traldf_lap   = ', ln_traldf_lap 
    89          WRITE(numout,*) '             bilaplacian operator        ln_traldf_bilap = ', ln_traldf_bilap 
    90          WRITE(numout,*) '             lateral eddy diffusivity             aht0   = ', aht0 
    91          WRITE(numout,*) '             background hor. diffusivity          ahtb0  = ', ahtb0 
    92          WRITE(numout,*) '             eddy induced velocity coef.          aeiv0  = ', aeiv0 
     82         WRITE(numout,*) '   Namelist namtra_ldf : lateral mixing coefficients' 
     83         WRITE(numout,*) '      laplacian operator            ln_traldf_lap   = ', ln_traldf_lap 
     84         WRITE(numout,*) '      bilaplacian operator          ln_traldf_bilap = ', ln_traldf_bilap 
     85         WRITE(numout,*) '      lateral eddy diffusivity      rn_aht_0        = ', rn_aht_0 
     86         WRITE(numout,*) '      background hor. diffusivity   rn_ahtb_0       = ', rn_ahtb_0 
     87         WRITE(numout,*) '      eddy induced velocity coef.   rn_aeiv_0       = ', rn_aeiv_0 
    9388         WRITE(numout,*) 
    9489      ENDIF 
    9590 
    96       ! Parameter control 
     91      !                                ! convert DOCTOR namelist names into OLD names 
     92      aht0  = rn_aht_0 
     93      ahtb0 = rn_ahtb_0 
     94      aeiv0 = rn_aeiv_0 
     95 
     96      !                                ! Parameter control 
    9797 
    9898      ! ... Check consistency for type and direction : 
     
    112112      IF(lwp) WRITE(numout,*) '          tracer mixing coef. = F( depth )' 
    113113      ioptio = ioptio + 1 
    114       IF( .NOT. ln_zco ) & 
    115            &   CALL ctl_stop( '          key_traldf_c1d can only be used in z-coordinate - full step' ) 
     114      IF( .NOT. ln_zco )   CALL ctl_stop( 'key_traldf_c1d can only be used in z-coordinate - full step' ) 
    116115#endif 
    117116      IF( ioptio == 0 ) THEN 
     
    124123      IF( ln_traldf_bilap ) THEN 
    125124         IF(lwp) WRITE(numout,*) '          biharmonic tracer diffusion' 
    126          IF( aht0 > 0 .AND. .NOT. lk_esopa )   & 
    127               &   CALL ctl_stop( '          The horizontal diffusivity coef. aht0 must be negative' ) 
     125         IF( aht0 > 0 .AND. .NOT. lk_esopa )   CALL ctl_stop( 'The horizontal diffusivity coef. aht0 must be negative' ) 
    128126      ELSE 
    129127         IF(lwp) WRITE(numout,*) '          harmonic tracer diffusion (default)' 
    130          IF( aht0 < 0 .AND. .NOT. lk_esopa )   & 
    131               &   CALL ctl_stop('          The horizontal diffusivity coef. aht0 must be positive' ) 
     128         IF( aht0 < 0 .AND. .NOT. lk_esopa )   CALL ctl_stop('The horizontal diffusivity coef. aht0 must be positive' ) 
    132129      ENDIF 
    133130 
     
    135132      !  Lateral eddy diffusivity and eddy induced velocity coefficients 
    136133      ! ================================================================ 
    137  
    138134#if defined key_traldf_c3d 
    139135      CALL ldf_tra_c3d( ll_print )      ! aht = 3D coef. = F( longitude, latitude, depth ) 
     
    145141                                        ! Constant coefficients 
    146142      IF(lwp)WRITE(numout,*) 
    147       IF(lwp)WRITE(numout,*) '          constant eddy diffusivity coef.   ahtu = ahtv = ahtw = aht0 = ', aht0 
     143      IF(lwp)WRITE(numout,*) '      constant eddy diffusivity coef.   ahtu = ahtv = ahtw = aht0 = ', aht0 
    148144      IF( lk_traldf_eiv ) THEN 
    149145         IF(lwp)WRITE(numout,*) 
    150          IF(lwp)WRITE(numout,*) '          constant eddy induced velocity coef.   aeiu = aeiv = aeiw = aeiv0 = ', aeiv0 
     146         IF(lwp)WRITE(numout,*) '      constant eddy induced velocity coef.   aeiu = aeiv = aeiw = aeiv0 = ', aeiv0 
    151147      ENDIF 
    152148#endif 
    153  
     149      ! 
    154150   END SUBROUTINE ldf_tra_init 
    155151 
  • trunk/NEMO/OPA_SRC/LDF/ldftra_oce.F90

    r1152 r1601  
    44   !! Ocean physics :  lateral tracer mixing coefficient defined in memory  
    55   !!===================================================================== 
    6    !! 
    7    !! ** Purpose : - Define in memory lateral tracer mixing coefficients 
    8    !! 
    9    !! History : 
    10    !!   9.0  !  02-11  (G. Madec)  Original code (from common.h) 
     6   !! History :  9.0  !  02-11  (G. Madec)  Original code 
    117   !!---------------------------------------------------------------------- 
    12    !!  OPA 9.0 , LOCEAN-IPSL (2005)  
    13    !! $Id$  
    14    !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt  
    15    !!---------------------------------------------------------------------- 
    16    !! * Modules used 
    178   USE par_oce         ! ocean parameters 
    189 
     
    2314   !! Lateral eddy diffusivity coefficients (tracers) 
    2415   !!---------------------------------------------------------------------- 
     16   !                                                !!* Namelist namtra_ldf : lateral mixing * 
     17   LOGICAL , PUBLIC ::   ln_traldf_lap   = .TRUE.    !: laplacian operator 
     18   LOGICAL , PUBLIC ::   ln_traldf_bilap = .FALSE.   !: bilaplacian operator 
     19   LOGICAL , PUBLIC ::   ln_traldf_level = .FALSE.   !: iso-level direction 
     20   LOGICAL , PUBLIC ::   ln_traldf_hor   = .FALSE.   !: horizontal (geopotential) direction 
     21   LOGICAL , PUBLIC ::   ln_traldf_iso   = .TRUE.    !: iso-neutral direction 
     22   REAL(wp), PUBLIC ::   rn_aht_0        = 2000._wp  !: lateral eddy diffusivity (m2/s) 
     23   REAL(wp), PUBLIC ::   rn_ahtb_0       =    0._wp  !: lateral background eddy diffusivity (m2/s) 
     24   REAL(wp), PUBLIC ::   rn_aeiv_0       = 2000._wp  !: eddy induced velocity coefficient (m2/s) 
    2525 
    26    LOGICAL , PUBLIC ::              & !!: ** lateral mixing namelist (nam_traldf) ** 
    27       ln_traldf_lap   = .TRUE.  ,   &  !: laplacian operator 
    28       ln_traldf_bilap = .FALSE. ,   &  !: bilaplacian operator 
    29       ln_traldf_level = .FALSE. ,   &  !: iso-level direction 
    30       ln_traldf_hor   = .FALSE. ,   &  !: horizontal (geopotential) direction 
    31       ln_traldf_iso   = .TRUE.         !: iso-neutral direction 
    32  
    33    REAL(wp), PUBLIC ::              & !!: ** lateral mixing namelist (namldf) ** 
    34       aht0  = 2000._wp     ,        &  !: lateral eddy diffusivity (m2/s) 
    35       ahtb0 =    0._wp     ,        &  !: lateral background eddy diffusivity (m2/s) 
    36       aeiv0 = 2000._wp                 !: eddy induced velocity coefficient (m2/s) 
     26   REAL(wp), PUBLIC ::   aht0, ahtb0, aeiv0         !!: OLD namelist names 
    3727 
    3828#if defined key_traldf_c3d 
    39    REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jpk) ::   &  !: ** 3D coefficients ** 
     29   REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jpk) ::   ahtt, ahtu, ahtv, ahtw   !: ** 3D coefficients ** at T-, U-, V-, W-points 
    4030#elif defined key_traldf_c2d 
    41    REAL(wp), PUBLIC, DIMENSION(jpi,jpj)     ::   &  !: ** 2D coefficients ** 
     31   REAL(wp), PUBLIC, DIMENSION(jpi,jpj)     ::   ahtt, ahtu, ahtv, ahtw   !: ** 2D coefficients ** at T-, U-, V-, W-points 
    4232#elif defined key_traldf_c1d 
    43    REAL(wp), PUBLIC, DIMENSION(jpk)         ::   &  !: ** 1D coefficients ** 
     33   REAL(wp), PUBLIC, DIMENSION(jpk)         ::   ahtt, ahtu, ahtv, ahtw   !: ** 1D coefficients ** at T-, U-, V-, W-points 
    4434#else 
    45    REAL(wp), PUBLIC                         ::   &  !: ** 0D coefficients ** 
     35   REAL(wp), PUBLIC                         ::   ahtt, ahtu, ahtv, ahtw   !: ** 0D coefficients ** at T-, U-, V-, W-points 
    4636#endif 
    47       ahtt, ahtu, ahtv, ahtw                !: T-, U-, V-, W-points coefficients 
    4837 
    4938 
     
    5544       
    5645# if defined key_traldf_c3d 
    57    REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jpk) ::   &  !: ** 3D coefficients ** 
     46   REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jpk) ::   aeiu, aeiv, aeiw  !: ** 3D coefficients ** at U-, V-, W-points  [m2/s] 
    5847# elif defined key_traldf_c2d 
    59    REAL(wp), PUBLIC, DIMENSION(jpi,jpj)     ::   &  !: ** 2D coefficients ** 
     48   REAL(wp), PUBLIC, DIMENSION(jpi,jpj)     ::   aeiu, aeiv, aeiw  !: ** 2D coefficients ** at U-, V-, W-points  [m2/s] 
    6049# elif defined key_traldf_c1d 
    61    REAL(wp), PUBLIC, DIMENSION(jpk)         ::   &  !: ** 1D coefficients ** 
     50   REAL(wp), PUBLIC, DIMENSION(jpk)         ::   aeiu, aeiv, aeiw  !: ** 1D coefficients ** at U-, V-, W-points  [m2/s] 
    6251# else 
    63    REAL(wp), PUBLIC                         ::   &  !: ** 0D coefficients ** 
     52   REAL(wp), PUBLIC                         ::   aeiu, aeiv, aeiw  !: ** 0D coefficients ** at U-, V-, W-points  [m2/s] 
    6453# endif 
    65       aeiu, aeiv, aeiw                              !: U-, V-, W-points  induced velocity coef. (m2/s) 
    66  
    6754# if defined key_diaeiv 
    68    REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jpk) ::    &  !: 
    69       u_eiv, v_eiv, w_eiv     !: The three component of the eddy induced velocity (m/s) 
     55   REAL(wp), PUBLIC, DIMENSION(jpi,jpj,jpk) ::   u_eiv, v_eiv, w_eiv   !: eddy induced velocity [m/s] 
    7056# endif 
    7157 
     
    7561   !!---------------------------------------------------------------------- 
    7662   LOGICAL , PUBLIC, PARAMETER ::   lk_traldf_eiv   = .FALSE.   !: eddy induced velocity flag 
    77    REAL(wp), PUBLIC ::   aeiu, aeiv, aeiw 
     63   REAL(wp), PUBLIC            ::   aeiu, aeiv, aeiw            !: eddy induced coef. (not used) 
    7864#endif 
    7965 
    8066   !!---------------------------------------------------------------------- 
     67   !! NEMO/OPA 3.2 , LOCEAN-IPSL (2009)  
     68   !! $Id$  
     69   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 
     70   !!===================================================================== 
    8171END MODULE ldftra_oce 
Note: See TracChangeset for help on using the changeset viewer.