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 4147 for branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/TOP_SRC/TRP/trcnam_trp.F90 – NEMO

Ignore:
Timestamp:
2013-11-04T12:51:55+01:00 (10 years ago)
Author:
cetlod
Message:

merge in dev_LOCEAN_2013, the 1st development branch dev_r3853_CNRS9_Confsetting, from its starting point ( r3853 ) on the trunk: see ticket #1169

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/TOP_SRC/TRP/trcnam_trp.F90

    r3718 r4147  
    1515   USE trc                 ! ocean passive tracers variables 
    1616   USE in_out_manager      ! ocean dynamics and active tracers variables 
     17   USE lib_mpp           ! distributed memory computing library 
    1718 
    1819   IMPLICIT NONE 
     
    2122   PUBLIC   trc_nam_trp    ! routine called by step module 
    2223  
    23    !                                                 !!: ** Advection (nam_trcadv) ** 
    24    LOGICAL , PUBLIC ::   ln_trcadv_cen2   = .FALSE.   ! 2nd order centered scheme flag 
    25    LOGICAL , PUBLIC ::   ln_trcadv_tvd    = .TRUE.    ! TVD scheme flag 
    26    LOGICAL , PUBLIC ::   ln_trcadv_muscl  = .FALSE.   ! MUSCL scheme flag 
    27    LOGICAL , PUBLIC ::   ln_trcadv_muscl2 = .FALSE.   ! MUSCL2 scheme flag 
    28    LOGICAL , PUBLIC ::   ln_trcadv_ubs    = .FALSE.   ! UBS scheme flag 
    29    LOGICAL , PUBLIC ::   ln_trcadv_qck    = .FALSE.   ! QUICKEST scheme flag 
    30    LOGICAL , PUBLIC ::   ln_trcadv_msc_ups= .FALSE.   ! use upstream scheme within muscl 
    31  
    32  
    33    !                                                 !!: ** lateral mixing namelist (nam_trcldf) ** 
    34    LOGICAL , PUBLIC ::   ln_trcldf_diff  = .FALSE.    !: flag of perform or not the lateral diff. 
    35    LOGICAL , PUBLIC ::   ln_trcldf_lap   = .TRUE.     !: laplacian operator 
    36    LOGICAL , PUBLIC ::   ln_trcldf_bilap = .FALSE.    !: bilaplacian operator 
    37    LOGICAL , PUBLIC ::   ln_trcldf_level = .FALSE.    !: iso-level direction 
    38    LOGICAL , PUBLIC ::   ln_trcldf_hor   = .FALSE.    !: horizontal (geopotential) direction 
    39    LOGICAL , PUBLIC ::   ln_trcldf_iso   = .TRUE.     !: iso-neutral direction 
    40    REAL(wp), PUBLIC ::   rn_ahtrc_0                   !: diffusivity coefficient for passive tracer (m2/s) 
    41    REAL(wp), PUBLIC ::   rn_ahtrb_0                   !: background diffusivity coefficient for passive tracer (m2/s) 
    42  
    43    !                                                 !!: ** Treatment of Negative concentrations ( nam_trcrad ) 
    44    LOGICAL , PUBLIC ::   ln_trcrad       = .TRUE.     !: flag to artificially correct negative concentrations 
    45  
    46    !                                                 !!: ** Vertical diffusion (nam_trczdf) ** 
    47    LOGICAL , PUBLIC ::   ln_trczdf_exp = .FALSE.      !: explicit vertical diffusion scheme flag 
    48    INTEGER , PUBLIC ::   nn_trczdf_exp = 3             !: number of sub-time step (explicit time stepping) 
     24   !                                        !!: ** Advection (namtrc_adv) ** 
     25   LOGICAL , PUBLIC ::   ln_trcadv_cen2      ! 2nd order centered scheme flag 
     26   LOGICAL , PUBLIC ::   ln_trcadv_tvd       ! TVD scheme flag 
     27   LOGICAL , PUBLIC ::   ln_trcadv_muscl     ! MUSCL scheme flag 
     28   LOGICAL , PUBLIC ::   ln_trcadv_muscl2    ! MUSCL2 scheme flag 
     29   LOGICAL , PUBLIC ::   ln_trcadv_ubs       ! UBS scheme flag 
     30   LOGICAL , PUBLIC ::   ln_trcadv_qck       ! QUICKEST scheme flag 
     31   LOGICAL , PUBLIC ::   ln_trcadv_msc_ups   ! use upstream scheme within muscl 
     32 
     33 
     34   !                                        !!: ** lateral mixing namelist (nam_trcldf) ** 
     35   LOGICAL , PUBLIC ::   ln_trcldf_diff      !: flag of perform or not the lateral diff. 
     36   LOGICAL , PUBLIC ::   ln_trcldf_lap       !: laplacian operator 
     37   LOGICAL , PUBLIC ::   ln_trcldf_bilap     !: bilaplacian operator 
     38   LOGICAL , PUBLIC ::   ln_trcldf_level     !: iso-level direction 
     39   LOGICAL , PUBLIC ::   ln_trcldf_hor       !: horizontal (geopotential) direction 
     40   LOGICAL , PUBLIC ::   ln_trcldf_iso       !: iso-neutral direction 
     41   REAL(wp), PUBLIC ::   rn_ahtrc_0          !: diffusivity coefficient for passive tracer (m2/s) 
     42   REAL(wp), PUBLIC ::   rn_ahtrb_0          !: background diffusivity coefficient for passive tracer (m2/s) 
     43 
     44   !                                        !!: ** Treatment of Negative concentrations ( nam_trcrad ) 
     45   LOGICAL , PUBLIC ::   ln_trcrad           !: flag to artificially correct negative concentrations 
     46 
     47   !                                        !!: ** Vertical diffusion (nam_trczdf) ** 
     48   LOGICAL , PUBLIC ::   ln_trczdf_exp       !: explicit vertical diffusion scheme flag 
     49   INTEGER , PUBLIC ::   nn_trczdf_exp       !: number of sub-time step (explicit time stepping) 
    4950 
    5051 
     
    7374      !! ** Purpose :   Read Namelist for tracer transport option 
    7475      !!---------------------------------------------------------------------- 
     76      INTEGER ::  ios                 ! Local integer output status for namelist read 
    7577      NAMELIST/namtrc_adv/ ln_trcadv_cen2 , ln_trcadv_tvd   ,    & 
    7678         &                 ln_trcadv_muscl, ln_trcadv_muscl2,    & 
     
    9294      IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~' 
    9395 
    94       REWIND ( numnat )               ! Read Namelist namtrc_adv : tracer advection scheme 
    95       READ   ( numnat, namtrc_adv ) 
     96      REWIND( numnat_ref )              ! Namelist namtrc_adv in reference namelist : Tracer advection scheme 
     97      READ  ( numnat_ref, namtrc_adv, IOSTAT = ios, ERR = 901) 
     98901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc_adv in reference namelist', lwp ) 
     99 
     100      REWIND( numnat_cfg )              ! Namelist namtrc_adv in configuration namelist : Tracer advection scheme 
     101      READ  ( numnat_cfg, namtrc_adv, IOSTAT = ios, ERR = 902 ) 
     102902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc_adv in configuration namelist', lwp ) 
     103      WRITE ( numont, namtrc_adv ) 
    96104 
    97105      IF(lwp) THEN                    ! Namelist print 
     
    108116      ENDIF 
    109117      ! 
    110       REWIND( numnat )                ! Namelist namtrc_ldf 
    111       READ  ( numnat, namtrc_ldf ) 
     118      REWIND( numnat_ref )              ! Namelist namtrc_ldf in reference namelist : Tracer lateral diffusive operator 
     119      READ  ( numnat_ref, namtrc_ldf, IOSTAT = ios, ERR = 903) 
     120903   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc_ldf in reference namelist', lwp ) 
     121 
     122      REWIND( numnat_cfg )              ! Namelist namtrc_ldf in configuration namelist : Tracer lateral diffusive operator 
     123      READ  ( numnat_cfg, namtrc_ldf, IOSTAT = ios, ERR = 904 ) 
     124904   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc_ldf in configuration namelist', lwp ) 
     125      WRITE ( numont, namtrc_ldf ) 
    112126 
    113127      IF(lwp) THEN                    ! Namelist print 
     
    127141 
    128142      !                                ! Vertical mixing 
    129       REWIND( numnat )                 !   ! Read namtopzdf namelist 
    130       READ  ( numnat, namtrc_zdf ) 
     143      REWIND( numnat_ref )              ! Namelist namtrc_zdf in reference namelist : Tracer vertical mixing 
     144      READ  ( numnat_ref, namtrc_zdf, IOSTAT = ios, ERR = 905) 
     145905   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc_zdf in reference namelist', lwp ) 
     146 
     147      REWIND( numnat_cfg )              ! Namelist namtrc_zdf in configuration namelist : Tracer vertical mixing 
     148      READ  ( numnat_cfg, namtrc_zdf, IOSTAT = ios, ERR = 906 ) 
     149906   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc_zdf in configuration namelist', lwp ) 
     150      WRITE ( numont, namtrc_zdf ) 
    131151 
    132152      IF(lwp) THEN                     !   ! Control print 
     
    138158 
    139159      ! 
    140       REWIND( numnat )                 !   Read Namelist namtoprad 
    141       READ  ( numnat, namtrc_rad ) 
     160      REWIND( numnat_ref )              ! Namelist namtrc_rad in reference namelist : Tracer negative concentrations 
     161      READ  ( numnat_ref, namtrc_rad, IOSTAT = ios, ERR = 907) 
     162907   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc_rad in reference namelist', lwp ) 
     163 
     164      REWIND( numnat_cfg )              ! Namelist namtrc_rad in configuration namelist : Tracer negative concentrations 
     165      READ  ( numnat_cfg, namtrc_rad, IOSTAT = ios, ERR = 908 ) 
     166908   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc_rad in configuration namelist', lwp ) 
     167      WRITE ( numont, namtrc_rad ) 
    142168 
    143169      IF(lwp) THEN                     !   ! Control print 
     
    149175 
    150176# if defined key_trcdmp 
    151       REWIND ( numnat )                  ! Read Namelist namtra_dmp : temperature and salinity damping term 
    152       READ   ( numnat, namtrc_dmp ) 
     177      REWIND( numnat_ref )              ! Namelist namtrc_dmp in reference namelist : Passive tracers newtonian damping 
     178      READ  ( numnat_ref, namtrc_dmp, IOSTAT = ios, ERR = 909) 
     179909   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc_dmp in reference namelist', lwp ) 
     180 
     181      REWIND( numnat_cfg )              ! Namelist namtrc_dmp in configuration namelist : Passive tracers newtonian damping 
     182      READ  ( numnat_cfg, namtrc_dmp, IOSTAT = ios, ERR = 910) 
     183910   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc_dmp in configuration namelist', lwp ) 
     184      WRITE ( numont, namtrc_dmp ) 
     185 
    153186      IF( lzoom )   nn_zdmp_trc = 0           ! restoring to climatology at closed north or south boundaries 
    154187 
Note: See TracChangeset for help on using the changeset viewer.