238 integer,
parameter,
dimension(7,7) ::
pig = reshape ( &
239 & (/ 1, 1, 1, 1, 1, 1, 1, &
240 & 0, 0, 0, 0, 0, 1, 1, &
241 & 1, 1, 1, 1, 0, 0, 0, &
242 & 1, 1, 1, 1, 0, 0, 0, &
243 & 1, 1, 1, 1, 1, 1, 1, &
244 & 0, 0, 0, 0, 0, 0, 0, &
245 & 0, 0, 0, 0, 1, 0, 0 /), &
250 integer,
parameter,
dimension(Nphy) ::
phy = (/ 1, 2, 4, 5 /)
285#if defined DIAGNOSTICS && defined DIAGNOSTICS_BIO
323 character (len=16),
dimension(Nbac) ::
bacname
324 character (len=11),
dimension(Ndom) ::
domname
325 character (len=13),
dimension(Nfec) ::
fecname
326 character (len=21),
dimension(Nphy) ::
phyname
328 character (len=39),
dimension(7) ::
pigname = &
329 & (/
'chlorophyll-a ', &
330 &
'chlorophyll-b ', &
331 &
'chlorophyll-c ', &
332 &
'photosynthetic carotenoids ', &
333 &
'photoprotective carotenoids ', &
334 &
'low urobilin phycoeurythin carotenoids ', &
335 &
'high urobilin phycoeurythin carotenoids' /)
357 real(r8),
allocatable ::
hsfe(:,:)
361 real(r8),
allocatable ::
bet_(:,:)
401 real(r8),
allocatable ::
ws(:,:)
438 real(r8),
allocatable ::
wf(:,:)
453 real(r8),
parameter ::
dlam = 5.0_r8
457 real(r8),
parameter ::
small = 1.0e-6_r8
458 real(r8),
parameter ::
vsmall = 1.0e-14_r8
459 real(r8),
parameter ::
larger = 1.0e+10_r8
460 real(r8),
parameter ::
vlarge = 1.0e+50_r8
509 integer :: i, ic, j, ng
511 character (len=21),
dimension(7) :: PhyGroups = &
512 & (/
'small diatom ', &
514 &
'small dinoflagellate ', &
515 &
'large dinoflagellate ', &
516 &
'synechococcus ', &
517 &
'small prochlorococcus', &
518 &
'large prochlorococcus' /)
548#if defined DIAGNOSTICS && defined DIAGNOSTICS_BIO
562 IF (.not.
allocated(
bioiter))
THEN
582 IF (.not.
allocated(
hsno3))
THEN
587 IF (.not.
allocated(
hsnh4))
THEN
592 IF (.not.
allocated(
hssio))
THEN
597 IF (.not.
allocated(
hspo4))
THEN
602 IF (.not.
allocated(
hsfe))
THEN
617 IF (.not.
allocated(
phytfac))
THEN
622 IF (.not.
allocated(
bet_))
THEN
687 IF (.not.
allocated(
qu_yld))
THEN
692 IF (.not.
allocated(
e0_comp))
THEN
712 IF (.not.
allocated(
mxc2cl))
THEN
717 IF (.not.
allocated(
b_c2cl))
THEN
722 IF (.not.
allocated(
mxc2cn))
THEN
727 IF (.not.
allocated(
b_c2cn))
THEN
742 IF (.not.
allocated(
mxchlb))
THEN
747 IF (.not.
allocated(
b_chlb))
THEN
752 IF (.not.
allocated(
mxchlc))
THEN
757 IF (.not.
allocated(
b_chlc))
THEN
762 IF (.not.
allocated(
mxpsc))
THEN
767 IF (.not.
allocated(
b_psc))
THEN
772 IF (.not.
allocated(
mxppc))
THEN
777 IF (.not.
allocated(
b_ppc))
THEN
782 IF (.not.
allocated(
mxlpub))
THEN
787 IF (.not.
allocated(
b_lpub))
THEN
792 IF (.not.
allocated(
mxhpub))
THEN
797 IF (.not.
allocated(
b_hpub))
THEN
802 IF (.not.
allocated(
fecdoc))
THEN
807 IF (.not.
allocated(
fecpel))
THEN
812 IF (.not.
allocated(
feccyc))
THEN
817 IF (.not.
allocated(
exalg))
THEN
822 IF (.not.
allocated(
ws))
THEN
827 IF (.not.
allocated(
hsgrz))
THEN
852 IF (.not.
allocated(
hsdop))
THEN
862 IF (.not.
allocated(
hsdon))
THEN
887 IF (.not.
allocated(
bactfac))
THEN
892 IF (.not.
allocated(
c2nbac))
THEN
897 IF (.not.
allocated(
c2pbac))
THEN
902 IF (.not.
allocated(
c2febac))
THEN
907 IF (.not.
allocated(
bacdoc))
THEN
912 IF (.not.
allocated(
bacpel))
THEN
917 IF (.not.
allocated(
baccyc))
THEN
922 IF (.not.
allocated(
exbac_c))
THEN
937 IF (.not.
allocated(
rtnit))
THEN
942 IF (.not.
allocated(
hsnit))
THEN
962 IF (.not.
allocated(
wf))
THEN
972 IF (.not.
allocated(
regtfac))
THEN
977 IF (.not.
allocated(
regcr))
THEN
982 IF (.not.
allocated(
regnr))
THEN
987 IF (.not.
allocated(
regsr))
THEN
992 IF (.not.
allocated(
regpr))
THEN
997 IF (.not.
allocated(
regfr))
THEN
1022 IF (.not.
allocated(
n2cbac))
THEN
1027 IF (.not.
allocated(
p2cbac))
THEN
1032 IF (.not.
allocated(
fe2cbac))
THEN
1047 IF (.not.
allocated(
hsfe_ba))
THEN
1057 IF (.not.
allocated(
exbac_n))
THEN
1074 IF (.not.
allocated(
idbio))
THEN
1079#if defined DIAGNOSTICS && defined DIAGNOSTICS_BIO
1083 IF (.not.
allocated(
idbio3))
THEN
1088 IF (.not.
allocated(
idbio4))
THEN
1139 IF (
phy(i).le.2)
THEN
1150 IF (
pig(
phy(i),j).eq.1)
THEN
1165 WRITE (
bacname(i),
'(a,1x,i1)')
'Bacteria Group', i
1168 WRITE (
domname(i),
'(a,1x,i1)')
'DOM Group', i
1171 WRITE (
fecname(i),
'(a,1x,i1)')
'Fecal Group', i
logical, dimension(:), allocatable rtuvr_flag
real(r8), dimension(:), allocatable rtnit
integer, dimension(nphy) iphyn
real(r8), dimension(:,:), allocatable b_c2cl
real(r8), dimension(:,:), allocatable e0_comp
real(r8), dimension(:,:), allocatable inhib_fac
real(r8), dimension(:,:), allocatable mxpaceff
real(r8), dimension(:,:), allocatable mxppc
real(r8), dimension(:,:), allocatable hspo4
real(r8), parameter vlarge
real(r8), dimension(:,:), allocatable regcr
real(r8), dimension(:), allocatable frac_exbac_n
real(r8), dimension(:,:), allocatable mxchlc
integer, dimension(:), allocatable idbio4
real(r8), dimension(:), allocatable bacpel
real(r8), dimension(:,:), allocatable mxpsc
real(r8), dimension(:,:), allocatable mxc2cl
real(r8), dimension(:,:), allocatable b_chlc
real(r8), dimension(:,:), allocatable hsfe
real(r8), dimension(:,:), allocatable maxc2sialg
integer, dimension(nbac) ibacc
real(r8), dimension(:), allocatable r_exbac_c
logical, dimension(:), allocatable nfix_flag
real(r8), dimension(:,:), allocatable bactbase
real(r8), dimension(:,:), allocatable hspo4_ba
real(r8), dimension(nbands) wavedp
real(r8), dimension(:,:), allocatable hsfe_ba
real(r8), dimension(:,:), allocatable hsdon
real(r8), dimension(:,:), allocatable mxchlb
integer, dimension(7, 7), parameter pig
real(r8), dimension(:,:), allocatable regpr
real(r8), dimension(:,:), allocatable b_psc
integer, dimension(nfec) ifecf
integer, dimension(ndom) idomn
integer, dimension(:), allocatable bioiter
real(r8), dimension(:,:), allocatable regtbase
real(r8), dimension(:,:,:), allocatable fecpel
real(r8), dimension(:), allocatable bac_ceff
integer, dimension(nbac) ibacp
integer, dimension(nfec) ifecp
real(r8), dimension(:,:), allocatable hsnh4_ba
real(r8), dimension(:,:), allocatable qu_yld
integer, dimension(nfec) ifecc
real(r8), dimension(:,:), allocatable hsno3
integer, dimension(nphy) iphyp
real(r8), dimension(:), allocatable rtuvr_dic
real(r8), dimension(:,:), allocatable exalg
real(r8), dimension(:,:), allocatable b_c2cn
real(r8), dimension(:,:), allocatable mxc2cn
real(r8), dimension(:), allocatable p2cbac
integer, parameter nbands
real(r8), dimension(:,:), allocatable maxc2fealg
real(r8), dimension(:,:), allocatable minc2sialg
real(r8), dimension(:,:), allocatable hsdoc_ba
integer, dimension(nfec) ifecs
real(r8), dimension(:,:), allocatable regsr
integer, dimension(ndom) icdmc
real(r8), dimension(:,:), allocatable phytbase
real(r8), dimension(:,:), allocatable fecdoc
real(r8), dimension(:,:), allocatable imaxc2palg
real(r8), dimension(:,:), allocatable b_hpub
real(r8), dimension(:,:), allocatable bet_
real(r8), dimension(:), allocatable n2cbac
real(r8), parameter larger
real(r8), dimension(:,:), allocatable imaxc2sialg
real(r8), dimension(:,:), allocatable mxlpub
real(r8), dimension(:,:), allocatable b_chlb
real(r8), dimension(:), allocatable baccyc
real(r8), dimension(:,:), allocatable maxc2nalg
integer, dimension(nphy) iphyc
real(r8), dimension(:,:), allocatable wf
real(r8), dimension(:,:), allocatable mxhpub
integer, dimension(nbac) ibacf
real(r8), dimension(:,:), allocatable c2nalgminabs
logical, dimension(:), allocatable regen_flag
real(r8), dimension(:,:), allocatable hsnh4
real(r8), dimension(:,:), allocatable feccyc
real(r8), dimension(:,:), allocatable b_ppc
real(r8), dimension(:), allocatable bacdoc
real(r8), dimension(:,:), allocatable b_paceff
real(r8), dimension(:,:), allocatable minrefuge
real(r8), dimension(:,:), allocatable c2nnupdon
integer, dimension(nphy, npig) ipigs
real(r8), dimension(:,:), allocatable minc2nalg
real(r8), dimension(:), allocatable c2febac
real(r8), dimension(:,:), allocatable refugedep
integer, dimension(:), allocatable idbio3
real(r8), parameter vsmall
real(r8), dimension(:,:), allocatable imaxc2fealg
real(r8), dimension(:,:), allocatable norm_vol
real(r8), dimension(:,:), allocatable maxc2palg
real(r8), dimension(:,:), allocatable regtfac
real(r8), dimension(:,:), allocatable c2fealgminabs
real(r8), dimension(:), allocatable c2pbac
character(len=13), dimension(nfec) fecname
real(r8), dimension(:,:), allocatable phytfac
integer, dimension(:), allocatable idbio
integer, dimension(ndom) idomp
real(r8), dimension(:,:), allocatable ws
character(len=11), dimension(ndom) domname
real(r8), dimension(:,:), allocatable cdocfrac_c
integer, dimension(nbac) ibacn
real(r8), dimension(:,:), allocatable hsdop
real(r8), dimension(:,:), allocatable regnr
real(r8), parameter small
real(r8), dimension(:,:), allocatable imaxc2nalg
real(r8), dimension(:), allocatable exbac_c
integer, dimension(ndom) idomc
real(r8), dimension(:,:), allocatable hssio
real(r8), dimension(ndom) adoc410
integer, dimension(nphy), parameter phy
real(r8), dimension(:,:), allocatable b_lpub
real(r8), dimension(:), allocatable rtuvr_doc
real(r8), dimension(:,:), allocatable gtbac_max
character(len=39), dimension(7) pigname
character(len=21), dimension(nphy) phyname
character(len=16), dimension(nbac) bacname
real(r8), dimension(:,:), allocatable c2sialgminabs
real(r8), dimension(:), allocatable exbacc2n
integer, dimension(nphy) iphyf
real(r8), dimension(:), allocatable exbac_n
real(r8), dimension(:), allocatable i_bac_ceff
real(r8), dimension(:,:), allocatable norm_surf
subroutine initialize_biology
real(r8), dimension(:,:), allocatable minc2palg
integer, dimension(nphy) iphys
real(r8), dimension(:,:), allocatable minc2fealg
real(r8), dimension(:), allocatable c2nbac
real(r8), dimension(:,:), allocatable hsgrz
integer, dimension(nfec) ifecn
real(r8), dimension(:,:), allocatable gtalg_max
real(r8), dimension(:,:), allocatable bactfac
real(r8), dimension(:), allocatable fe2cbac
real(r8), dimension(:,:), allocatable c2chl_max
real(r8), dimension(ndom) adoc300
real(r8), dimension(:,:), allocatable e0_inhib
real(r8), dimension(:), allocatable dia_light
real(r8), dimension(:), allocatable hsnit
real(r8), dimension(:,:), allocatable regfr
real(r8), dimension(:,:), allocatable c2palkphos
real(r8), dimension(:,:), allocatable c2palgminabs
real(r8), dimension(:), allocatable dmem