- Timestamp:
- 2013-11-04T12:51:55+01:00 (11 years ago)
- Location:
- branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/TOP_SRC/PISCES
- Files:
-
- 20 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zbio.F90
r3446 r4147 31 31 PUBLIC p2z_bio_init ! called in ??? 32 32 33 REAL(wp) :: tmumax = 1.21e-5! maximal phytoplankton growth rate [s-1]34 REAL(wp) :: rgamma = 0.05! phytoplankton exudation fraction [%]35 REAL(wp) :: fphylab = 0.75! NH4 fraction of phytoplankton exsudation36 REAL(wp) :: tmminp = 5.8e-7! minimal phytoplancton mortality rate [0.05/86400 s-1=20 days]37 REAL(wp) :: aki = 33.! light photosynthesis half saturation constant[W/m2]33 REAL(wp) :: tmumax ! maximal phytoplankton growth rate [s-1] 34 REAL(wp) :: rgamma ! phytoplankton exudation fraction [%] 35 REAL(wp) :: fphylab ! NH4 fraction of phytoplankton exsudation 36 REAL(wp) :: tmminp ! minimal phytoplancton mortality rate [0.05/86400 s-1=20 days] 37 REAL(wp) :: aki ! light photosynthesis half saturation constant[W/m2] 38 38 ! 39 REAL(wp) :: akno3 = 0.7! nitrate limitation half-saturation value [mmol/m3]40 REAL(wp) :: aknh4 = 0.001! ammonium limitation half-saturation value [mmol/m3]41 REAL(wp) :: taunn = 5.80e-7! nitrification rate [s-1]42 REAL(wp) :: psinut = 3.! inhibition of nitrate uptake by ammonium39 REAL(wp) :: akno3 ! nitrate limitation half-saturation value [mmol/m3] 40 REAL(wp) :: aknh4 ! ammonium limitation half-saturation value [mmol/m3] 41 REAL(wp) :: taunn ! nitrification rate [s-1] 42 REAL(wp) :: psinut ! inhibition of nitrate uptake by ammonium 43 43 ! 44 REAL(wp) :: taudn = 5.80e-7! detritus breakdown rate [0.1/86400 s-1=10 days]45 REAL(wp) :: fdetlab = 0.! NH4 fraction of detritus dissolution44 REAL(wp) :: taudn ! detritus breakdown rate [0.1/86400 s-1=10 days] 45 REAL(wp) :: fdetlab ! NH4 fraction of detritus dissolution 46 46 ! 47 REAL(wp) :: taudomn = 6.43e-8! DOM breakdown rate [s-1]48 ! 47 REAL(wp) :: taudomn ! DOM breakdown rate [s-1] 48 ! ! slow remineralization rate of semi-labile dom to nh4 (1 month) 49 49 ! 50 REAL(wp) :: rppz = 0.! ivlev coeff for zoo mortality51 REAL(wp) :: taus = 9.26E-6! specific zooplankton maximal grazing rate [s-1]50 REAL(wp) :: rppz ! ivlev coeff for zoo mortality 51 REAL(wp) :: taus ! specific zooplankton maximal grazing rate [s-1] 52 52 ! ! 0.75/86400 s-1=8.680555E-6 1/86400 = 1.15e-5 53 REAL(wp) :: aks = 1.! half-saturation constant for total zooplankton grazing [mmolN.m-3]54 REAL(wp) :: rpnaz = 0.3! non-assimilated phytoplankton by zooplancton [%]55 REAL(wp) :: rdnaz = 0.3! non-assimilated detritus by zooplankton [%]56 REAL(wp) :: tauzn = 8.1e-7! zooplancton specific excretion rate [0.1/86400 s-1=10 days]57 REAL(wp) :: tmminz = 2.31e-6! minimal zooplankton mortality rate [(mmolN/m3)-1 d-1]58 REAL(wp) :: fzoolab = 0.5! NH4 fraction of zooplankton excretion59 REAL(wp) :: fdbod = 0.5! zooplankton mortality fraction that goes to detritus53 REAL(wp) :: aks ! half-saturation constant for total zooplankton grazing [mmolN.m-3] 54 REAL(wp) :: rpnaz ! non-assimilated phytoplankton by zooplancton [%] 55 REAL(wp) :: rdnaz ! non-assimilated detritus by zooplankton [%] 56 REAL(wp) :: tauzn ! zooplancton specific excretion rate [0.1/86400 s-1=10 days] 57 REAL(wp) :: tmminz ! minimal zooplankton mortality rate [(mmolN/m3)-1 d-1] 58 REAL(wp) :: fzoolab ! NH4 fraction of zooplankton excretion 59 REAL(wp) :: fdbod ! zooplankton mortality fraction that goes to detritus 60 60 61 61 !!* Substitution … … 480 480 !! *** ROUTINE p2z_bio_init *** 481 481 !! 482 !! ** Purpose : bi logical parameters482 !! ** Purpose : biological parameters 483 483 !! 484 484 !! ** Method : Read namelist and check the parameters … … 490 490 NAMELIST/namlobdet/ taudn, fdetlab 491 491 NAMELIST/namlobdom/ taudomn 492 INTEGER :: ios ! Local integer output status for namelist read 492 493 !!---------------------------------------------------------------------- 493 494 494 REWIND( numnatp ) 495 READ ( numnatp, namlobphy ) 495 REWIND( numnatp_ref ) ! Namelist namlobphy in reference namelist : Lobster biological parameters 496 READ ( numnatp_ref, namlobphy, IOSTAT = ios, ERR = 901) 497 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namlobphy in reference namelist', lwp ) 498 499 REWIND( numnatp_cfg ) ! Namelist namlobphy in configuration namelist : Lobster biological parameters 500 READ ( numnatp_cfg, namlobphy, IOSTAT = ios, ERR = 902 ) 501 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namlobphy in configuration namelist', lwp ) 502 WRITE ( numonp, namlobphy ) 496 503 497 504 IF(lwp) THEN … … 505 512 ENDIF 506 513 507 REWIND( numnatp ) 508 READ ( numnatp, namlobnut ) 514 REWIND( numnatp_ref ) ! Namelist namlobnut in reference namelist : Lobster nutriments parameters 515 READ ( numnatp_ref, namlobnut, IOSTAT = ios, ERR = 903) 516 903 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namlobnut in reference namelist', lwp ) 517 518 REWIND( numnatp_cfg ) ! Namelist namlobnut in configuration namelist : Lobster nutriments parameters 519 READ ( numnatp_cfg, namlobnut, IOSTAT = ios, ERR = 904 ) 520 904 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namlobnut in configuration namelist', lwp ) 521 WRITE ( numonp, namlobnut ) 522 509 523 IF(lwp) THEN 510 524 WRITE(numout,*) ' Namelist namlobnut' … … 516 530 ENDIF 517 531 518 REWIND( numnatp ) 519 READ ( numnatp, namlobzoo ) 532 REWIND( numnatp_ref ) ! Namelist namlobzoo in reference namelist : Lobster zooplankton parameters 533 READ ( numnatp_ref, namlobzoo, IOSTAT = ios, ERR = 905) 534 905 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namlobzoo in reference namelist', lwp ) 535 536 REWIND( numnatp_cfg ) ! Namelist namlobzoo in configuration namelist : Lobster zooplankton parameters 537 READ ( numnatp_cfg, namlobzoo, IOSTAT = ios, ERR = 906 ) 538 906 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namlobzoo in configuration namelist', lwp ) 539 WRITE ( numonp, namlobzoo ) 520 540 521 541 IF(lwp) THEN … … 533 553 ENDIF 534 554 535 REWIND( numnatp ) 536 READ ( numnatp, namlobdet ) 555 REWIND( numnatp_ref ) ! Namelist namlobdet in reference namelist : Lobster detritus parameters 556 READ ( numnatp_ref, namlobdet, IOSTAT = ios, ERR = 907) 557 907 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namlobdet in reference namelist', lwp ) 558 559 REWIND( numnatp_cfg ) ! Namelist namlobdet in configuration namelist : Lobster detritus parameters 560 READ ( numnatp_cfg, namlobdet, IOSTAT = ios, ERR = 908 ) 561 908 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namlobdet in configuration namelist', lwp ) 562 WRITE ( numonp, namlobdet ) 537 563 538 564 IF(lwp) THEN … … 543 569 ENDIF 544 570 545 REWIND( numnatp ) 546 READ ( numnatp, namlobdom ) 571 REWIND( numnatp_ref ) ! Namelist namlobdom in reference namelist : Lobster DOM breakdown rate 572 READ ( numnatp_ref, namlobdom, IOSTAT = ios, ERR = 909) 573 909 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namlobdom in reference namelist', lwp ) 574 575 REWIND( numnatp_cfg ) ! Namelist namlobdom in configuration namelist : Lobster DOM breakdown rate 576 READ ( numnatp_cfg, namlobdom, IOSTAT = ios, ERR = 910 ) 577 910 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namlobdom in configuration namelist', lwp ) 578 WRITE ( numonp, namlobdom ) 547 579 548 580 IF(lwp) THEN -
branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zopt.F90
r3443 r4147 28 28 PUBLIC p2z_opt_init ! 29 29 30 REAL(wp), PUBLIC :: xkr0 = 0.0232_wp!: water coefficient absorption in red31 REAL(wp), PUBLIC :: xkg0 = 0.225_wp!: water coefficient absorption in green32 REAL(wp), PUBLIC :: xkrp = 0.074_wp!: pigment coefficient absorption in red33 REAL(wp), PUBLIC :: xkgp = 0.037_wp!: pigment coefficient absorption in green34 REAL(wp), PUBLIC :: xlr = 0.674_wp!: exposant for pigment absorption in red35 REAL(wp), PUBLIC :: xlg = 0.629_wp!: exposant for pigment absorption in green36 REAL(wp), PUBLIC :: rpig = 0.7_wp!: chla/chla+phea ratio30 REAL(wp), PUBLIC :: xkr0 !: water coefficient absorption in red 31 REAL(wp), PUBLIC :: xkg0 !: water coefficient absorption in green 32 REAL(wp), PUBLIC :: xkrp !: pigment coefficient absorption in red 33 REAL(wp), PUBLIC :: xkgp !: pigment coefficient absorption in green 34 REAL(wp), PUBLIC :: xlr !: exposant for pigment absorption in red 35 REAL(wp), PUBLIC :: xlg !: exposant for pigment absorption in green 36 REAL(wp), PUBLIC :: rpig !: chla/chla+phea ratio 37 37 ! 38 REAL(wp), PUBLIC :: rcchl = 60_wp! Carbone/Chlorophyl ratio [mgC.mgChla-1]39 REAL(wp), PUBLIC :: redf = 6.56_wp! redfield ratio (C:N) for phyto40 REAL(wp), PUBLIC :: reddom = 6.56_wp! redfield ratio (C:N) for DOM38 REAL(wp), PUBLIC :: rcchl ! Carbone/Chlorophyl ratio [mgC.mgChla-1] 39 REAL(wp), PUBLIC :: redf ! redfield ratio (C:N) for phyto 40 REAL(wp), PUBLIC :: reddom ! redfield ratio (C:N) for DOM 41 41 42 42 !!* Substitution … … 164 164 NAMELIST/namlobopt/ xkg0, xkr0, xkgp, xkrp, xlg, xlr, rpig 165 165 NAMELIST/namlobrat/ rcchl, redf, reddom 166 INTEGER :: ios ! Local integer output status for namelist read 166 167 !!---------------------------------------------------------------------- 167 168 168 REWIND( numnatp ) 169 READ ( numnatp, namlobopt ) 169 REWIND( numnatp_ref ) ! Namelist namlobopt in reference namelist : Lobster options 170 READ ( numnatp_ref, namlobopt, IOSTAT = ios, ERR = 901) 171 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namlobopt in reference namelist', lwp ) 172 173 REWIND( numnatp_cfg ) ! Namelist namlobopt in configuration namelist : Lobster options 174 READ ( numnatp_cfg, namlobopt, IOSTAT = ios, ERR = 902 ) 175 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namlobopt in configuration namelist', lwp ) 176 WRITE ( numonp, namlobopt ) 170 177 171 178 IF(lwp) THEN … … 182 189 ENDIF 183 190 ! 184 REWIND( numnatp ) 185 READ ( numnatp, namlobrat ) 191 REWIND( numnatp_ref ) ! Namelist namlobrat in reference namelist : Lobster ratios 192 READ ( numnatp_ref, namlobrat, IOSTAT = ios, ERR = 903) 193 903 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namlobrat in reference namelist', lwp ) 194 195 REWIND( numnatp_cfg ) ! Namelist namlobrat in configuration namelist : Lobster ratios 196 READ ( numnatp_cfg, namlobrat, IOSTAT = ios, ERR = 904 ) 197 904 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namlobrat in configuration namelist', lwp ) 198 WRITE ( numonp, namlobrat ) 186 199 187 200 IF(lwp) THEN -
branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zsed.F90
r3443 r4147 29 29 PUBLIC p2z_sed_init ! called in ??? 30 30 31 REAL(wp), PUBLIC :: sedlam = 3.86e-7!: time coefficient of POC remineralization in sediments32 REAL(wp), PUBLIC :: sedlostpoc = 0.! mass of POC lost in sediments33 REAL(wp), PUBLIC :: vsed = 3.47e-5! detritus sedimentation speed [m/s]34 REAL(wp), PUBLIC :: xhr = -0.858! coeff for martin''s remineralisation profile31 REAL(wp), PUBLIC :: sedlam !: time coefficient of POC remineralization in sediments 32 REAL(wp), PUBLIC :: sedlostpoc ! mass of POC lost in sediments 33 REAL(wp), PUBLIC :: vsed ! detritus sedimentation speed [m/s] 34 REAL(wp), PUBLIC :: xhr ! coeff for martin''s remineralisation profile 35 35 36 36 !!* Substitution … … 151 151 !!---------------------------------------------------------------------- 152 152 NAMELIST/namlobsed/ sedlam, sedlostpoc, vsed, xhr 153 INTEGER :: ios ! Local integer output status for namelist read 153 154 154 REWIND( numnatp ) 155 READ ( numnatp, namlobsed ) 155 REWIND( numnatp_ref ) ! Namelist namlobsed in reference namelist : Lobster sediments 156 READ ( numnatp_ref, namlobsed, IOSTAT = ios, ERR = 901) 157 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namlosed in reference namelist', lwp ) 158 159 REWIND( numnatp_cfg ) ! Namelist namlobsed in configuration namelist : Lobster sediments 160 READ ( numnatp_cfg, namlobsed, IOSTAT = ios, ERR = 902 ) 161 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'namlobsed in configuration namelist', lwp ) 162 WRITE ( numonp, namlobsed ) 156 163 157 164 IF(lwp) THEN -
branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zsms.F90
r3443 r4147 15 15 USE oce_trc ! 16 16 USE trc 17 USE sms_pisces 17 18 USE p2zbio 18 19 USE p2zopt … … 66 67 IF( lk_trdmld_trc ) CALL trd_mld_bio( kt ) ! trends: Mixed-layer 67 68 ! 69 IF ( kt == nittrc000 ) CALL FLUSH ( numonp ) ! flush output namelist PISCES 68 70 IF( nn_timing == 1 ) CALL timing_stop('p2z_sms') 69 71 ! -
branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zfechem.F90
r3780 r4147 31 31 32 32 !! * Shared module variables 33 LOGICAL :: ln_fechem = .FALSE.!: boolean for complex iron chemistry following Tagliabue and voelker34 LOGICAL :: ln_ligvar = .FALSE.!: boolean for variable ligand concentration following Tagliabue and voelker35 REAL(wp), PUBLIC :: xlam1 = 0.005_wp!: scavenging rate of Iron36 REAL(wp), PUBLIC :: xlamdust = 150.0_wp!: scavenging rate of Iron by dust37 REAL(wp), PUBLIC :: ligand = 0.6E-9_wp!: ligand concentration in the ocean33 LOGICAL :: ln_fechem !: boolean for complex iron chemistry following Tagliabue and voelker 34 LOGICAL :: ln_ligvar !: boolean for variable ligand concentration following Tagliabue and voelker 35 REAL(wp), PUBLIC :: xlam1 !: scavenging rate of Iron 36 REAL(wp), PUBLIC :: xlamdust !: scavenging rate of Iron by dust 37 REAL(wp), PUBLIC :: ligand !: ligand concentration in the ocean 38 38 39 39 REAL(wp) :: kl1, kl2, kb1, kb2, ks, kpr, spd, con, kth … … 342 342 !!---------------------------------------------------------------------- 343 343 NAMELIST/nampisfer/ ln_fechem, ln_ligvar, xlam1, xlamdust, ligand 344 345 REWIND( numnatp ) ! read numnatp 346 READ ( numnatp, nampisfer ) 344 INTEGER :: ios ! Local integer output status for namelist read 345 346 REWIND( numnatp_ref ) ! Namelist nampisfer in reference namelist : Pisces iron chemistry 347 READ ( numnatp_ref, nampisfer, IOSTAT = ios, ERR = 901) 348 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampisfer in reference namelist', lwp ) 349 350 REWIND( numnatp_cfg ) ! Namelist nampisfer in configuration namelist : Pisces iron chemistry 351 READ ( numnatp_cfg, nampisfer, IOSTAT = ios, ERR = 902 ) 352 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampisfer in configuration namelist', lwp ) 353 WRITE ( numonp, nampisfer ) 347 354 348 355 IF(lwp) THEN ! control print -
branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zflx.F90
r3481 r4147 37 37 PUBLIC p4z_flx_alloc 38 38 39 ! 40 REAL(wp) :: atcco2 = 278._wp!: pre-industrial atmospheric [co2] (ppm)41 LOGICAL :: ln_co2int = .FALSE.!: flag to read in a file and interpolate atmospheric pco2 or not42 CHARACTER(len=34) :: clname = 'atcco2.txt'!: filename of pco2 values43 INTEGER :: nn_offset = 0!: Offset model-data start year (default = 0)39 ! !!** Namelist nampisext ** 40 REAL(wp) :: atcco2 !: pre-industrial atmospheric [co2] (ppm) 41 LOGICAL :: ln_co2int !: flag to read in a file and interpolate atmospheric pco2 or not 42 CHARACTER(len=34) :: clname !: filename of pco2 values 43 INTEGER :: nn_offset !: Offset model-data start year (default = 0) 44 44 45 45 !! Variables related to reading atmospheric CO2 time history … … 47 47 INTEGER :: nmaxrec, numco2 48 48 49 ! 50 LOGICAL, PUBLIC :: ln_presatm = .true.!: ref. pressure: global mean Patm (F) or a constant (F)49 ! !!* nampisatm namelist (Atmospheric PRessure) * 50 LOGICAL, PUBLIC :: ln_presatm !: ref. pressure: global mean Patm (F) or a constant (F) 51 51 52 52 REAL(wp) , ALLOCATABLE, SAVE, DIMENSION(:,:) :: patm ! atmospheric pressure at kt [N/m2] … … 239 239 NAMELIST/nampisext/ln_co2int, atcco2, clname, nn_offset 240 240 INTEGER :: jm 241 !!---------------------------------------------------------------------- 242 ! 243 REWIND( numnatp ) ! read numnatp 244 READ ( numnatp, nampisext ) 241 INTEGER :: ios ! Local integer output status for namelist read 242 !!---------------------------------------------------------------------- 243 ! 244 245 REWIND( numnatp_ref ) ! Namelist nampisext in reference namelist : Pisces atm. conditions 246 READ ( numnatp_ref, nampisext, IOSTAT = ios, ERR = 901) 247 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampisext in reference namelist', lwp ) 248 249 REWIND( numnatp_cfg ) ! Namelist nampisext in configuration namelist : Pisces atm. conditions 250 READ ( numnatp_cfg, nampisext, IOSTAT = ios, ERR = 902 ) 251 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampisext in configuration namelist', lwp ) 252 WRITE ( numonp, nampisext ) 245 253 ! 246 254 IF(lwp) THEN ! control print … … 302 310 ! 303 311 INTEGER :: ierr 312 INTEGER :: ios ! Local integer output status for namelist read 304 313 CHARACTER(len=100) :: cn_dir ! Root directory for location of ssr files 305 314 TYPE(FLD_N) :: sn_patm ! informations about the fields to be read … … 307 316 NAMELIST/nampisatm/ ln_presatm, sn_patm, cn_dir 308 317 309 ! ! -------------------- !318 ! ! ----------------------- ! 310 319 IF( kt == nit000 ) THEN ! First call kt=nittrc000 ! 311 ! ! -------------------- !312 ! !* set file information (default values) 313 ! ... default values (NB: frequency positive => hours, negative => months)314 ! ! file ! frequency ! variable ! time intep ! clim ! 'yearly' or ! weights ! rotation !315 ! ! name ! (hours) ! name ! (T/F) ! (T/F) ! 'monthly' ! filename ! pairs ! 316 sn_patm = FLD_N( 'pres' , 24 , 'patm' , .false. , .true. , 'yearly' , '' , '' ) 317 cn_dir = './' ! directory in which the Patm data are318 319 REWIND( numnatp ) !* read in namlist nampisatm 320 READ ( numnatp, nampisatm )320 ! ! ----------------------- ! 321 322 REWIND( numnatp_ref ) ! Namelist nampisatm in reference namelist : Pisces atm. sea level pressure file 323 READ ( numnatp_ref, nampisatm, IOSTAT = ios, ERR = 901) 324 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampisatm in reference namelist', lwp ) 325 326 REWIND( numnatp_cfg ) ! Namelist nampisatm in configuration namelist : Pisces atm. sea level pressure file 327 READ ( numnatp_cfg, nampisatm, IOSTAT = ios, ERR = 902 ) 328 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampisatm in configuration namelist', lwp ) 329 WRITE ( numonp, nampisatm ) 321 330 ! 322 331 ! -
branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zlim.F90
r3446 r4147 28 28 29 29 !! * Shared module variables 30 REAL(wp), PUBLIC :: concnno3 = 1.e-6_wp!: NO3, PO4 half saturation31 REAL(wp), PUBLIC :: concdno3 = 2.e-6_wp!: Phosphate half saturation for diatoms32 REAL(wp), PUBLIC :: concnnh4 = 1.e-7_wp!: NH4 half saturation for phyto33 REAL(wp), PUBLIC :: concdnh4 = 2.e-7_wp!: NH4 half saturation for diatoms34 REAL(wp), PUBLIC :: concnfer = 1.e-9_wp!: Iron half saturation for nanophyto35 REAL(wp), PUBLIC :: concdfer = 2.e-9_wp!: Iron half saturation for diatoms36 REAL(wp), PUBLIC :: concbno3 = 2.5e-7_wp!: NO3 half saturation for bacteria37 REAL(wp), PUBLIC :: concbnh4 = 2.5e-8_wp!: NH4 half saturation for bacteria38 REAL(wp), PUBLIC :: xsizedia = 5.e-7_wp!: Minimum size criteria for diatoms39 REAL(wp), PUBLIC :: xsizephy = 1.e-6_wp!: Minimum size criteria for nanophyto40 REAL(wp), PUBLIC :: xsizern = 3.0_wp!: Size ratio for nanophytoplankton41 REAL(wp), PUBLIC :: xsizerd = 4.0_wp!: Size ratio for diatoms42 REAL(wp), PUBLIC :: xksi1 = 2.E-6_wp!: half saturation constant for Si uptake43 REAL(wp), PUBLIC :: xksi2 = 3.33e-6_wp!: half saturation constant for Si/C44 REAL(wp), PUBLIC :: xkdoc = 417.e-6_wp!: 2nd half-sat. of DOC remineralization45 REAL(wp), PUBLIC :: concbfe = 1.E-11_wp!: Fe half saturation for bacteria46 REAL(wp), PUBLIC :: qnfelim = 7.E-6_wp!: optimal Fe quota for nanophyto47 REAL(wp), PUBLIC :: qdfelim = 7.E-6_wp!: optimal Fe quota for diatoms48 REAL(wp), PUBLIC :: caco3r = 0.16_wp!: mean rainratio30 REAL(wp), PUBLIC :: concnno3 !: NO3, PO4 half saturation 31 REAL(wp), PUBLIC :: concdno3 !: Phosphate half saturation for diatoms 32 REAL(wp), PUBLIC :: concnnh4 !: NH4 half saturation for phyto 33 REAL(wp), PUBLIC :: concdnh4 !: NH4 half saturation for diatoms 34 REAL(wp), PUBLIC :: concnfer !: Iron half saturation for nanophyto 35 REAL(wp), PUBLIC :: concdfer !: Iron half saturation for diatoms 36 REAL(wp), PUBLIC :: concbno3 !: NO3 half saturation for bacteria 37 REAL(wp), PUBLIC :: concbnh4 !: NH4 half saturation for bacteria 38 REAL(wp), PUBLIC :: xsizedia !: Minimum size criteria for diatoms 39 REAL(wp), PUBLIC :: xsizephy !: Minimum size criteria for nanophyto 40 REAL(wp), PUBLIC :: xsizern !: Size ratio for nanophytoplankton 41 REAL(wp), PUBLIC :: xsizerd !: Size ratio for diatoms 42 REAL(wp), PUBLIC :: xksi1 !: half saturation constant for Si uptake 43 REAL(wp), PUBLIC :: xksi2 !: half saturation constant for Si/C 44 REAL(wp), PUBLIC :: xkdoc !: 2nd half-sat. of DOC remineralization 45 REAL(wp), PUBLIC :: concbfe !: Fe half saturation for bacteria 46 REAL(wp), PUBLIC :: qnfelim !: optimal Fe quota for nanophyto 47 REAL(wp), PUBLIC :: qdfelim !: optimal Fe quota for diatoms 48 REAL(wp), PUBLIC :: caco3r !: mean rainratio 49 49 50 50 ! Coefficient for iron limitation … … 217 217 & concbno3, concbnh4, xsizedia, xsizephy, xsizern, xsizerd, & 218 218 & xksi1, xksi2, xkdoc, qnfelim, qdfelim, caco3r 219 220 REWIND( numnatp ) ! read numnat 221 READ ( numnatp, nampislim ) 219 INTEGER :: ios ! Local integer output status for namelist read 220 221 REWIND( numnatp_ref ) ! Namelist nampislim in reference namelist : Pisces nutrient limitation parameters 222 READ ( numnatp_ref, nampislim, IOSTAT = ios, ERR = 901) 223 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampislim in reference namelist', lwp ) 224 225 REWIND( numnatp_cfg ) ! Namelist nampislim in configuration namelist : Pisces nutrient limitation parameters 226 READ ( numnatp_cfg, nampislim, IOSTAT = ios, ERR = 902 ) 227 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampislim in configuration namelist', lwp ) 228 WRITE ( numonp, nampislim ) 222 229 223 230 IF(lwp) THEN ! control print -
branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zlys.F90
r3443 r4147 32 32 33 33 !! * Shared module variables 34 REAL(wp), PUBLIC :: kdca = 0.327e3_wp!: diss. rate constant calcite35 REAL(wp), PUBLIC :: nca = 1.0_wp!: order of reaction for calcite dissolution34 REAL(wp), PUBLIC :: kdca !: diss. rate constant calcite 35 REAL(wp), PUBLIC :: nca !: order of reaction for calcite dissolution 36 36 37 37 !! * Module variables … … 188 188 !!---------------------------------------------------------------------- 189 189 INTEGER :: ji, jj, jk 190 INTEGER :: ios ! Local integer output status for namelist read 190 191 REAL(wp) :: zcaralk, zbicarb, zco3 191 192 REAL(wp) :: ztmas, ztmas1 … … 194 195 !!---------------------------------------------------------------------- 195 196 196 REWIND( numnatp ) ! read numnatp 197 READ ( numnatp, nampiscal ) 197 REWIND( numnatp_ref ) ! Namelist nampiscal in reference namelist : Pisces CaCO3 dissolution 198 READ ( numnatp_ref, nampiscal, IOSTAT = ios, ERR = 901) 199 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampiscal in reference namelist', lwp ) 200 201 REWIND( numnatp_cfg ) ! Namelist nampiscal in configuration namelist : Pisces CaCO3 dissolution 202 READ ( numnatp_cfg, nampiscal, IOSTAT = ios, ERR = 902 ) 203 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampiscal in configuration namelist', lwp ) 204 WRITE ( numonp, nampiscal ) 198 205 199 206 IF(lwp) THEN ! control print -
branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zmeso.F90
r3829 r4147 31 31 32 32 !! * Shared module variables 33 REAL(wp), PUBLIC :: part2 = 0.5_wp!: part of calcite not dissolved in mesozoo guts34 REAL(wp), PUBLIC :: xprefc = 1.0_wp!: mesozoo preference for POC35 REAL(wp), PUBLIC :: xprefp = 0.3_wp!: mesozoo preference for nanophyto36 REAL(wp), PUBLIC :: xprefz = 1.0_wp!: mesozoo preference for diatoms37 REAL(wp), PUBLIC :: xprefpoc = 0.3_wp!: mesozoo preference for POC38 REAL(wp), PUBLIC :: xthresh2zoo = 1E-8_wp!: zoo feeding threshold for mesozooplankton39 REAL(wp), PUBLIC :: xthresh2dia = 1E-8_wp!: diatoms feeding threshold for mesozooplankton40 REAL(wp), PUBLIC :: xthresh2phy = 2E-7_wp!: nanophyto feeding threshold for mesozooplankton41 REAL(wp), PUBLIC :: xthresh2poc = 1E-8_wp!: poc feeding threshold for mesozooplankton42 REAL(wp), PUBLIC :: xthresh2 = 0._wp!: feeding threshold for mesozooplankton43 REAL(wp), PUBLIC :: resrat2 = 0.005_wp!: exsudation rate of mesozooplankton44 REAL(wp), PUBLIC :: mzrat2 = 0.04_wp!: microzooplankton mortality rate45 REAL(wp), PUBLIC :: grazrat2 = 0.9_wp!: maximal mesozoo grazing rate46 REAL(wp), PUBLIC :: xkgraz2 = 20E-6_wp!: non assimilated fraction of P by mesozoo47 REAL(wp), PUBLIC :: unass2 = 0.3_wp!: Efficicency of mesozoo growth48 REAL(wp), PUBLIC :: sigma2 = 0.6_wp!: Fraction of mesozoo excretion as DOM49 REAL(wp), PUBLIC :: epsher2 = 0.3_wp!: half sturation constant for grazing 250 REAL(wp), PUBLIC :: grazflux = 3.E3_wp!: mesozoo flux feeding rate33 REAL(wp), PUBLIC :: part2 !: part of calcite not dissolved in mesozoo guts 34 REAL(wp), PUBLIC :: xprefc !: mesozoo preference for POC 35 REAL(wp), PUBLIC :: xprefp !: mesozoo preference for nanophyto 36 REAL(wp), PUBLIC :: xprefz !: mesozoo preference for diatoms 37 REAL(wp), PUBLIC :: xprefpoc !: mesozoo preference for POC 38 REAL(wp), PUBLIC :: xthresh2zoo !: zoo feeding threshold for mesozooplankton 39 REAL(wp), PUBLIC :: xthresh2dia !: diatoms feeding threshold for mesozooplankton 40 REAL(wp), PUBLIC :: xthresh2phy !: nanophyto feeding threshold for mesozooplankton 41 REAL(wp), PUBLIC :: xthresh2poc !: poc feeding threshold for mesozooplankton 42 REAL(wp), PUBLIC :: xthresh2 !: feeding threshold for mesozooplankton 43 REAL(wp), PUBLIC :: resrat2 !: exsudation rate of mesozooplankton 44 REAL(wp), PUBLIC :: mzrat2 !: microzooplankton mortality rate 45 REAL(wp), PUBLIC :: grazrat2 !: maximal mesozoo grazing rate 46 REAL(wp), PUBLIC :: xkgraz2 !: non assimilated fraction of P by mesozoo 47 REAL(wp), PUBLIC :: unass2 !: Efficicency of mesozoo growth 48 REAL(wp), PUBLIC :: sigma2 !: Fraction of mesozoo excretion as DOM 49 REAL(wp), PUBLIC :: epsher2 !: half sturation constant for grazing 2 50 REAL(wp), PUBLIC :: grazflux !: mesozoo flux feeding rate 51 51 52 52 !!* Substitution … … 255 255 & xprefpoc, xthresh2dia, xthresh2phy, xthresh2zoo, xthresh2poc, & 256 256 & xthresh2, xkgraz2, epsher2, sigma2, unass2, grazflux 257 258 REWIND( numnatp ) ! read numnatp 259 READ ( numnatp, nampismes ) 257 INTEGER :: ios ! Local integer output status for namelist read 258 259 REWIND( numnatp_ref ) ! Namelist nampismes in reference namelist : Pisces mesozooplankton 260 READ ( numnatp_ref, nampismes, IOSTAT = ios, ERR = 901) 261 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampismes in reference namelist', lwp ) 262 263 REWIND( numnatp_cfg ) ! Namelist nampismes in configuration namelist : Pisces mesozooplankton 264 READ ( numnatp_cfg, nampismes, IOSTAT = ios, ERR = 902 ) 265 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampismes in configuration namelist', lwp ) 266 WRITE ( numonp, nampismes ) 260 267 261 268 -
branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zmicro.F90
r3829 r4147 32 32 33 33 !! * Shared module variables 34 REAL(wp), PUBLIC :: part = 0.5_wp!: part of calcite not dissolved in microzoo guts35 REAL(wp), PUBLIC :: xpref2c = 0.2_wp!: microzoo preference for POC36 REAL(wp), PUBLIC :: xpref2p = 1.0_wp!: microzoo preference for nanophyto37 REAL(wp), PUBLIC :: xpref2d = 0.6_wp!: microzoo preference for diatoms38 REAL(wp), PUBLIC :: xthreshdia = 1E-8_wp!: diatoms feeding threshold for microzooplankton39 REAL(wp), PUBLIC :: xthreshphy = 2E-7_wp!: nanophyto threshold for microzooplankton40 REAL(wp), PUBLIC :: xthreshpoc = 1E-8_wp!: poc threshold for microzooplankton41 REAL(wp), PUBLIC :: xthresh = 0._wp!: feeding threshold for microzooplankton42 REAL(wp), PUBLIC :: resrat = 0.03_wp!: exsudation rate of microzooplankton43 REAL(wp), PUBLIC :: mzrat = 0.0_wp!: microzooplankton mortality rate44 REAL(wp), PUBLIC :: grazrat = 3.0_wp!: maximal microzoo grazing rate45 REAL(wp), PUBLIC :: xkgraz = 20E-6_wp!: non assimilated fraction of P by microzoo46 REAL(wp), PUBLIC :: unass = 0.3_wp!: Efficicency of microzoo growth47 REAL(wp), PUBLIC :: sigma1 = 0.6_wp!: Fraction of microzoo excretion as DOM48 REAL(wp), PUBLIC :: epsher = 0.3_wp!: half sturation constant for grazing 134 REAL(wp), PUBLIC :: part !: part of calcite not dissolved in microzoo guts 35 REAL(wp), PUBLIC :: xpref2c !: microzoo preference for POC 36 REAL(wp), PUBLIC :: xpref2p !: microzoo preference for nanophyto 37 REAL(wp), PUBLIC :: xpref2d !: microzoo preference for diatoms 38 REAL(wp), PUBLIC :: xthreshdia !: diatoms feeding threshold for microzooplankton 39 REAL(wp), PUBLIC :: xthreshphy !: nanophyto threshold for microzooplankton 40 REAL(wp), PUBLIC :: xthreshpoc !: poc threshold for microzooplankton 41 REAL(wp), PUBLIC :: xthresh !: feeding threshold for microzooplankton 42 REAL(wp), PUBLIC :: resrat !: exsudation rate of microzooplankton 43 REAL(wp), PUBLIC :: mzrat !: microzooplankton mortality rate 44 REAL(wp), PUBLIC :: grazrat !: maximal microzoo grazing rate 45 REAL(wp), PUBLIC :: xkgraz !: non assimilated fraction of P by microzoo 46 REAL(wp), PUBLIC :: unass !: Efficicency of microzoo growth 47 REAL(wp), PUBLIC :: sigma1 !: Fraction of microzoo excretion as DOM 48 REAL(wp), PUBLIC :: epsher !: half sturation constant for grazing 1 49 49 50 50 … … 225 225 & xpref2d, xthreshdia, xthreshphy, xthreshpoc, & 226 226 & xthresh, xkgraz, epsher, sigma1, unass 227 228 REWIND( numnatp ) ! read numnatp 229 READ ( numnatp, nampiszoo ) 227 INTEGER :: ios ! Local integer output status for namelist read 228 229 REWIND( numnatp_ref ) ! Namelist nampiszoo in reference namelist : Pisces microzooplankton 230 READ ( numnatp_ref, nampiszoo, IOSTAT = ios, ERR = 901) 231 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampiszoo in reference namelist', lwp ) 232 233 REWIND( numnatp_cfg ) ! Namelist nampiszoo in configuration namelist : Pisces microzooplankton 234 READ ( numnatp_cfg, nampiszoo, IOSTAT = ios, ERR = 902 ) 235 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampiszoo in configuration namelist', lwp ) 236 WRITE ( numonp, nampiszoo ) 230 237 231 238 IF(lwp) THEN ! control print -
branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zmort.F90
r3475 r4147 27 27 28 28 !! * Shared module variables 29 REAL(wp), PUBLIC :: wchl = 0.001_wp!:30 REAL(wp), PUBLIC :: wchld = 0.02_wp!:31 REAL(wp), PUBLIC :: wchldm = 0.05_wp!:32 REAL(wp), PUBLIC :: mprat = 0.01_wp!:33 REAL(wp), PUBLIC :: mprat2 = 0.01_wp!:29 REAL(wp), PUBLIC :: wchl !: 30 REAL(wp), PUBLIC :: wchld !: 31 REAL(wp), PUBLIC :: wchldm !: 32 REAL(wp), PUBLIC :: mprat !: 33 REAL(wp), PUBLIC :: mprat2 !: 34 34 35 35 … … 239 239 240 240 NAMELIST/nampismort/ wchl, wchld, wchldm, mprat, mprat2 241 242 REWIND( numnatp ) ! read numnatp 243 READ ( numnatp, nampismort ) 241 INTEGER :: ios ! Local integer output status for namelist read 242 243 REWIND( numnatp_ref ) ! Namelist nampismort in reference namelist : Pisces phytoplankton 244 READ ( numnatp_ref, nampismort, IOSTAT = ios, ERR = 901) 245 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampismort in reference namelist', lwp ) 246 247 REWIND( numnatp_cfg ) ! Namelist nampismort in configuration namelist : Pisces phytoplankton 248 READ ( numnatp_cfg, nampismort, IOSTAT = ios, ERR = 902 ) 249 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampismort in configuration namelist', lwp ) 250 WRITE ( numonp, nampismort ) 244 251 245 252 IF(lwp) THEN ! control print -
branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zopt.F90
r3475 r4147 32 32 !! * Shared module variables 33 33 34 LOGICAL :: ln_varpar = .FALSE.!: boolean for variable PAR fraction35 REAL(wp) :: parlux = 0.43_wp!: Fraction of shortwave as PAR34 LOGICAL :: ln_varpar !: boolean for variable PAR fraction 35 REAL(wp) :: parlux !: Fraction of shortwave as PAR 36 36 REAL(wp) :: xparsw !: parlux/3 37 37 … … 318 318 INTEGER :: numpar 319 319 INTEGER :: ierr 320 INTEGER :: ios ! Local integer output status for namelist read 320 321 REAL(wp), DIMENSION(nbtimes) :: zsteps ! times records 321 322 ! … … 329 330 IF( nn_timing == 1 ) CALL timing_start('p4z_opt_init') 330 331 331 cn_dir = './' ! directory in which the model is executed332 ! ... default values (NB: frequency positive => hours, negative => months)333 ! ! file ! frequency ! variable ! time intep ! clim ! 'yearly' or ! weights ! rotation ! 334 ! ! name ! (hours) ! name ! (T/F) ! (T/F) ! 'monthly' ! filename ! pairs ! 335 sn_par = FLD_N( 'par_fraction', 24 , 'fr_par' , .true. , .true. , 'yearly' , '' , '' )336 337 REWIND( numnatp ) ! read numnatp 338 READ ( numnatp, nampisopt )332 REWIND( numnatp_ref ) ! Namelist nampisopt in reference namelist : Pisces attenuation coef. and PAR 333 READ ( numnatp_ref, nampisopt, IOSTAT = ios, ERR = 901) 334 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampisopt in reference namelist', lwp ) 335 336 REWIND( numnatp_cfg ) ! Namelist nampisopt in configuration namelist : Pisces attenuation coef. and PAR 337 READ ( numnatp_cfg, nampisopt, IOSTAT = ios, ERR = 902 ) 338 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampisopt in configuration namelist', lwp ) 339 WRITE ( numonp, nampisopt ) 339 340 340 341 IF(lwp) THEN -
branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zprod.F90
r3686 r4147 32 32 33 33 !! * Shared module variables 34 LOGICAL , PUBLIC :: ln_newprod = .FALSE.35 REAL(wp), PUBLIC :: pislope = 3.0_wp!:36 REAL(wp), PUBLIC :: pislope2 = 3.0_wp!:37 REAL(wp), PUBLIC :: excret = 10.e-5_wp!:38 REAL(wp), PUBLIC :: excret2 = 0.05_wp!:39 REAL(wp), PUBLIC :: bresp = 0.00333_wp!:40 REAL(wp), PUBLIC :: chlcnm = 0.033_wp!:41 REAL(wp), PUBLIC :: chlcdm = 0.05_wp!:42 REAL(wp), PUBLIC :: chlcmin = 0.00333_wp!:43 REAL(wp), PUBLIC :: fecnm = 10.E-6_wp!:44 REAL(wp), PUBLIC :: fecdm = 15.E-6_wp!:45 REAL(wp), PUBLIC :: grosip = 0.151_wp!:34 LOGICAL , PUBLIC :: ln_newprod !: 35 REAL(wp), PUBLIC :: pislope !: 36 REAL(wp), PUBLIC :: pislope2 !: 37 REAL(wp), PUBLIC :: excret !: 38 REAL(wp), PUBLIC :: excret2 !: 39 REAL(wp), PUBLIC :: bresp !: 40 REAL(wp), PUBLIC :: chlcnm !: 41 REAL(wp), PUBLIC :: chlcdm !: 42 REAL(wp), PUBLIC :: chlcmin !: 43 REAL(wp), PUBLIC :: fecnm !: 44 REAL(wp), PUBLIC :: fecdm !: 45 REAL(wp), PUBLIC :: grosip !: 46 46 47 47 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: prmax !: optimal production = f(temperature) … … 472 472 NAMELIST/nampisprod/ pislope, pislope2, ln_newprod, bresp, excret, excret2, & 473 473 & chlcnm, chlcdm, chlcmin, fecnm, fecdm, grosip 474 INTEGER :: ios ! Local integer output status for namelist read 474 475 !!---------------------------------------------------------------------- 475 476 476 REWIND( numnatp ) ! read numnatp 477 READ ( numnatp, nampisprod ) 477 REWIND( numnatp_ref ) ! Namelist nampisprod in reference namelist : Pisces phytoplankton production 478 READ ( numnatp_ref, nampisprod, IOSTAT = ios, ERR = 901) 479 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampisprod in reference namelist', lwp ) 480 481 REWIND( numnatp_cfg ) ! Namelist nampisprod in configuration namelist : Pisces phytoplankton production 482 READ ( numnatp_cfg, nampisprod, IOSTAT = ios, ERR = 902 ) 483 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampisprod in configuration namelist', lwp ) 484 WRITE ( numonp, nampisprod ) 478 485 479 486 IF(lwp) THEN ! control print -
branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zrem.F90
r3496 r4147 38 38 39 39 !! * Shared module variables 40 REAL(wp), PUBLIC :: xremik = 0.3_wp!: remineralisation rate of POC41 REAL(wp), PUBLIC :: xremip = 0.025_wp!: remineralisation rate of DOC42 REAL(wp), PUBLIC :: nitrif = 0.05_wp!: NH4 nitrification rate43 REAL(wp), PUBLIC :: xsirem = 0.003_wp!: remineralisation rate of POC44 REAL(wp), PUBLIC :: xsiremlab = 0.025_wp!: fast remineralisation rate of POC45 REAL(wp), PUBLIC :: xsilab = 0.31_wp!: fraction of labile biogenic silica46 REAL(wp), PUBLIC :: oxymin = 1.e-6_wp!: halk saturation constant for anoxia40 REAL(wp), PUBLIC :: xremik !: remineralisation rate of POC 41 REAL(wp), PUBLIC :: xremip !: remineralisation rate of DOC 42 REAL(wp), PUBLIC :: nitrif !: NH4 nitrification rate 43 REAL(wp), PUBLIC :: xsirem !: remineralisation rate of POC 44 REAL(wp), PUBLIC :: xsiremlab !: fast remineralisation rate of POC 45 REAL(wp), PUBLIC :: xsilab !: fraction of labile biogenic silica 46 REAL(wp), PUBLIC :: oxymin !: halk saturation constant for anoxia 47 47 48 48 … … 349 349 NAMELIST/nampisrem/ xremik, xremip, nitrif, xsirem, xsiremlab, xsilab, & 350 350 & oxymin 351 352 REWIND( numnatp ) ! read numnatp 353 READ ( numnatp, nampisrem ) 351 INTEGER :: ios ! Local integer output status for namelist read 352 353 REWIND( numnatp_ref ) ! Namelist nampisrem in reference namelist : Pisces remineralization 354 READ ( numnatp_ref, nampisrem, IOSTAT = ios, ERR = 901) 355 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampisrem in reference namelist', lwp ) 356 357 REWIND( numnatp_cfg ) ! Namelist nampisrem in configuration namelist : Pisces remineralization 358 READ ( numnatp_cfg, nampisrem, IOSTAT = ios, ERR = 902 ) 359 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampisrem in configuration namelist', lwp ) 360 WRITE ( numonp, nampisrem ) 354 361 355 362 IF(lwp) THEN ! control print -
branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsbc.F90
r3557 r4147 26 26 27 27 !! * Shared module variables 28 LOGICAL , PUBLIC :: ln_dust = .FALSE.!: boolean for dust input from the atmosphere29 LOGICAL , PUBLIC :: ln_solub = .FALSE.!: boolean for variable solubility of atmospheric iron30 LOGICAL , PUBLIC :: ln_river = .FALSE.!: boolean for river input of nutrients31 LOGICAL , PUBLIC :: ln_ndepo = .FALSE.!: boolean for atmospheric deposition of N32 LOGICAL , PUBLIC :: ln_ironsed = .FALSE.!: boolean for Fe input from sediments33 LOGICAL , PUBLIC :: ln_hydrofe = .FALSE.!: boolean for Fe input from hydrothermal vents34 LOGICAL , PUBLIC :: ln_ironice = .FALSE.!: boolean for Fe input from sea ice35 REAL(wp), PUBLIC :: sedfeinput = 1.E-9_wp!: Coastal release of Iron36 REAL(wp), PUBLIC :: dustsolub = 0.014_wp!: Solubility of the dust37 REAL(wp), PUBLIC :: icefeinput = 10E-9_wp!: Iron concentration in sea ice38 REAL(wp), PUBLIC :: wdust = 2.0_wp!: Sinking speed of the dust39 REAL(wp), PUBLIC :: nitrfix = 1E-7_wp!: Nitrogen fixation rate40 REAL(wp), PUBLIC :: diazolight = 50._wp!: Nitrogen fixation sensitivty to light41 REAL(wp), PUBLIC :: concfediaz = 1.E-10_wp!: Fe half-saturation Cste for diazotrophs42 REAL(wp) :: hratio = 9.E-5_wp!: Fe:3He ratio assumed for vent iron supply28 LOGICAL , PUBLIC :: ln_dust !: boolean for dust input from the atmosphere 29 LOGICAL , PUBLIC :: ln_solub !: boolean for variable solubility of atmospheric iron 30 LOGICAL , PUBLIC :: ln_river !: boolean for river input of nutrients 31 LOGICAL , PUBLIC :: ln_ndepo !: boolean for atmospheric deposition of N 32 LOGICAL , PUBLIC :: ln_ironsed !: boolean for Fe input from sediments 33 LOGICAL , PUBLIC :: ln_hydrofe !: boolean for Fe input from hydrothermal vents 34 LOGICAL , PUBLIC :: ln_ironice !: boolean for Fe input from sea ice 35 REAL(wp), PUBLIC :: sedfeinput !: Coastal release of Iron 36 REAL(wp), PUBLIC :: dustsolub !: Solubility of the dust 37 REAL(wp), PUBLIC :: icefeinput !: Iron concentration in sea ice 38 REAL(wp), PUBLIC :: wdust !: Sinking speed of the dust 39 REAL(wp), PUBLIC :: nitrfix !: Nitrogen fixation rate 40 REAL(wp), PUBLIC :: diazolight !: Nitrogen fixation sensitivty to light 41 REAL(wp), PUBLIC :: concfediaz !: Fe half-saturation Cste for diazotrophs 42 REAL(wp) :: hratio !: Fe:3He ratio assumed for vent iron supply 43 43 44 44 LOGICAL , PUBLIC :: ll_sbc … … 186 186 INTEGER :: numdust, numsolub, numriv, numiron, numdepo, numhydro 187 187 INTEGER :: ierr, ierr1, ierr2, ierr3 188 INTEGER :: ios ! Local integer output status for namelist read 188 189 REAL(wp) :: zexpide, zdenitide, zmaskt 189 190 REAL(wp) :: ztimes_dust, ztimes_riv, ztimes_ndep … … 209 210 ! 210 211 ! !* set file information 211 cn_dir = './' ! directory in which the model is executed 212 ! ... default values (NB: frequency positive => hours, negative => months) 213 ! ! file ! frequency ! variable ! time intep ! clim ! 'yearly' or ! weights ! rotation ! 214 ! ! name ! (hours) ! name ! (T/F) ! (T/F) ! 'monthly' ! filename ! pairs ! 215 sn_dust = FLD_N( 'dust' , -1 , 'dust' , .true. , .true. , 'yearly' , '' , '' ) 216 sn_solub = FLD_N( 'solubility' , -12 , 'solub' , .true. , .true. , 'yearly' , '' , '' ) 217 sn_riverdic = FLD_N( 'river' , -12 , 'riverdic' , .false. , .true. , 'yearly' , '' , '' ) 218 sn_riverdoc = FLD_N( 'river' , -12 , 'riverdoc' , .false. , .true. , 'yearly' , '' , '' ) 219 sn_riverdin = FLD_N( 'river' , -12 , 'riverdin' , .false. , .true. , 'yearly' , '' , '' ) 220 sn_riverdon = FLD_N( 'river' , -12 , 'riverdon' , .false. , .true. , 'yearly' , '' , '' ) 221 sn_riverdip = FLD_N( 'river' , -12 , 'riverdip' , .false. , .true. , 'yearly' , '' , '' ) 222 sn_riverdop = FLD_N( 'river' , -12 , 'riverdop' , .false. , .true. , 'yearly' , '' , '' ) 223 sn_riverdsi = FLD_N( 'river' , -12 , 'riverdsi' , .false. , .true. , 'yearly' , '' , '' ) 224 sn_ndepo = FLD_N( 'ndeposition', -12 , 'ndep' , .false. , .true. , 'yearly' , '' , '' ) 225 sn_ironsed = FLD_N( 'ironsed' , -12 , 'bathy' , .false. , .true. , 'yearly' , '' , '' ) 226 sn_hydrofe = FLD_N( 'hydrofe' , -12 , 'hydro' , .false. , .true. , 'yearly' , '' , '' ) 227 228 REWIND( numnatp ) ! read numnatp 229 READ ( numnatp, nampissbc ) 212 213 REWIND( numnatp_ref ) ! Namelist nampissbc in reference namelist : Pisces external sources of nutrients 214 READ ( numnatp_ref, nampissbc, IOSTAT = ios, ERR = 901) 215 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampissbc in reference namelist', lwp ) 216 217 REWIND( numnatp_cfg ) ! Namelist nampissbc in configuration namelist : Pisces external sources of nutrients 218 READ ( numnatp_cfg, nampissbc, IOSTAT = ios, ERR = 902 ) 219 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampissbc in configuration namelist', lwp ) 220 WRITE ( numonp, nampissbc ) 230 221 231 222 IF(lwp) THEN -
branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsink.F90
r3829 r4147 44 44 45 45 #if defined key_kriest 46 REAL(wp) :: xkr_sfact = 250.!: Sinking factor47 REAL(wp) :: xkr_stick = 0.2!: Stickiness48 REAL(wp) :: xkr_nnano = 2.337!: Nbr of cell in nano size class49 REAL(wp) :: xkr_ndiat = 3.718!: Nbr of cell in diatoms size class50 REAL(wp) :: xkr_nmicro = 3.718!: Nbr of cell in microzoo size class51 REAL(wp) :: xkr_nmeso = 7.147!: Nbr of cell in mesozoo size class52 REAL(wp) :: xkr_naggr = 9.877!: Nbr of cell in aggregates size class46 REAL(wp) :: xkr_sfact !: Sinking factor 47 REAL(wp) :: xkr_stick !: Stickiness 48 REAL(wp) :: xkr_nnano !: Nbr of cell in nano size class 49 REAL(wp) :: xkr_ndiat !: Nbr of cell in diatoms size class 50 REAL(wp) :: xkr_nmicro !: Nbr of cell in microzoo size class 51 REAL(wp) :: xkr_nmeso !: Nbr of cell in mesozoo size class 52 REAL(wp) :: xkr_naggr !: Nbr of cell in aggregates size class 53 53 54 54 REAL(wp) :: xkr_frac … … 538 538 !!---------------------------------------------------------------------- 539 539 INTEGER :: jk, jn, kiter 540 INTEGER :: ios ! Local integer output status for namelist read 540 541 REAL(wp) :: znum, zdiv 541 542 REAL(wp) :: zws, zwr, zwl,wmax, znummax … … 548 549 IF( nn_timing == 1 ) CALL timing_start('p4z_sink_init') 549 550 ! 550 REWIND( numnatp ) ! read nampiskrs 551 READ ( numnatp, nampiskrs ) 551 552 REWIND( numnatp_ref ) ! Namelist nampiskrs in reference namelist : Pisces sinking Kriest 553 READ ( numnatp_ref, nampiskrs, IOSTAT = ios, ERR = 901) 554 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampiskrs in reference namelist', lwp ) 555 556 REWIND( numnatp_cfg ) ! Namelist nampiskrs in configuration namelist : Pisces sinking Kriest 557 READ ( numnatp_cfg, nampiskrs, IOSTAT = ios, ERR = 902 ) 558 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampiskrs in configuration namelist', lwp ) 559 WRITE ( numonp, nampiskrs ) 552 560 553 561 IF(lwp) THEN -
branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zsms.F90
r3780 r4147 145 145 CALL p4z_chk_mass( kt ) ! Mass conservation checking 146 146 147 IF ( kt == nittrc000 ) CALL FLUSH ( numonp ) ! flush output namelist PISCES 147 148 IF( nn_timing == 1 ) CALL timing_stop('p4z_sms') 148 149 ! … … 166 167 NAMELIST/nampisdmp/ ln_pisdmp, nn_pisdmp, ln_pisclo 167 168 NAMELIST/nampismass/ ln_check_mass 168 !!---------------------------------------------------------------------- 169 170 171 REWIND( numnatp ) 172 READ ( numnatp, nampisbio ) 169 INTEGER :: ios ! Local integer output status for namelist read 170 !!---------------------------------------------------------------------- 171 172 REWIND( numnatp_ref ) ! Namelist nampisbio in reference namelist : Pisces variables 173 READ ( numnatp_ref, nampisbio, IOSTAT = ios, ERR = 901) 174 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampisbio in reference namelist', lwp ) 175 176 REWIND( numnatp_cfg ) ! Namelist nampisbio in configuration namelist : Pisces variables 177 READ ( numnatp_cfg, nampisbio, IOSTAT = ios, ERR = 902 ) 178 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampisbio in configuration namelist', lwp ) 179 WRITE ( numonp, nampisbio ) 173 180 174 181 IF(lwp) THEN ! control print … … 187 194 ! ! nampiskrp : kriest parameters 188 195 ! ! ----------------------------- 189 xkr_eta = 0.62190 xkr_zeta = 1.62191 xkr_ncontent = 5.7E-6 192 xkr_mass_min = 0.0002 193 xkr_mass_max = 1.194 195 REWIND( numnatp ) ! read natkriest 196 READ ( numnatp, nampiskrp )196 REWIND( numnatp_ref ) ! Namelist nampiskrp in reference namelist : Pisces Kriest 197 READ ( numnatp_ref, nampiskrp, IOSTAT = ios, ERR = 903) 198 903 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampiskrp in reference namelist', lwp ) 199 200 REWIND( numnatp_cfg ) ! Namelist nampiskrp in configuration namelist : Pisces Kriest 201 READ ( numnatp_cfg, nampiskrp, IOSTAT = ios, ERR = 904 ) 202 904 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampiskrp in configuration namelist', lwp ) 203 WRITE ( numonp, nampiskrp ) 197 204 198 205 IF(lwp) THEN … … 213 220 #endif 214 221 215 ln_pisdmp = .true. 216 nn_pisdmp = 1 217 ln_pisclo = .false. 218 219 REWIND( numnatp ) 220 READ ( numnatp, nampisdmp ) 222 REWIND( numnatp_ref ) ! Namelist nampisdmp in reference namelist : Pisces damping 223 READ ( numnatp_ref, nampisdmp, IOSTAT = ios, ERR = 905) 224 905 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampisdmp in reference namelist', lwp ) 225 226 REWIND( numnatp_cfg ) ! Namelist nampisdmp in configuration namelist : Pisces damping 227 READ ( numnatp_cfg, nampisdmp, IOSTAT = ios, ERR = 906 ) 228 906 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampisdmp in configuration namelist', lwp ) 229 WRITE ( numonp, nampisdmp ) 221 230 222 231 IF(lwp) THEN ! control print … … 229 238 ENDIF 230 239 231 ln_check_mass = .false. 232 REWIND( numnatp ) 233 READ ( numnatp, nampismass ) 240 REWIND( numnatp_ref ) ! Namelist nampismass in reference namelist : Pisces mass conservation check 241 READ ( numnatp_ref, nampismass, IOSTAT = ios, ERR = 907) 242 907 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampismass in reference namelist', lwp ) 243 244 REWIND( numnatp_cfg ) ! Namelist nampismass in configuration namelist : Pisces mass conservation check 245 READ ( numnatp_cfg, nampismass, IOSTAT = ios, ERR = 908 ) 246 908 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampismass in configuration namelist', lwp ) 247 WRITE ( numonp, nampismass ) 248 234 249 IF(lwp) THEN ! control print 235 250 WRITE(numout,*) ' ' -
branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/TOP_SRC/PISCES/sms_pisces.F90
r3780 r4147 17 17 PUBLIC 18 18 19 INTEGER :: numnatp 19 INTEGER :: numnatp_ref = -1 !! Logical units for namelist pisces 20 INTEGER :: numnatp_cfg = -1 !! Logical units for namelist pisces 21 INTEGER :: numonp = -1 !! Logical unit for namelist pisces output 20 22 21 23 !!* Biological fluxes for light : variables shared by pisces & lobster -
branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/TOP_SRC/PISCES/trcnam_pisces.F90
r3680 r4147 49 49 !! 50 50 INTEGER :: jl, jn 51 INTEGER :: ios ! Local integer output status for namelist read 51 52 TYPE(DIAG), DIMENSION(jp_pisces_2d) :: pisdia2d 52 53 TYPE(DIAG), DIMENSION(jp_pisces_3d) :: pisdia3d … … 69 70 #endif 70 71 IF(lwp) WRITE(numout,*) ' ~~~~~~~~~~~~~~' 71 CALL ctl_opn( numnatp, TRIM( clname ), 'OLD', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. ) 72 72 CALL ctl_opn( numnatp_ref, TRIM( clname )//'_ref', 'OLD' , 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. ) 73 CALL ctl_opn( numnatp_cfg, TRIM( clname )//'_cfg', 'OLD' , 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. ) 74 CALL ctl_opn( numonp , 'output.namelist.pis' , 'REPLACE', 'FORMATTED', 'SEQUENTIAL', -1, numout, .FALSE. ) 73 75 ! 74 76 IF( .NOT.lk_iomput .AND. ln_diatrc ) THEN … … 76 78 ! Namelist nampisdia 77 79 ! ------------------- 78 DO jl = 1, jp_pisces_2d 79 WRITE(pisdia2d(jl)%sname,'("2D_",I1)') jl ! short name 80 WRITE(pisdia2d(jl)%lname,'("2D DIAGNOSTIC NUMBER ",I2)') jl ! long name 81 pisdia2d(jl)%units = ' ' ! units 82 END DO 83 ! ! 3D output arrays 84 DO jl = 1, jp_pisces_3d 85 WRITE(pisdia3d(jl)%sname,'("3D_",I1)') jl ! short name 86 WRITE(pisdia3d(jl)%lname,'("3D DIAGNOSTIC NUMBER ",I2)') jl ! long name 87 pisdia3d(jl)%units = ' ' ! units 88 END DO 80 REWIND( numnatp_ref ) ! Namelist nampisdia in reference namelist : Pisces diagnostics 81 READ ( numnatp_ref, nampisdia, IOSTAT = ios, ERR = 901) 82 901 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampisdia in reference namelist', lwp ) 89 83 90 REWIND( numnatp ) ! 91 READ ( numnatp, nampisdia ) 84 REWIND( numnatp_cfg ) ! Namelist nampisdia in configuration namelist : Pisces diagnostics 85 READ ( numnatp_cfg, nampisdia, IOSTAT = ios, ERR = 902 ) 86 902 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampisdia in configuration namelist', lwp ) 87 WRITE ( numonp, nampisdia ) 92 88 93 89 DO jl = 1, jp_pisces_2d … … 131 127 ! Namelist nampisdbi 132 128 ! ------------------- 133 DO jl = 1, jp_pisces_trd 134 IF( jl < 10 ) THEN ; WRITE (pisdiabio(jl)%sname,'("BIO_",I1)') jl ! short name 135 ELSEIF (jl < 100 ) THEN ; WRITE (pisdiabio(jl)%sname,'("BIO_",I2)') jl 136 ELSE ; WRITE (pisdiabio(jl)%sname,'("BIO_",I3)') jl 137 ENDIF 138 WRITE(pisdiabio(jl)%lname,'("BIOLOGICAL TREND NUMBER ",I2)') jl ! long name 139 pisdiabio(jl)%units = 'mmoleN/m3/s ' ! units 140 END DO 129 REWIND( numnatp_ref ) ! Namelist nampisdbi in reference namelist : Pisces add. diagnostics 130 READ ( numnatp_ref, nampisdbi, IOSTAT = ios, ERR = 903) 131 903 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampisdbi in reference namelist', lwp ) 141 132 142 REWIND( numnatp ) 143 READ ( numnatp, nampisdbi ) 133 REWIND( numnatp_cfg ) ! Namelist nampisdbi in configuration namelist : Pisces add. diagnostics 134 READ ( numnatp_cfg, nampisdbi, IOSTAT = ios, ERR = 904 ) 135 904 IF( ios /= 0 ) CALL ctl_nam ( ios , 'nampisdbi in configuration namelist', lwp ) 136 WRITE ( numonp, nampisdbi ) 144 137 145 138 DO jl = 1, jp_pisces_trd -
branches/2013/dev_LOCEAN_2013/NEMOGCM/NEMO/TOP_SRC/PISCES/trcsms_pisces.F90
r3680 r4147 51 51 ELSE ; CALL p2z_sms( kt ) ! LOBSTER 52 52 ENDIF 53 53 54 ! 54 55 END SUBROUTINE trc_sms_pisces
Note: See TracChangeset
for help on using the changeset viewer.