Changeset 771 for branches/dev_001_GM/NEMO/TOP_SRC/TRP/trctrp_ctl.F90
- Timestamp:
- 2007-12-17T11:51:41+01:00 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/dev_001_GM/NEMO/TOP_SRC/TRP/trctrp_ctl.F90
r719 r771 1 1 MODULE trctrp_ctl 2 !!====================================================================== ========2 !!====================================================================== 3 3 !! *** MODULE trctrp_ctl *** 4 !! Ocean passive tracers: transport option control 5 !!============================================================================== 4 !! TOP : transport option control 5 !!====================================================================== 6 !! History : 1.0 ! 2004-03 (C. Ethe) Original code 7 !!---------------------------------------------------------------------- 6 8 #if defined key_passivetrc 7 9 !!---------------------------------------------------------------------- 10 !! 'key_passivetrc' TOP models 11 !!---------------------------------------------------------------------- 8 12 !! trc_trp_ctl : control the different options of transport 9 !!---------------------------------------------------------------------- 10 !! * Modules used 11 USE oce_trc ! ocean dynamics and active tracers variables 12 USE trc ! ocean passive tracers variables 13 USE trctrp_lec ! passive tracers transport 13 !! trc_adv_ctl : control the different options of the advection 14 !! trc_ldf_ctl : control the different options of the lateral diffusion 15 !! trc_zdf_ctl : control the different options of the vertical diffusion 16 !! trc_dmp_ctl : control the different options of the internal damping 17 !!---------------------------------------------------------------------- 18 USE oce_trc ! ocean dynamics and active tracers variables 19 USE trc ! ocean passive tracers variables 20 USE trctrp_lec ! passive tracers transport 14 21 15 22 IMPLICIT NONE 16 23 PRIVATE 17 24 18 !! * Accessibility 19 PUBLIC trc_trp_ctl 20 21 !! * Module variable 25 PUBLIC trc_trp_ctl ! called by ??? 26 22 27 #if defined key_trcldf_eiv 23 28 LOGICAL, PARAMETER :: lk_trcldf_eiv = .TRUE. !: eddy induced velocity flag … … 25 30 LOGICAL, PARAMETER :: lk_trcldf_eiv = .FALSE. !: eddy induced velocity flag 26 31 #endif 27 28 !!---------------------------------------------------------------------- 29 !! TOP 1.0 , LOCEAN-IPSL (2005) 30 !! $Header$ 31 !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt 32 !!---------------------------------------------------------------------- 33 !! NEMO/TOP 1.0 , LOCEAN-IPSL (2005) 34 !! $Id$ 35 !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 32 36 !!---------------------------------------------------------------------- 33 37 … … 35 39 36 40 SUBROUTINE trc_trp_ctl 37 !!--------------------------------------------------------------------- 41 !!---------------------------------------------------------------------- 38 42 !! *** ROUTINE trc_trp_ctl *** 39 43 !! 40 44 !! ** Purpose : Control the consistency between cpp options for 41 45 !! tracer transport 42 !! 43 !! History : 44 !! 9.0 ! 04-0. (C. Ethe) 45 !!---------------------------------------------------------------------- 46 47 !!---------------------------------------------------------------------- 48 !! TOP 1.0 , LOCEAN-IPSL (2005) 49 !!---------------------------------------------------------------------- 50 51 !! Control of Advection scheme options 52 CALL trc_adv_ctl 53 54 !! Control of Lateral diffusion scheme options 55 CALL trc_ldf_ctl 56 57 !! Control of Vertival diffusion scheme options 58 CALL trc_zdf_ctl 59 60 !! Control of Newtonian damping options 46 !!---------------------------------------------------------------------- 47 !!---------------------------------------------------------------------- 48 49 CALL trc_adv_ctl ! Control of Advection scheme options 50 51 CALL trc_ldf_ctl ! Control of Lateral diffusion scheme options 52 53 CALL trc_zdf_ctl ! Control of Vertival diffusion scheme options 54 55 ! ! Control of Newtonian damping options 61 56 IF(lwp) THEN 57 WRITE(numout,*) 62 58 WRITE(numout,*) ' *** Tracer damping option' 63 WRITE(numout,*) 64 ENDIF 65 59 ENDIF 66 60 #if defined key_trcdmp 67 IF(lwp) THEN 68 WRITE(numout,*)' key_trcdmp is defined' 69 WRITE(numout,*)' Check trcdmp ROUTINE ' 70 WRITE(numout,*)' ' 71 ENDIF 61 IF(lwp) WRITE(numout,*) ' key_trcdmp is defined: Check trcdmp ROUTINE ' 72 62 CALL trc_dmp_ctl 73 63 #else 74 IF (lwp) WRITE(numout,*) ' No tracer damping' 75 #endif 76 77 64 IF(lwp) WRITE(numout,*) ' No tracer damping' 65 #endif 66 ! 78 67 END SUBROUTINE trc_trp_ctl 68 79 69 80 70 SUBROUTINE trc_adv_ctl … … 83 73 !! 84 74 !! ** Purpose : Control the consistency between cpp options for 85 !! tracer advection schemes 86 !! 87 !! History : 88 !! 8.5 ! 02-11 (G. Madec) Original code 89 !! 9.0 ! 04-0. (C. Ethe) adapted for passive tracers 90 !!---------------------------------------------------------------------- 91 92 !! * Local declarations 75 !! tracer advection schemes 76 !!---------------------------------------------------------------------- 93 77 INTEGER :: ioptio 94 95 96 !!----------------------------------------------------------------------97 !! TOP 1.0 , LOCEAN-IPSL (2005)98 78 !!---------------------------------------------------------------------- 99 79 … … 127 107 & CALL ctl_stop( ' cross-land advection only with 2nd order advection scheme ' ) 128 108 ENDIF 129 109 ! 130 110 END SUBROUTINE trc_adv_ctl 111 131 112 132 113 SUBROUTINE trc_ldf_ctl … … 136 117 !! ** Purpose : Control the consistency between cpp options for 137 118 !! tracer lateral diffusion 138 !! 139 !! History : 140 !! 9.0 ! 03-04 (C. Ethe) 141 !!---------------------------------------------------------------------- 142 !! * Local declarations 119 !!---------------------------------------------------------------------- 143 120 INTEGER :: ioptio ! ??? 144 121 LOGICAL :: ll_print = .FALSE. ! =T print eddy coef. in numout 145 146 !!----------------------------------------------------------------------147 !! TOP 1.0 , LOCEAN-IPSL (2005)148 122 !!---------------------------------------------------------------------- 149 123 … … 161 135 IF( ln_trcldf_lap ) ioptio = ioptio + 1 162 136 IF( ln_trcldf_bilap ) ioptio = ioptio + 1 163 IF( ioptio /= 1 ) & 164 & CALL ctl_stop( ' use ONE of the 2 lap/bilap operator type on tracer' ) 137 IF( ioptio /= 1 ) CALL ctl_stop( ' use ONE of the 2 lap/bilap operator type on tracer' ) 165 138 166 139 ioptio = 0 … … 168 141 IF( ln_trcldf_hor ) ioptio = ioptio + 1 169 142 IF( ln_trcldf_iso ) ioptio = ioptio + 1 170 IF( ioptio /= 1 ) & 171 & CALL ctl_stop( ' use only ONE direction (level/hor/iso)' ) 143 IF( ioptio /= 1 ) CALL ctl_stop( ' use only ONE direction (level/hor/iso)' ) 172 144 173 145 ! ... Choice of the lateral scheme used … … 195 167 l_trcldf_bilapg = ln_trcldf_bilap .AND. ln_trcldf_hor ! geopotential bilap. (s-coord) 196 168 l_trcldf_iso = ln_trcldf_lap .AND. & ! laplacian operator 197 & 169 & ( ln_trcldf_iso .OR. ln_trcldf_hor ) & ! iso-neutral (z-coord) or horizontal (s-coord) 198 170 & .AND. .NOT.ln_zps 199 l_trcldf_iso_zps = 200 & 201 & 171 l_trcldf_iso_zps = ln_trcldf_lap .AND. & ! laplacian operator 172 & ( ln_trcldf_iso .OR. ln_trcldf_hor ) & ! iso-neutral (partial steps) 173 & .AND. ln_zps ! or geopotential in mixed partial steps/s-coord 202 174 l_trczdf_iso = .FALSE. 203 175 l_trczdf_iso_vo = .FALSE. … … 211 183 #endif 212 184 213 214 185 ioptio = 0 215 186 IF( l_trcldf_lap ) ioptio = ioptio + 1 … … 261 232 ENDIF 262 233 ENDIF 263 234 ! 264 235 END SUBROUTINE trc_ldf_ctl 236 265 237 266 238 SUBROUTINE trc_zdf_ctl … … 268 240 !! *** ROUTINE trc_zdf_ctl *** 269 241 !! 270 !! ** Purpose : Control the consistency between cpp options for 271 !! tracer vertical diffusion 272 !! 273 !! 9.0 ! 04-03 (C. Ethe) 274 !!---------------------------------------------------------------------- 275 !! * Local declarations 276 277 !!---------------------------------------------------------------------- 278 !! TOP 1.0 , LOCEAN-IPSL (2005) 242 !! ** Purpose : Control the consistency between cpp options for 243 !! tracer vertical diffusion 244 !!---------------------------------------------------------------------- 279 245 !!---------------------------------------------------------------------- 280 246 … … 305 271 l_trczdf_imp = .TRUE. 306 272 #endif 307 308 273 ! 309 274 END SUBROUTINE trc_zdf_ctl 275 310 276 311 277 SUBROUTINE trc_dmp_ctl … … 314 280 !! 315 281 !! ** Purpose : Control the consistency between cpp options for 316 !! tracer newtonian damping 317 !! 318 !! 319 !! History : 320 !! 9.0 ! 04-03 (C. Ethe) 282 !! tracer newtonian damping 321 283 !!---------------------------------------------------------------------- 322 284 #if defined key_trcdmp 323 285 324 286 SELECT CASE ( ndmptr ) 325 287 ! 326 288 CASE ( -1 ) ! ORCA: damping in Red & Med Seas only 327 289 IF(lwp) WRITE(numout,*) ' tracer damping in the Med & Red seas only' 328 290 ! 329 291 CASE ( 1:90 ) ! Damping poleward of 'ndmptr' degrees 330 292 IF(lwp) WRITE(numout,*) ' tracer damping poleward of', ndmptr, ' degrees' 331 293 ! 332 294 CASE DEFAULT 333 334 295 WRITE(ctmp1,*) ' bad flag value for nmldmp = ', ndmptr 335 296 CALL ctl_stop(ctmp1) 336 297 ! 337 298 END SELECT 338 299 339 340 300 SELECT CASE ( nmldmptr ) 341 301 ! 342 302 CASE ( 0 ) ! newtonian damping throughout the water column 343 303 IF(lwp) WRITE(numout,*) ' tracer damping throughout the water column' 344 304 ! 345 305 CASE ( 1 ) ! no damping in the turbocline (avt > 5 cm2/s) 346 306 IF(lwp) WRITE(numout,*) ' no tracer damping in the turbocline' 347 307 ! 348 308 CASE ( 2 ) ! no damping in the mixed layer 349 309 IF(lwp) WRITE(numout,*) ' no tracer damping in the mixed layer' 350 310 ! 351 311 CASE DEFAULT 352 312 WRITE(ctmp1,*) ' bad flag value for nmldmp = ', nmldmptr 353 313 CALL ctl_stop(ctmp1) 354 314 ! 355 315 END SELECT 356 316 #endif 357 317 ! 358 318 END SUBROUTINE trc_dmp_ctl 359 319 360 320 #else 361 321 !!---------------------------------------------------------------------- 362 !! Dummy module : NO passive tracer322 !! Dummy module : No TOP models 363 323 !!---------------------------------------------------------------------- 364 324 CONTAINS
Note: See TracChangeset
for help on using the changeset viewer.