Changeset 2819 for branches/2011/dev_r2787_LOCEAN3_TRA_TRP/NEMOGCM/NEMO/TOP_SRC/LOBSTER/trcnam_lobster.F90
- Timestamp:
- 2011-08-09T10:29:53+02:00 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2011/dev_r2787_LOCEAN3_TRA_TRP/NEMOGCM/NEMO/TOP_SRC/LOBSTER/trcnam_lobster.F90
r2715 r2819 12 12 !! trc_nam_lobster : LOBSTER model namelist read 13 13 !!---------------------------------------------------------------------- 14 USE oce_trc ! Ocean variables 15 USE par_trc ! TOP parameters 16 USE trc ! TOP variables 17 USE sms_lobster ! sms trends 14 USE oce_trc ! Ocean variables 15 USE par_trc ! TOP parameters 16 USE trc ! TOP variables 17 USE trdmod_trc_oce , ONLY : lk_trdmld_trc ! tracers trend flag 18 USE sms_lobster ! sms trends 19 USE iom ! I/O manager 18 20 19 21 IMPLICIT NONE … … 41 43 INTEGER :: numnatl 42 44 !! 43 #if defined key_diatrc && ! defined key_iomput44 45 INTEGER :: jl, jn 45 ! definition of additional diagnostic as a structure 46 TYPE DIAG 47 CHARACTER(len = 20) :: snamedia !: short name 48 CHARACTER(len = 80 ) :: lnamedia !: long name 49 CHARACTER(len = 20 ) :: unitdia !: unit 50 END TYPE DIAG 51 52 TYPE(DIAG) , DIMENSION(jp_lobster_2d) :: lobdia2d 53 TYPE(DIAG) , DIMENSION(jp_lobster_3d) :: lobdia3d 54 #endif 55 #if defined key_diabio || defined key_trdmld_trc 56 INTEGER :: js, jd 57 ! definition of additional diagnostic as a structure 58 TYPE DIABIO 59 CHARACTER(len = 20) :: snamebio !: short name 60 CHARACTER(len = 80 ) :: lnamebio !: long name 61 CHARACTER(len = 20 ) :: unitbio !: unit 62 END TYPE DIABIO 63 64 TYPE(DIABIO) , DIMENSION(jp_lobster_trd) :: lobdiabio 65 #endif 46 TYPE(DIAG), DIMENSION(jp_lobster_2d ) :: lobdia2d 47 TYPE(DIAG), DIMENSION(jp_lobster_3d ) :: lobdia3d 48 TYPE(DIAG), DIMENSION(jp_lobster_trd) :: lobdiabio 66 49 67 50 NAMELIST/namlobphy/ apmin, tmumax, rgamma, fphylab, tmmaxp, tmminp, & … … 77 60 78 61 NAMELIST/namlobopt/ xkg0, xkr0, xkgp, xkrp, xlg, xlr, rpig 79 #if defined key_diatrc && ! defined key_iomput 80 NAMELIST/namlobdia/nn_writedia, lobdia3d, lobdia2d ! additional diagnostics 81 #endif 82 #if defined key_diabio || defined key_trdmld_trc 83 NAMELIST/namlobdbi/nwritebio, lobdiabio 84 #endif 62 NAMELIST/namlobdia/ lobdia3d, lobdia2d ! additional diagnostics 63 NAMELIST/namlobdbi/ lobdiabio 85 64 !!---------------------------------------------------------------------- 86 65 … … 278 257 ENDIF 279 258 280 #if defined key_diatrc && ! defined key_iomput 281 282 ! Namelist namlobdia 283 ! ------------------- 284 nn_writedia = 10 ! default values 285 286 DO jl = 1, jp_lobster_2d 287 jn = jp_lob0_2d + jl - 1 288 WRITE(ctrc2d(jn),'("2D_",I1)') jn ! short name 289 WRITE(ctrc2l(jn),'("2D DIAGNOSTIC NUMBER ",I2)') jn ! long name 290 ctrc2u(jn) = ' ' ! units 291 END DO 292 ! ! 3D output arrays 293 DO jl = 1, jp_lobster_3d 294 jn = jp_lob0_3d + jl - 1 295 WRITE(ctrc3d(jn),'("3D_",I1)') jn ! short name 296 WRITE(ctrc3l(jn),'("3D DIAGNOSTIC NUMBER ",I2)') jn ! long name 297 ctrc3u(jn) = ' ' ! units 298 END DO 299 300 REWIND( numnatl ) ! read natrtd 301 READ ( numnatl, namlobdia ) 302 303 DO jl = 1, jp_lobster_2d 304 jn = jp_lob0_2d + jl - 1 305 ctrc2d(jn) = lobdia2d(jl)%snamedia 306 ctrc2l(jn) = lobdia2d(jl)%lnamedia 307 ctrc2u(jn) = lobdia2d(jl)%unitdia 308 END DO 309 310 DO jl = 1, jp_lobster_3d 311 jn = jp_lob0_3d + jl - 1 312 ctrc3d(jn) = lobdia3d(jl)%snamedia 313 ctrc3l(jn) = lobdia3d(jl)%lnamedia 314 ctrc3u(jn) = lobdia3d(jl)%unitdia 315 END DO 316 317 IF(lwp) THEN ! control print 318 WRITE(numout,*) 319 WRITE(numout,*) ' Namelist : natadd' 320 WRITE(numout,*) ' frequency of outputs for additional arrays nn_writedia = ', nn_writedia 259 ! 260 IF( .NOT.lk_iomput .AND. ln_diatrc ) THEN 261 ! 262 ! Namelist namlobdia 263 ! ------------------- 264 DO jl = 1, jp_lobster_2d 265 WRITE(lobdia2d(jl)%sname,'("2D_",I1)') jl ! short name 266 WRITE(lobdia2d(jl)%lname,'("2D DIAGNOSTIC NUMBER ",I2)') jl ! long name 267 lobdia2d(jl)%units = ' ' ! units 268 END DO 269 ! ! 3D output arrays 270 DO jl = 1, jp_lobster_3d 271 WRITE(lobdia3d(jl)%sname,'("3D_",I1)') jl ! short name 272 WRITE(lobdia3d(jl)%lname,'("3D DIAGNOSTIC NUMBER ",I2)') jl ! long name 273 lobdia3d(jl)%units = ' ' ! units 274 END DO 275 276 REWIND( numnatl ) ! read natrtd 277 READ ( numnatl, namlobdia ) 278 279 DO jl = 1, jp_lobster_2d 280 jn = jp_lob0_2d + jl - 1 281 ctrc2d(jn) = lobdia2d(jl)%sname 282 ctrc2l(jn) = lobdia2d(jl)%lname 283 ctrc2u(jn) = lobdia2d(jl)%units 284 END DO 285 321 286 DO jl = 1, jp_lobster_3d 322 287 jn = jp_lob0_3d + jl - 1 323 WRITE(numout,*) ' 3d output field No : ',jn 324 WRITE(numout,*) ' short name : ', TRIM(ctrc3d(jn)) 325 WRITE(numout,*) ' long name : ', TRIM(ctrc3l(jn)) 326 WRITE(numout,*) ' unit : ', TRIM(ctrc3u(jn)) 288 ctrc3d(jn) = lobdia3d(jl)%sname 289 ctrc3l(jn) = lobdia3d(jl)%lname 290 ctrc3u(jn) = lobdia3d(jl)%units 291 END DO 292 293 IF(lwp) THEN ! control print 294 WRITE(numout,*) 295 WRITE(numout,*) ' Namelist : natadd' 296 DO jl = 1, jp_lobster_3d 297 jn = jp_lob0_3d + jl - 1 298 WRITE(numout,*) ' 3d diag nb : ', jn, ' short name : ', ctrc3d(jn), & 299 & ' long name : ', ctrc3l(jn), ' unit : ', ctrc3u(jn) 300 END DO 327 301 WRITE(numout,*) ' ' 328 END DO 329 330 DO jl = 1, jp_lobster_2d 331 jn = jp_lob0_2d + jl - 1 332 WRITE(numout,*) ' 2d output field No : ',jn 333 WRITE(numout,*) ' short name : ', TRIM(ctrc2d(jn)) 334 WRITE(numout,*) ' long name : ', TRIM(ctrc2l(jn)) 335 WRITE(numout,*) ' unit : ', TRIM(ctrc2u(jn)) 302 303 DO jl = 1, jp_lobster_2d 304 jn = jp_lob0_2d + jl - 1 305 WRITE(numout,*) ' 2d diag nb : ', jn, ' short name : ', ctrc2d(jn), & 306 & ' long name : ', ctrc2l(jn), ' unit : ', ctrc2u(jn) 307 END DO 336 308 WRITE(numout,*) ' ' 337 END DO338 ENDIF339 #endif340 341 #if defined key_diabio || defined key_trdmld_trc342 ! namlobdbi : bio diagnostics343 nwritebio = 10 ! default values344 345 DO js = 1, jp_lobster_trd346 jd = jp_lob0_trd + js - 1347 IF( jd < 10 ) THEN ; WRITE (ctrbio(jd),'("BIO_",I1)') jd ! short name348 ELSEIF (jd < 100 ) THEN ; WRITE (ctrbio(jd),'("BIO_",I2)') jd349 ELSE ; WRITE (ctrbio(jd),'("BIO_",I3)') jd350 309 ENDIF 351 WRITE(ctrbil(jd),'("BIOLOGICAL TREND NUMBER ",I2)') jd ! long name 352 ctrbiu(jd) = 'mmoleN/m3/s ' ! units 353 END DO 354 355 REWIND( numnatl ) 356 READ ( numnatl, namlobdbi ) 310 ! 311 ENDIF 312 313 IF( ( .NOT.lk_iomput .AND. ln_diabio ) .OR. lk_trdmld_trc ) THEN 314 ! 315 ! Namelist namlobdbi 316 ! ------------------- 317 DO jl = 1, jp_lobster_trd 318 IF( jl < 10 ) THEN ; WRITE (lobdiabio(jl)%sname,'("BIO_",I1)') jl ! short name 319 ELSEIF (jl < 100 ) THEN ; WRITE (lobdiabio(jl)%sname,'("BIO_",I2)') jl 320 ELSE ; WRITE (lobdiabio(jl)%sname,'("BIO_",I3)') jl 321 ENDIF 322 WRITE(lobdiabio(jl)%lname,'("BIOLOGICAL TREND NUMBER ",I2)') jl ! long name 323 lobdiabio(jl)%units = 'mmoleN/m3/s ' ! units 324 END DO 325 326 REWIND( numnatl ) 327 READ ( numnatl, namlobdbi ) 357 328 358 DO js = 1, jp_lobster_trd 359 jd = jp_lob0_trd + js - 1 360 ctrbio(jd) = lobdiabio(js)%snamebio 361 ctrbil(jd) = lobdiabio(js)%lnamebio 362 ctrbiu(jd) = lobdiabio(js)%unitbio 363 END DO 364 365 IF(lwp) THEN ! control print 366 WRITE(numout,*) 367 WRITE(numout,*) ' Namelist : namlobdbi' 368 WRITE(numout,*) ' frequency of outputs for biological trends nwritebio = ', nwritebio 369 DO js = 1, jp_lobster_trd 370 jd = jp_lob0_trd + js - 1 371 WRITE(numout,*) ' biological trend No : ',jd 372 WRITE(numout,*) ' short name : ', TRIM(ctrbio(jd)) 373 WRITE(numout,*) ' long name : ', TRIM(ctrbil(jd)) 374 WRITE(numout,*) ' unit : ', TRIM(ctrbiu(jd)) 329 DO jl = 1, jp_lobster_trd 330 jn = jp_lob0_trd + jl - 1 331 ctrbio(jl) = lobdiabio(jl)%sname 332 ctrbil(jl) = lobdiabio(jl)%lname 333 ctrbiu(jl) = lobdiabio(jl)%units 334 END DO 335 336 IF(lwp) THEN ! control print 337 WRITE(numout,*) 338 WRITE(numout,*) ' Namelist : namlobdbi' 339 DO jl = 1, jp_lobster_trd 340 jn = jp_lob0_trd + jl - 1 341 WRITE(numout,*) ' biological trend No : ', jn, ' short name : ', ctrbio(jn), & 342 & ' long name : ', ctrbio(jn), ' unit : ', ctrbio(jn) 343 END DO 375 344 WRITE(numout,*) ' ' 376 END DO 345 END IF 346 ! 377 347 END IF 378 #endif379 348 ! 380 349 END SUBROUTINE trc_nam_lobster
Note: See TracChangeset
for help on using the changeset viewer.