Changeset 1119 for trunk/NEMO/TOP_SRC/LOBSTER/trclsm_lobster.F90
- Timestamp:
- 2008-06-20T17:17:41+02:00 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/TOP_SRC/LOBSTER/trclsm_lobster.F90
r1089 r1119 40 40 !!---------------------------------------------------------------------- 41 41 CHARACTER (len=32) :: clname 42 INTEGER :: jn 42 43 !! 43 NAMELIST/natbio/ apmin, azmin, anmin, admin, & 44 & redf, reddom, slopet, toptp, psinut, akno3, aknh4, rcchl, & 45 & rgamma, toptgz, tmaxgz, rgz, & 46 & rppz, taus, aks, filmax, rpnaz, rdnaz, eggzoo, tauzn, & 47 & tmmaxp, tmminp, tmmaxz, tmminz, anumin, afdmin, taudn, & 48 & vsed, tmumax, aki, tmaxr, tminr, taunn, taudomn, xhr, & 49 & sedlam, sedlostpoc, & 50 & fphylab, fzoolab, fdetlab, fdbod 51 NAMELIST/natopt/ xkg0, xkr0, xkgp, xkrp, xlg, xlr, rpig 44 #if defined key_trc_diaadd 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 52 55 #if defined key_trc_diabio 53 INTEGER :: ji 54 NAMELIST/natdbi/ctrbio,ctrbil,ctrbiu,nwritebio 56 ! definition of additional diagnostic as a structure 57 TYPE DIABIO 58 CHARACTER(len = 20) :: snamebio !: short name 59 CHARACTER(len = 80 ) :: lnamebio !: long name 60 CHARACTER(len = 20 ) :: unitbio !: unit 61 END TYPE DIABIO 62 63 TYPE(DIABIO) , DIMENSION(jp_lobster_trd) :: lobdiabio 64 #endif 65 66 NAMELIST/namlobphy/ apmin, tmumax, rgamma, fphylab, tmmaxp, tmminp, & 67 & rcchl, aki, toptp 68 NAMELIST/namlobnut/ anmin, akno3, aknh4, taunn, psinut 69 NAMELIST/namlobzoo/ azmin, eggzoo, rgz, rppz, taus, aks, rpnaz, & 70 & rdnaz, tauzn, fzoolab, fdbod, tmmaxz, tmminz 71 NAMELIST/namlobdet/ admin, taudn, fdetlab, vsed 72 NAMELIST/namlobdom/ taudomn 73 NAMELIST/namlobsed/ sedlam, sedlostpoc 74 NAMELIST/namlobrat/ redf, reddom, slopet, tmaxr, tminr, xhr, & 75 & filmax, toptgz, tmaxgz, anumin, afdmin 76 77 NAMELIST/namlobopt/ xkg0, xkr0, xkgp, xkrp, xlg, xlr, rpig 78 #if defined key_trc_diaadd 79 NAMELIST/namlobdia/nwritedia, lobdia3d, lobdia2d ! additional diagnostics 80 #endif 81 #if defined key_trc_diabio 82 NAMELIST/namlobdbi/nwritebio, lobdiabio 55 83 #endif 56 84 !!---------------------------------------------------------------------- … … 63 91 ! ! ---------------------- 64 92 clname ='namelist_lobster' 65 CALL ctlopn( numnat, clname, 'OLD', 'FORMATTED', 'SEQUENTIAL', & 66 & 1, numout, .FALSE., 1 ) 67 68 ! ! natbio : biological parameters 69 ! ! ------------------------------ 70 apmin = 0. ! default values 71 azmin = 0. 72 anmin = 0. 73 admin = 0. 74 redf = 0. 75 reddom = 0. 76 slopet = 0. 77 toptp = 0. 93 CALL ctlopn( numnat, clname, 'OLD', 'FORMATTED', 'SEQUENTIAL', 1, numout, .FALSE., 1 ) 94 95 ! namlobphy : parameters for phytoplankton 96 apmin = 0. 97 tmumax = 0. 98 rgamma = 0. 99 fphylab = 0. 100 tmmaxp = 0. 101 tmminp = 0. 102 rcchl = 0. 103 aki = 0. 104 toptp = 0. 105 106 REWIND( numnat ) 107 READ ( numnat, namlobphy ) 108 109 IF(lwp) THEN 110 WRITE(numout,*) ' Namelist namlobphy' 111 WRITE(numout,*) ' minimum phytoplancton concentration apmin =', apmin 112 WRITE(numout,*) ' phyto max growth rate tmumax =', 86400 * tmumax, ' d' 113 WRITE(numout,*) ' phytoplankton exudation fraction rgamma =', rgamma 114 WRITE(numout,*) ' NH4 fraction of phytoplankton exsudation fphylab =', fphylab 115 WRITE(numout,*) ' maximal phyto mortality rate tmmaxp =', 86400 * tmmaxp 116 WRITE(numout,*) ' minimal phyto mortality rate tmminp =', 86400 * tmminp 117 WRITE(numout,*) ' carbone/chlorophyl ratio rcchl =', rcchl 118 WRITE(numout,*) ' light hlaf saturation constant aki =', aki 119 WRITE(numout,*) ' optimal photosynthesis temperature toptp =', toptp 120 WRITE(numout,*) ' ' 121 ENDIF 122 123 ! namlobnut : parameters for nutrients 124 anmin = 0. 78 125 psinut = 0. 79 126 akno3 = 0. 80 aknh4 = 0. 81 rcchl = 0. 82 rgamma= 0. 83 toptgz= 0. 84 tmaxgz= 0. 85 rgz = 0. 86 rppz = 0. 87 taus = 0. 88 aks = 0. 89 filmax= 0. 90 rpnaz = 0. 91 rdnaz = 0. 92 eggzoo= 0. 93 tauzn = 0. 94 tmmaxp= 0. 95 tmminp= 0. 96 tmmaxz= 0. 97 tmminz= 0. 98 anumin= 0. 99 afdmin= 0. 100 taudn = 0. 101 vsed = 0. 102 tmumax= 0. 103 aki = 0. 104 tmaxr = 1./( 4.*rday)*0. 105 tminr = 1./(24.*30.*rday)*0. 106 xhr=0. 107 sedlam=0. 108 sedlostpoc=0. 109 taudomn = 0. 110 taunn = 0. 111 fphylab = 0. 112 fzoolab = 0. 113 fdetlab = 0. 114 fdbod = 0. 115 116 REWIND( numnat ) ! read natbio 117 READ ( numnat, natbio ) 118 119 IF(lwp) THEN 120 WRITE(numout,*) ' Namelist natbio' 121 WRITE(numout,*) ' minimum phytoplancton concentration apmin =', apmin 122 WRITE(numout,*) ' minimum zooplancton concentration azmin =', azmin 127 aknh4 = 0. 128 taunn = 0. 129 130 REWIND( numnat ) 131 READ ( numnat, namlobnut ) 132 IF(lwp) THEN 133 WRITE(numout,*) ' Namelist namlobnut' 123 134 WRITE(numout,*) ' minimum nutrients concentration anmin =', anmin 124 WRITE(numout,*) ' minimum detritus concentration admin =', admin125 WRITE(numout,*) ' redfield ratio c:n redf =', redf126 WRITE(numout,*) ' van t hoff coefficient slopet =', slopet127 WRITE(numout,*) ' optimal photosynthesis temperature toptp =', toptp128 WRITE(numout,*) ' inhibition of no3 uptake by nh4 psinut =', psinut129 135 WRITE(numout,*) ' half-saturation nutrient for no3 uptake akno3 =', akno3 130 136 WRITE(numout,*) ' half-saturation nutrient for nh4 uptake aknh4 =', aknh4 131 WRITE(numout,*) ' carbone/chlorophyl ratio rcchl =', rcchl 132 WRITE(numout,*) ' phytoplankton exudation fraction rgamma =', rgamma 133 WRITE(numout,*) ' optimal temperature for zoo growth toptgz =', toptgz 134 WRITE(numout,*) ' maximal temperature for zoo growth tmaxgz =', tmaxgz 137 WRITE(numout,*) ' nitrification rate taunn =', taunn 138 WRITE(numout,*) ' inhibition of no3 uptake by nh4 psinut =', psinut 139 WRITE(numout,*) ' ' 140 ENDIF 141 142 ! namlobzoo : parameters for zooplankton 143 azmin = 0. 144 rgz = 0. 145 rppz = 0. 146 taus = 0. 147 aks = 0. 148 rpnaz = 0. 149 rdnaz = 0. 150 eggzoo = 0. 151 tauzn = 0. 152 tmmaxz = 0. 153 tmminz = 0. 154 fzoolab = 0. 155 fdbod = 0. 156 157 REWIND( numnat ) 158 READ ( numnat, namlobzoo ) 159 160 IF(lwp) THEN 161 WRITE(numout,*) ' Namelist namlobzoo' 162 WRITE(numout,*) ' minimum zooplancton concentration azmin =', azmin 163 WRITE(numout,*) ' minimum for zoo concentration eggzoo =', eggzoo 135 164 WRITE(numout,*) ' widtht of zoo temperature FUNCTION rgz =', rgz 136 165 WRITE(numout,*) ' zoo preference for phyto rppz =', rppz 137 166 WRITE(numout,*) ' maximal zoo grazing rate taus =', 86400 * taus, ' d' 138 167 WRITE(numout,*) ' half saturation constant for zoo food aks =', aks 139 WRITE(numout,*) ' maximal mass clearance rate for zoo filmax =', filmax140 168 WRITE(numout,*) ' non-assimilated phyto by zoo rpnaz =', rpnaz 141 169 WRITE(numout,*) ' non-assimilated detritus by zoo rdnaz =', rdnaz 142 WRITE(numout,*) ' minimum for zoo concentration eggzoo =', eggzoo143 170 WRITE(numout,*) ' zoo specific excretion rate tauzn =', 86400 * tauzn 144 WRITE(numout,*) ' maximal phyto mortality rate tmmaxp =', 86400 * tmmaxp145 WRITE(numout,*) ' minimal phyto mortality rate tmminp =', 86400 * tmminp146 171 WRITE(numout,*) ' maximal zoo mortality rate tmmaxz =', 86400 * tmmaxz 147 172 WRITE(numout,*) ' minimal zoo mortality rate tmminz =', 86400 * tmminz 173 WRITE(numout,*) ' NH4 fraction of zooplankton excretion fzoolab =', fzoolab 174 WRITE(numout,*) ' Zooplankton mortality fraction that goes to detritus fdbod =', fdbod 175 WRITE(numout,*) ' ' 176 ENDIF 177 178 ! namlobdet : parameters for detritus 179 admin = 0. 180 taudn = 0. 181 vsed = 0. 182 fdetlab = 0. 183 184 REWIND( numnat ) 185 READ ( numnat, namlobdet ) 186 187 IF(lwp) THEN 188 WRITE(numout,*) ' Namelist namlobdet' 189 WRITE(numout,*) ' minimum detritus concentration admin =', admin 190 WRITE(numout,*) ' detrital breakdown rate taudn =', 86400 * taudn , ' d' 191 WRITE(numout,*) ' detritus sedimentation speed vsed =', 86400 * vsed , ' d' 192 WRITE(numout,*) ' NH4 fraction of detritus dissolution fdetlab =', fdetlab 193 WRITE(numout,*) ' ' 194 ENDIF 195 196 ! namlobdom : parameters for DOM 197 taudomn = 0. 198 199 REWIND( numnat ) 200 READ ( numnat, namlobdom ) 201 202 IF(lwp) THEN 203 WRITE(numout,*) ' Namelist namlobdom' 204 WRITE(numout,*) ' dom remineralisation rate taudomn =', taudomn 205 WRITE(numout,*) ' ' 206 ENDIF 207 208 ! namlobsed : parameters from aphotic layers to sediment 209 sedlam = 0. 210 sedlostpoc = 0. 211 212 REWIND( numnat ) 213 READ ( numnat, namlobsed ) 214 215 IF(lwp) THEN 216 WRITE(numout,*) ' Namelist namlobsed' 217 WRITE(numout,*) ' time coeff of POC in sediments sedlam =', sedlam 218 WRITE(numout,*) ' Sediment geol loss for POC sedlostpoc=', sedlostpoc 219 WRITE(numout,*) ' ' 220 ENDIF 221 222 ! namlobrat : general coefficient 223 redf = 0. 224 reddom = 0. 225 slopet = 0. 226 tmaxr = 1./( 4.*rday)*0. 227 tminr = 1./(24.*30.*rday)*0. 228 xhr = 0. 229 filmax = 0. 230 toptgz = 0. 231 tmaxgz = 0. 232 anumin = 0. 233 afdmin = 0. 234 235 REWIND( numnat ) 236 READ ( numnat, namlobrat ) 237 238 IF(lwp) THEN 239 WRITE(numout,*) ' Namelist namlobrat' 240 WRITE(numout,*) ' redfield ratio c:n for phyto redf =', redf 241 WRITE(numout,*) ' redfield ratio c:n for DOM reddom =', reddom 242 WRITE(numout,*) ' van t hoff coefficient slopet =', slopet 243 WRITE(numout,*) ' maximum damping for d z or p tmaxr =', tmaxr 244 WRITE(numout,*) ' damping-remineralisation rate tminr =', tminr 245 WRITE(numout,*) ' coeff for martin''s remineralistion xhr =', xhr 246 WRITE(numout,*) ' maximal mass clearance rate for zoo filmax =', filmax 247 WRITE(numout,*) ' optimal temperature for zoo growth toptgz =', toptgz 248 WRITE(numout,*) ' maximal temperature for zoo growth tmaxgz =', tmaxgz 148 249 WRITE(numout,*) ' nutrient threshold for phyto mort anumin =', anumin 149 250 WRITE(numout,*) ' food threshold for zoo mort afdmin =', afdmin 150 WRITE(numout,*) ' detrital breakdown rate taudn =', 86400 * taudn , ' d' 151 WRITE(numout,*) ' detritus sedimentation speed vsed =', 86400 * vsed , ' d' 152 WRITE(numout,*) ' phyto max growth rate tmumax =', 86400 * tmumax, ' d' 153 WRITE(numout,*) ' light hlaf saturation constant aki =', aki 154 WRITE(numout,*) ' maximum damping for d z or p tmaxr =', tmaxr 155 WRITE(numout,*) ' damping-remineralisation rate tminr =', tminr 156 WRITE(numout,*) ' nitrification rate taunn =', taunn 157 WRITE(numout,*) ' dom remineralisation rate taudomn =', taudomn 158 WRITE(numout,*) ' coeff for martin''s remineralistion xhr =', xhr 159 WRITE(numout,*) ' time coeff of POC in sediments sedlam =', sedlam 160 WRITE(numout,*) ' Sediment geol loss for POC sedlostpoc=', sedlostpoc 161 WRITE(numout,*) ' NH4 fraction of phytoplankton exsudation fphylab =', fphylab 162 WRITE(numout,*) ' NH4 fraction of zooplankton excretion fzoolab =', fzoolab 163 WRITE(numout,*) ' NH4 fraction of detritus dissolution fdetlab =', fdetlab 164 WRITE(numout,*) ' Zooplankton mortality fraction that goes to detritus fdbod =', fdbod 165 ENDIF 166 167 ! ! natopt : optical parameters 168 ! ! --------------------------- 169 xkg0 = 0. ! default values 251 WRITE(numout,*) ' ' 252 ENDIF 253 254 255 ! namlobopt : optical parameters 256 xkg0 = 0. 170 257 xkr0 = 0. 171 258 xkgp = 0. … … 175 262 rpig = 0. 176 263 177 REWIND( numnat ) ! read natopt178 READ ( numnat, na topt )179 180 IF(lwp) THEN ! control print264 REWIND( numnat ) 265 READ ( numnat, namlobopt ) 266 267 IF(lwp) THEN 181 268 WRITE(numout,*) 182 WRITE(numout,*) ' Namelist na topt'269 WRITE(numout,*) ' Namelist namlobopt' 183 270 WRITE(numout,*) ' green water absorption coeff xkg0 = ', xkg0 184 271 WRITE(numout,*) ' red water absorption coeff xkr0 = ', xkr0 … … 188 275 WRITE(numout,*) ' red chl exposant xlr = ', xlr 189 276 WRITE(numout,*) ' chla/chla+phea ratio rpig = ', rpig 190 ENDIF 277 WRITE(numout,*) ' ' 278 ENDIF 279 280 #if defined key_trc_diaadd 281 282 ! Namelist namlobdia 283 ! ------------------- 284 nwritedia = 10 ! default values 285 286 DO jn = jp_lob0_2d, jp_lob1_2d 287 WRITE(ctrc2d(jn),'("2D_",I1)') jn ! short name 288 WRITE(ctrc2l(jn),'("2D DIAGNOSTIC NUMBER ",I2)') jn ! long name 289 ctrc2u(jn) = ' ' ! units 290 END DO 291 ! ! 3D output arrays 292 DO jn = jp_lob0_3d, jp_lob1_3d 293 WRITE(ctrc3d(jn),'("3D_",I1)') jn ! short name 294 WRITE(ctrc3l(jn),'("3D DIAGNOSTIC NUMBER ",I2)') jn ! long name 295 ctrc3u(jn) = ' ' ! units 296 END DO 297 298 REWIND( numnat ) ! read natrtd 299 READ ( numnat, namlobdia ) 300 301 DO jn = jp_lob0_2d, jp_lob1_2d 302 ctrc2d(jn) = lobdia2d(jn)%snamedia 303 ctrc2l(jn) = lobdia2d(jn)%lnamedia 304 ctrc2u(jn) = lobdia2d(jn)%unitdia 305 END DO 306 307 DO jn = jp_lob0_3d, jp_lob1_3d 308 ctrc3d(jn) = lobdia3d(jn)%snamedia 309 ctrc3l(jn) = lobdia3d(jn)%lnamedia 310 ctrc3u(jn) = lobdia3d(jn)%unitdia 311 END DO 312 313 IF(lwp) THEN ! control print 314 WRITE(numout,*) 315 WRITE(numout,*) ' Namelist : natadd' 316 WRITE(numout,*) ' frequency of outputs for additional arrays nwritedia = ', nwritedia 317 DO jn = jp_lob0_3d, jp_lob1_3d 318 WRITE(numout,*) ' 3d output field No : ',jn 319 WRITE(numout,*) ' short name : ', TRIM(ctrc3d(jn)) 320 WRITE(numout,*) ' long name : ', TRIM(ctrc3l(jn)) 321 WRITE(numout,*) ' unit : ', TRIM(ctrc3u(jn)) 322 WRITE(numout,*) ' ' 323 END DO 324 325 DO jn = jp_lob0_2d, jp_lob1_2d 326 WRITE(numout,*) ' 2d output field No : ',jn 327 WRITE(numout,*) ' short name : ', TRIM(ctrc2d(jn)) 328 WRITE(numout,*) ' long name : ', TRIM(ctrc2l(jn)) 329 WRITE(numout,*) ' unit : ', TRIM(ctrc2u(jn)) 330 WRITE(numout,*) ' ' 331 END DO 332 ENDIF 333 #endif 191 334 192 335 #if defined key_trc_diabio 193 336 194 ! ! natdbi : bio diagnostics 195 ! ! ------------------------ 337 ! namlobdbi : bio diagnostics 196 338 nwritebio = 10 ! default values 197 DO ji = 1, jpdiabio 198 IF( ji < 10 ) THEN ; WRITE (ctrbio(ji),'("BIO_",I1)') ji ! short name 199 ELSEIF (ji < 100 ) THEN ; WRITE (ctrbio(ji),'("BIO_",I2)') ji 200 ELSE ; WRITE (ctrbio(ji),'("BIO_",I3)') ji 339 340 DO jn = jp_lob0_trd, jp_lob1_trd 341 IF( jn < 10 ) THEN ; WRITE (ctrbio(jn),'("BIO_",I1)') jn ! short name 342 ELSEIF (jn < 100 ) THEN ; WRITE (ctrbio(jn),'("BIO_",I2)') jn 343 ELSE ; WRITE (ctrbio(jn),'("BIO_",I3)') jn 201 344 ENDIF 202 WRITE(ctrbil(ji),'("BIOLOGICAL TREND NUMBER ",I2)') ji ! long name 203 ctrbiu(ji) = 'mmoleN/m3/s ' ! units 204 END DO 205 206 REWIND( numnat ) ! read natdbi 207 READ ( numnat, natdbi ) 208 209 IF(lwp) THEN 345 WRITE(ctrbil(jn),'("BIOLOGICAL TREND NUMBER ",I2)') jn ! long name 346 ctrbiu(jn) = 'mmoleN/m3/s ' ! units 347 END DO 348 349 REWIND( numnat ) 350 READ ( numnat, namlobdbi ) 351 352 DO jn = jp_lob0_trd, jp_lob1_trd 353 ctrbio(jn) = lobdiabio(jn)%snamebio 354 ctrbil(jn) = lobdiabio(jn)%lnamebio 355 ctrbiu(jn) = lobdiabio(jn)%unitbio 356 END DO 357 358 IF(lwp) THEN ! control print 210 359 WRITE(numout,*) 211 WRITE(numout,*) ' Namelist natdbi' 212 WRITE(numout,*) ' frequency of outputs for biological outputs nwritebio = ', nwritebio 213 DO ji = 1, jpdiabio 214 WRITE(numout,*) ' name of biological trend No :',ji,' : ',ctrbio(ji), ctrbil(ji), ' in ', ctrbiu(ji) 360 WRITE(numout,*) ' Namelist : namlobdbi' 361 WRITE(numout,*) ' frequency of outputs for biological trends nwritebio = ', nwritebio 362 DO jn = jp_lob0_trd, jp_lob1_trd 363 WRITE(numout,*) ' biological trend No : ',jn 364 WRITE(numout,*) ' short name : ', TRIM(ctrbio(jn)) 365 WRITE(numout,*) ' long name : ', TRIM(ctrbil(jn)) 366 WRITE(numout,*) ' unit : ', TRIM(ctrbiu(jn)) 367 WRITE(numout,*) ' ' 215 368 END DO 216 369 END IF
Note: See TracChangeset
for help on using the changeset viewer.