- Timestamp:
- 2013-11-04T12:51:55+01:00 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/TOP_SRC/TRP/trcnam_trp.F90
r3718 r4147 15 15 USE trc ! ocean passive tracers variables 16 16 USE in_out_manager ! ocean dynamics and active tracers variables 17 USE lib_mpp ! distributed memory computing library 17 18 18 19 IMPLICIT NONE … … 21 22 PUBLIC trc_nam_trp ! routine called by step module 22 23 23 ! !!: ** Advection (nam_trcadv) **24 LOGICAL , PUBLIC :: ln_trcadv_cen2 = .FALSE.! 2nd order centered scheme flag25 LOGICAL , PUBLIC :: ln_trcadv_tvd = .TRUE.! TVD scheme flag26 LOGICAL , PUBLIC :: ln_trcadv_muscl = .FALSE.! MUSCL scheme flag27 LOGICAL , PUBLIC :: ln_trcadv_muscl2 = .FALSE.! MUSCL2 scheme flag28 LOGICAL , PUBLIC :: ln_trcadv_ubs = .FALSE.! UBS scheme flag29 LOGICAL , PUBLIC :: ln_trcadv_qck = .FALSE.! QUICKEST scheme flag30 LOGICAL , PUBLIC :: ln_trcadv_msc_ups = .FALSE.! use upstream scheme within muscl31 32 33 ! 34 LOGICAL , PUBLIC :: ln_trcldf_diff = .FALSE.!: flag of perform or not the lateral diff.35 LOGICAL , PUBLIC :: ln_trcldf_lap = .TRUE.!: laplacian operator36 LOGICAL , PUBLIC :: ln_trcldf_bilap = .FALSE.!: bilaplacian operator37 LOGICAL , PUBLIC :: ln_trcldf_level = .FALSE.!: iso-level direction38 LOGICAL , PUBLIC :: ln_trcldf_hor = .FALSE.!: horizontal (geopotential) direction39 LOGICAL , PUBLIC :: ln_trcldf_iso = .TRUE.!: iso-neutral direction40 REAL(wp), PUBLIC :: rn_ahtrc_0 41 REAL(wp), PUBLIC :: rn_ahtrb_0 42 43 ! 44 LOGICAL , PUBLIC :: ln_trcrad = .TRUE.!: flag to artificially correct negative concentrations45 46 ! 47 LOGICAL , PUBLIC :: ln_trczdf_exp = .FALSE.!: explicit vertical diffusion scheme flag48 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) 49 50 50 51 … … 73 74 !! ** Purpose : Read Namelist for tracer transport option 74 75 !!---------------------------------------------------------------------- 76 INTEGER :: ios ! Local integer output status for namelist read 75 77 NAMELIST/namtrc_adv/ ln_trcadv_cen2 , ln_trcadv_tvd , & 76 78 & ln_trcadv_muscl, ln_trcadv_muscl2, & … … 92 94 IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~' 93 95 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) 98 901 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 ) 102 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc_adv in configuration namelist', lwp ) 103 WRITE ( numont, namtrc_adv ) 96 104 97 105 IF(lwp) THEN ! Namelist print … … 108 116 ENDIF 109 117 ! 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) 120 903 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 ) 124 904 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc_ldf in configuration namelist', lwp ) 125 WRITE ( numont, namtrc_ldf ) 112 126 113 127 IF(lwp) THEN ! Namelist print … … 127 141 128 142 ! ! 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) 145 905 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 ) 149 906 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc_zdf in configuration namelist', lwp ) 150 WRITE ( numont, namtrc_zdf ) 131 151 132 152 IF(lwp) THEN ! ! Control print … … 138 158 139 159 ! 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) 162 907 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 ) 166 908 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc_rad in configuration namelist', lwp ) 167 WRITE ( numont, namtrc_rad ) 142 168 143 169 IF(lwp) THEN ! ! Control print … … 149 175 150 176 # 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) 179 909 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) 183 910 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namtrc_dmp in configuration namelist', lwp ) 184 WRITE ( numont, namtrc_dmp ) 185 153 186 IF( lzoom ) nn_zdmp_trc = 0 ! restoring to climatology at closed north or south boundaries 154 187
Note: See TracChangeset
for help on using the changeset viewer.