28 logical,
intent(in) :: Lwrite
29 integer,
intent(in) :: model, inp, out
34 integer :: iTrcStr, iTrcEnd
35 integer :: i, ifield, igrid, is, itracer, itrc, ng, nline, status
36 integer :: ibac, iband, ifec, iphy
38 logical,
dimension(Ngrids) :: Lbio
39 logical,
dimension(NBT,Ngrids) :: Ltrc
41 real(r8),
dimension(NBT,Ngrids) :: Rbio
43 real(dp),
dimension(nRval) :: Rval
45 character (len=40 ) :: KeyWord
46 character (len=256) :: line
47 character (len=256),
dimension(nCval) :: Cval
64 READ (inp,
'(a)',err=10,
END=20) line
65 status=decode_line(line, keyword, nval, cval, rval)
67 SELECT CASE (trim(keyword))
69 npts=load_l(nval, cval, ngrids, lbiology)
71 npts=load_i(nval, rval, ngrids, bioiter)
73 npts=load_l(nval, cval, ngrids, rtuvr_flag)
75 npts=load_l(nval, cval, ngrids, nfix_flag)
77 npts=load_l(nval, cval, ngrids, regen_flag)
79 npts=load_r(nval, rval, nphy, ngrids, hsno3)
81 npts=load_r(nval, rval, nphy, ngrids, hsnh4)
83 npts=load_r(nval, rval, nphy, ngrids, hssio)
85 npts=load_r(nval, rval, nphy, ngrids, hspo4)
87 npts=load_r(nval, rval, nphy, ngrids, hsfe)
89 npts=load_r(nval, rval, nphy, ngrids, gtalg_max)
91 npts=load_r(nval, rval, nphy, ngrids, phytbase)
93 npts=load_r(nval, rval, nphy, ngrids, phytfac)
95 npts=load_r(nval, rval, nphy, ngrids, bet_)
97 npts=load_r(nval, rval, nphy, ngrids, maxc2nalg)
99 npts=load_r(nval, rval, nphy, ngrids, minc2nalg)
100 CASE (
'C2nALGminABS')
101 npts=load_r(nval, rval, nphy, ngrids, c2nalgminabs)
103 npts=load_r(nval, rval, nphy, ngrids, maxc2sialg)
105 npts=load_r(nval, rval, nphy, ngrids, minc2sialg)
106 CASE (
'C2SiALGminABS')
107 npts=load_r(nval, rval, nphy, ngrids, c2sialgminabs)
109 npts=load_r(nval, rval, nphy, ngrids, maxc2palg)
111 npts=load_r(nval, rval, nphy, ngrids, minc2palg)
112 CASE (
'C2pALGminABS')
113 npts=load_r(nval, rval, nphy, ngrids, c2palgminabs)
115 npts=load_r(nval, rval, nphy, ngrids, maxc2fealg)
117 npts=load_r(nval, rval, nphy, ngrids, minc2fealg)
118 CASE (
'C2FeALGminABS')
119 npts=load_r(nval, rval, nphy, ngrids, c2fealgminabs)
121 npts=load_r(nval, rval, nphy, ngrids, qu_yld)
123 npts=load_r(nval, rval, nphy, ngrids, e0_comp)
125 npts=load_r(nval, rval, nphy, ngrids, e0_inhib)
127 npts=load_r(nval, rval, nphy, ngrids, inhib_fac)
129 npts=load_r(nval, rval, nphy, ngrids, c2chl_max)
131 npts=load_r(nval, rval, nphy, ngrids, mxc2cl)
133 npts=load_r(nval, rval, nphy, ngrids, b_c2cl)
135 npts=load_r(nval, rval, nphy, ngrids, mxc2cn)
137 npts=load_r(nval, rval, nphy, ngrids, b_c2cn)
139 npts=load_r(nval, rval, nphy, ngrids, mxpaceff)
141 npts=load_r(nval, rval, nphy, ngrids, b_paceff)
143 npts=load_r(nval, rval, nphy, ngrids, mxchlb)
145 npts=load_r(nval, rval, nphy, ngrids, b_chlb)
147 npts=load_r(nval, rval, nphy, ngrids, mxchlc)
149 npts=load_r(nval, rval, nphy, ngrids, b_chlc)
151 npts=load_r(nval, rval, nphy, ngrids, mxpsc)
153 npts=load_r(nval, rval, nphy, ngrids, b_psc)
155 npts=load_r(nval, rval, nphy, ngrids, mxppc)
157 npts=load_r(nval, rval, nphy, ngrids, b_ppc)
159 npts=load_r(nval, rval, nphy, ngrids, mxlpub)
161 npts=load_r(nval, rval, nphy, ngrids, b_lpub)
163 npts=load_r(nval, rval, nphy, ngrids, mxhpub)
165 npts=load_r(nval, rval, nphy, ngrids, b_hpub)
167 npts=load_r(nval, rval, nphy, ngrids, fecdoc)
169 npts=load_r(nval, rval, nphy, nfec, ngrids, fecpel)
171 npts=load_r(nval, rval, nphy, ngrids, feccyc)
173 npts=load_r(nval, rval, nphy, ngrids, exalg)
175 npts=load_r(nval, rval, nphy, ngrids, ws)
177 npts=load_r(nval, rval, nphy, ngrids, hsgrz)
179 npts=load_r(nval, rval, nphy, ngrids, minrefuge)
181 npts=load_r(nval, rval, nphy, ngrids, refugedep)
183 npts=load_r(nval, rval, nphy, ngrids, norm_vol)
185 npts=load_r(nval, rval, nphy, ngrids, norm_surf)
187 npts=load_r(nval, rval, nphy, ngrids, hsdop)
189 npts=load_r(nval, rval, nphy, ngrids, c2palkphos)
191 npts=load_r(nval, rval, nphy, ngrids, hsdon)
193 npts=load_r(nval, rval, nphy, ngrids, c2nnupdon)
195 npts=load_r(nval, rval, ngrids, c2nbac)
197 npts=load_r(nval, rval, ngrids, c2pbac)
199 npts=load_r(nval, rval, ngrids, c2febac)
201 npts=load_r(nval, rval, nbac, ngrids, hsdoc_ba)
203 npts=load_r(nval, rval, nbac, ngrids, gtbac_max)
205 npts=load_r(nval, rval, nbac, ngrids, bactbase)
207 npts=load_r(nval, rval, nbac, ngrids, bactfac)
209 npts=load_r(nval, rval, ngrids, bacdoc)
211 npts=load_r(nval, rval, ngrids, bacpel)
213 npts=load_r(nval, rval, ngrids, baccyc)
215 npts=load_r(nval, rval, ngrids, exbac_c)
217 npts=load_r(nval, rval, ngrids, exbacc2n)
219 npts=load_r(nval, rval, ngrids, bac_ceff)
221 npts=load_r(nval, rval, ngrids, rtnit)
223 npts=load_r(nval, rval, ngrids, hsnit)
225 npts=load_r(nval, rval, ndom, ngrids, cdocfrac_c)
227 npts=load_r(nval, rval, ngrids, rtuvr_dic)
229 npts=load_r(nval, rval, ngrids, rtuvr_doc)
231 npts=load_r(nval, rval, nfec, ngrids, wf)
233 npts=load_r(nval, rval, nfec, ngrids, regtbase)
235 npts=load_r(nval, rval, nfec, ngrids, regtfac)
237 npts=load_r(nval, rval, nfec, ngrids, regcr)
239 npts=load_r(nval, rval, nfec, ngrids, regnr)
241 npts=load_r(nval, rval, nfec, ngrids, regsr)
243 npts=load_r(nval, rval, nfec, ngrids, regpr)
245 npts=load_r(nval, rval, nfec, ngrids, regfr)
247 npts=load_r(nval, rval, nbt, ngrids, rbio)
251 nl_tnu2(i,ng)=rbio(itrc,ng)
255 npts=load_r(nval, rval, nbt, ngrids, rbio)
259 nl_tnu4(i,ng)=rbio(itrc,ng)
263 npts=load_r(nval, rval, nbt, ngrids, rbio)
267 ad_tnu2(i,ng)=rbio(itrc,ng)
268 tl_tnu2(i,ng)=rbio(itrc,ng)
272 npts=load_r(nval, rval, nbt, ngrids, rbio)
276 ad_tnu4(i,ng)=rbio(itrc,ng)
277 tl_tnu4(i,ng)=rbio(itrc,ng)
280 CASE (
'LtracerSponge')
281 npts=load_l(nval, cval, nbt, ngrids, ltrc)
285 ltracersponge(i,ng)=ltrc(itrc,ng)
289 npts=load_r(nval, rval, nbt, ngrids, rbio)
293 akt_bak(i,ng)=rbio(itrc,ng)
297 npts=load_r(nval, rval, nbt, ngrids, rbio)
301 ad_akt_fac(i,ng)=rbio(itrc,ng)
302 tl_akt_fac(i,ng)=rbio(itrc,ng)
306 npts=load_r(nval, rval, nbt, ngrids, rbio)
310 tnudg(i,ng)=rbio(itrc,ng)
314 IF (itracer.lt.nbt)
THEN
320 npts=load_tadv(nval, cval, line, nline, itrc, igrid, &
321 & itracer, idbio(itrcstr), idbio(itrcend), &
322 & vname(1,idtvar(itrc)), &
325 IF (itracer.lt.nbt)
THEN
331 npts=load_tadv(nval, cval, line, nline, itrc, igrid, &
332 & itracer, idbio(itrcstr), idbio(itrcend), &
333 & vname(1,idtvar(itrc)), &
335#if defined ADJOINT || defined TANGENT || defined TL_IOMS
336 CASE (
'ad_Hadvection')
337 IF (itracer.lt.nbt)
THEN
343 npts=load_tadv(nval, cval, line, nline, itrc, igrid, &
344 & itracer, idbio(itrcstr), idbio(itrcend), &
345 & vname(1,idtvar(itrc)), &
348 IF (itracer.lt.(nbt)
THEN
354 npts=load_tadv(nval, cval, line, nline, itrc, igrid, &
355 & itracer, idbio(itrcstr), idbio(itrcend), &
356 & vname(1,idtvar(itrc)), &
361 IF (itracer.lt.nbt)
THEN
366 ifield=istvar(idbio(itracer))
367 npts=load_lbc(nval, cval, line, nline, ifield, igrid, &
368 & idbio(itrcstr), idbio(itrcend), &
369 & vname(1,idtvar(idbio(itracer))), lbc)
370#if defined ADJOINT || defined TANGENT || defined TL_IOMS
371 CASE (
'ad_LBC(isTvar)')
372 IF (itracer.lt.nbt)
THEN
377 ifield=istvar(idbio(itracer))
378 npts=load_lbc(nval, cval, line, nline, ifield, igrid, &
379 & idbio(itrcstr), idbio(itrcend), &
380 & vname(1,idtvar(idbio(itracer))), ad_lbc)
383 npts=load_l(nval, cval, nbt, ngrids, ltrc)
387 ltracersrc(i,ng)=ltrc(itrc,ng)
391 npts=load_l(nval, cval, nbt, ngrids, ltrc)
395 ltracerclm(i,ng)=ltrc(itrc,ng)
399 npts=load_l(nval, cval, nbt, ngrids, ltrc)
403 lnudgetclm(i,ng)=ltrc(itrc,ng)
406 CASE (
'Hout(idTvar)')
407 npts=load_l(nval, cval, nbt, ngrids, ltrc)
410 i=idtvar(idbio(itrc))
412 IF (master)
WRITE (out,30) &
413 &
'idTvar(idbio(', itrc,
'))'
417 hout(i,ng)=ltrc(itrc,ng)
420 CASE (
'Hout(idTsur)')
421 npts=load_l(nval, cval, nbt, ngrids, ltrc)
424 i=idtsur(idbio(itrc))
426 IF (master)
WRITE (out,30) &
427 &
'idTsur(idbio(', itrc,
'))'
431 hout(i,ng)=ltrc(itrc,ng)
434 CASE (
'Qout(idTvar)')
435 npts=load_l(nval, cval, nbt, ngrids, ltrc)
438 i=idtvar(idbio(itrc))
439 qout(i,ng)=ltrc(itrc,ng)
442 CASE (
'Qout(idsurT)')
443 npts=load_l(nval, cval, nbt, ngrids, ltrc)
446 i=idsurt(idbio(itrc))
448 IF (master)
WRITE (out,30) &
449 &
'idsurT(idbio(', itrc,
'))'
453 qout(i,ng)=ltrc(itrc,ng)
456 CASE (
'Qout(idTsur)')
457 npts=load_l(nval, cval, nbt, ngrids, ltrc)
460 i=idtsur(idbio(itrc))
461 qout(i,ng)=ltrc(itrc,ng)
464#if defined AVERAGES || \
465 (defined ad_averages && defined adjoint) || \
466 (defined rp_averages && defined tl_ioms) || \
467 (defined tl_averages && defined tangent)
468 CASE (
'Aout(idTvar)')
469 npts=load_l(nval, cval, nbt, ngrids, ltrc)
472 i=idtvar(idbio(itrc))
473 aout(i,ng)=ltrc(itrc,ng)
476 CASE (
'Aout(idTTav)')
477 npts=load_l(nval, cval, nbt, ngrids, ltrc)
480 i=idttav(idbio(itrc))
481 aout(i,ng)=ltrc(itrc,ng)
484 CASE (
'Aout(idUTav)')
485 npts=load_l(nval, cval, nbt, ngrids, ltrc)
488 i=idutav(idbio(itrc))
489 aout(i,ng)=ltrc(itrc,ng)
492 CASE (
'Aout(idVTav)')
493 npts=load_l(nval, cval, nbt, ngrids, ltrc)
496 i=idvtav(idbio(itrc))
497 aout(i,ng)=ltrc(itrc,ng)
500 CASE (
'Aout(iHUTav)')
501 npts=load_l(nval, cval, nbt, ngrids, ltrc)
504 i=ihutav(idbio(itrc))
505 aout(i,ng)=ltrc(itrc,ng)
508 CASE (
'Aout(iHVTav)')
509 npts=load_l(nval, cval, nbt, ngrids, ltrc)
512 i=ihvtav(idbio(itrc))
513 aout(i,ng)=ltrc(itrc,ng)
518 CASE (
'Dout(iTrate)')
519 npts=load_l(nval, cval, nbt, ngrids, ltrc)
523 dout(iddtrc(itrc,itrate),ng)=ltrc(i,ng)
526 CASE (
'Dout(iThadv)')
527 npts=load_l(nval, cval, nbt, ngrids, ltrc)
531 dout(iddtrc(itrc,ithadv),ng)=ltrc(i,ng)
534 CASE (
'Dout(iTxadv)')
535 npts=load_l(nval, cval, nbt, ngrids, ltrc)
539 dout(iddtrc(itrc,itxadv),ng)=ltrc(i,ng)
542 CASE (
'Dout(iTyadv)')
543 npts=load_l(nval, cval, nbt, ngrids, ltrc)
547 dout(iddtrc(itrc,ityadv),ng)=ltrc(i,ng)
550 CASE (
'Dout(iTvadv)')
551 npts=load_l(nval, cval, nbt, ngrids, ltrc)
555 dout(iddtrc(itrc,itvadv),ng)=ltrc(i,ng)
558# if defined TS_DIF2 || defined TS_DIF4
559 CASE (
'Dout(iThdif)')
560 npts=load_l(nval, cval, nbt, ngrids, ltrc)
564 dout(iddtrc(itrc,ithdif),ng)=ltrc(i,ng)
567 CASE (
'Dout(iTxdif)')
568 npts=load_l(nval, cval, nbt, ngrids, ltrc)
572 dout(iddtrc(itrc,itxdif),ng)=ltrc(i,ng)
575 CASE (
'Dout(iTydif)')
576 npts=load_l(nval, cval, nbt, ngrids, ltrc)
580 dout(iddtrc(itrc,itydif),ng)=ltrc(i,ng)
583# if defined MIX_GEO_TS || defined MIX_ISO_TS
584 CASE (
'Dout(iTsdif)')
585 npts=load_l(nval, cval, nbt, ngrids, ltrc)
589 dout(iddtrc(itrc,itsdif),ng)=ltrc(i,ng)
594 CASE (
'Dout(iTvdif)')
595 npts=load_l(nval, cval, nbt, ngrids, ltrc)
599 dout(iddtrc(itrc,itvdif),ng)=ltrc(i,ng)
603#ifdef DIAGNOSTICS_BIO
604 CASE (
'Dout(idSpIr)')
605 IF (idbio3(idspir).eq.0)
THEN
606 IF (master)
WRITE (out,40)
'iDbio3(idSpIr)'
610 npts=load_l(nval, cval, ngrids, lbio)
615 CASE (
'Dout(iddIrr)')
616 IF (idbio4(iddirr).eq.0)
THEN
617 IF (master)
WRITE (out,40)
'iDbio4(iddIrr)'
621 npts=load_l(nval, cval, ngrids, lbio)
626 CASE (
'Dout(idsIrr)')
627 IF (idbio4(idsirr).eq.0)
THEN
628 IF (master)
WRITE (out,40)
'iDbio4(idsIrr)'
632 npts=load_l(nval, cval, ngrids, lbio)
637 CASE (
'Dout(idLatt)')
638 IF (idbio4(idlatt).eq.0)
THEN
639 IF (master)
WRITE (out,40)
'iDbio4(idLatt)'
643 npts=load_l(nval, cval, ngrids, lbio)
648 CASE (
'Dout(idaPHY)')
649 IF (idbio4(idaphy).eq.0)
THEN
650 IF (master)
WRITE (out,40)
'iDbio4(idaPHY)'
654 npts=load_l(nval, cval, ngrids, lbio)
659 CASE (
'Dout(idaDET)')
660 IF (idbio4(idadet).eq.0)
THEN
661 IF (master)
WRITE (out,40)
'iDbio4(idaDET)'
665 npts=load_l(nval, cval, ngrids, lbio)
670 CASE (
'Dout(idaCDC)')
671 IF (idbio4(idacdc).eq.0)
THEN
672 IF (master)
WRITE (out,40)
'iDbio4(idaCDC)'
676 npts=load_l(nval, cval, ngrids, lbio)
681 CASE (
'Dout(idAcos)')
682 IF (idbio4(idacos).eq.0)
THEN
683 IF (master)
WRITE (out,40)
'iDbio4(idAcos)'
687 npts=load_l(nval, cval, ngrids, lbio)
692 CASE (
'Dout(idbPHY)')
693 IF (idbio4(idbphy).eq.0)
THEN
694 IF (master)
WRITE (out,40)
'iDbio4(idbPHY)'
698 npts=load_l(nval, cval, ngrids, lbio)
703 CASE (
'Dout(idsPHY)')
704 IF (idbio4(idsphy).eq.0)
THEN
705 IF (master)
WRITE (out,40)
'iDbio4(idsPHY)'
709 npts=load_l(nval, cval, ngrids, lbio)
714 CASE (
'Dout(idbTOT)')
715 IF (idbio4(idbtot).eq.0)
THEN
716 IF (master)
WRITE (out,40)
'iDbio4(idbTOT)'
720 npts=load_l(nval, cval, ngrids, lbio)
725 CASE (
'Dout(idsTOT)')
726 IF (idbio4(idstot).eq.0)
THEN
727 IF (master)
WRITE (out,40)
'iDbio4(idsTOT)'
731 npts=load_l(nval, cval, ngrids, lbio)
740 10
IF (master)
WRITE (out,40) line
753 gtalg_max(iphy,ng)=gtalg_max(iphy,ng)*sec2day
754 exalg(iphy,ng)=exalg(iphy,ng)*sec2day
755 hsgrz(iphy,ng)=hsgrz(iphy,ng)*sec2day
756 ws(iphy,ng)=ws(iphy,ng)*sec2day
759 gtbac_max(ibac,ng)=gtbac_max(ibac,ng)*sec2day
762 wf(ifec,ng)=wf(ifec,ng)*sec2day
764 rtnit(ng)=rtnit(ng)*sec2day
771 IF (maxc2nalg(iphy,ng).gt.small)
THEN
772 imaxc2nalg(iphy,ng)=1.0_r8/maxc2nalg(iphy,ng)
774 imaxc2nalg(iphy,ng)=0.0_r8
776 IF (maxc2sialg(iphy,ng).gt.small)
THEN
777 imaxc2sialg(iphy,ng)=1.0_r8/maxc2sialg(iphy,ng)
779 imaxc2sialg(iphy,ng)=0.0_r8
781 IF (maxc2palg(iphy,ng).gt.small)
THEN
782 imaxc2palg(iphy,ng)=1.0_r8/maxc2palg(iphy,ng)
784 imaxc2palg(iphy,ng)=0.0_r8
786 IF (maxc2fealg(iphy,ng).gt.small)
THEN
787 imaxc2fealg(iphy,ng)=1.0_r8/maxc2fealg(iphy,ng)
789 imaxc2fealg(iphy,ng)=0.0_r8
798 hsnh4_ba(ibac,ng)=hsdoc_ba(ibac,ng)/c2nbac(ng)
799 hspo4_ba(ibac,ng)=hsdoc_ba(ibac,ng)/c2pbac(ng)
800 hsfe_ba(ibac,ng)=hsdoc_ba(ibac,ng)/c2febac(ng)
807 n2cbac(ng)=1.0_r8/c2nbac(ng)
808 p2cbac(ng)=1.0_r8/c2pbac(ng)
809 fe2cbac(ng)=1.0_r8/c2febac(ng)
810 i_bac_ceff(ng)=1.0_r8/bac_ceff(ng)
816 r_exbac_c(ng)=1.0_r8/(1.0_r8-exbac_c(ng))
822 exbac_n(ng)=exbac_c(ng)*c2nbac(ng)/exbacc2n(ng)
823 frac_exbac_n(ng)=1.0_r8-exbac_n(ng)
829 rtuvr_dic(ng)=rtuvr_dic(ng)/3600.0_r8
830 rtuvr_doc(ng)=rtuvr_doc(ng)/3600.0_r8
836 IF (regen_flag(ng))
THEN
838 regcr(ifec,ng)=regcr(ifec,ng)*sec2day
839 regnr(ifec,ng)=regnr(ifec,ng)*sec2day
840 regpr(ifec,ng)=regpr(ifec,ng)*sec2day
841 regfr(ifec,ng)=regfr(ifec,ng)*sec2day
842 regsr(ifec,ng)=regsr(ifec,ng)*sec2day
846 regcr(ifec,ng)=0.0_r8
847 regnr(ifec,ng)=0.0_r8
848 regpr(ifec,ng)=0.0_r8
849 regfr(ifec,ng)=0.0_r8
850 regsr(ifec,ng)=0.0_r8
858 wavedp(iband)=(550.0_r8/(397.0_r8+real(iband,r8)*dlam))
863 adoc410(ilab)=adoc(ilab,1)*exp(0.014_r8*(ec_wave_ab(1)-410.0_r8))
864 adoc410(irct)=adoc(irct,1)*exp(0.025_r8*(ec_wave_ab(1)-410.0_r8))
865 adoc300(ilab)=exp(0.0145_r8*(410.0_r8-300.0_r8))
866 adoc300(irct)=exp(0.0145_r8*(410.0_r8-300.0_r8))
868#if defined DIAGNOSTICS && defined DIAGNOSTICS_BIO
873 IF (.not.
allocated(dia_light))
THEN
874 allocate ( dia_light(ndbands) )
875 dmem(1)=dmem(1)+real(ndbands,r8)
879 dia_light(iband)=ec_wave_ab(iband)
887 IF (master.and.lwrite)
THEN
889 IF (lbiology(ng))
THEN
891 WRITE (out,60) bioiter(ng),
'BioIter', &
892 &
'Number of iterations for nonlinear convergence.'
893 WRITE (out,70) rtuvr_flag(ng),
'RtUVR_flag', &
894 &
'Switch to calculate CDOC UV photolysis.'
895 WRITE (out,70) nfix_flag(ng),
'NFIX_flag', &
896 &
'Switch to calculate temperature based N fixation.'
897 WRITE (out,70) regen_flag(ng),
'Regen_flag', &
898 &
'Switch to calculate fecal matter regeneration.'
899 WRITE (out,80)
'HsNO3', &
900 &
'Half-saturation for phytoplankton NO3 uptake', &
901 &
'(micromole_NO3/liter):'
903 WRITE (out,90) hsno3(is,ng), trim(phyname(is))
905 WRITE (out,80)
'HsNH4', &
906 &
'Half-saturation for phytoplankton NH4 uptake', &
907 &
'(micromole_NH4/liter):'
909 WRITE (out,90) hsnh4(is,ng), trim(phyname(is))
911 WRITE (out,80)
'HsSiO', &
912 &
'Half-saturation for phytoplankton SiO uptake', &
913 &
'(micromole_SiO/liter):'
915 WRITE (out,90) hssio(is,ng), trim(phyname(is))
917 WRITE (out,80)
'HsPO4', &
918 &
'Half-saturation for phytoplankton PO4 uptake', &
919 &
'(micromole_PO4/liter):'
921 WRITE (out,90) hspo4(is,ng), trim(phyname(is))
923 WRITE (out,80)
'HsFe', &
924 &
'Half-saturation for phytoplankton Fe uptake', &
925 &
'(micromole_Fe/liter):'
927 WRITE (out,90) hsfe(is,ng), trim(phyname(is))
929 WRITE (out,100)
'GtALG_max', &
930 &
'Maximum 24 hour growth rate (1/day):'
932 WRITE (out,90) gtalg_max(is,ng), trim(phyname(is))
934 WRITE (out,80)
'PhyTbase', &
935 &
'Temperature base for exponential response to', &
936 &
'temperature (Celsius):'
938 WRITE (out,90) phytbase(is,ng), trim(phyname(is))
940 WRITE (out,80)
'PhyTfac', &
941 &
'Phytoplankton exponential temperature factor', &
944 WRITE (out,90) phytfac(is,ng), trim(phyname(is))
946 WRITE (out,100)
'BET_', &
947 &
'Nitrate uptake inhibition for NH4 (l/micromole):'
949 WRITE (out,90) bet_(is,ng), trim(phyname(is))
951 WRITE (out,80)
'maxC2nALG', &
952 &
'Maximum phytoplankton C:N ratio', &
953 &
'(micromole_C/micromole_N):'
955 WRITE (out,90) maxc2nalg(is,ng), trim(phyname(is))
957 WRITE (out,80)
'minC2nALG', &
958 &
'Balanced phytoplankton C:N ratio', &
959 &
'(micromole_C/micromole_N):'
961 WRITE (out,90) minc2nalg(is,ng), trim(phyname(is))
963 WRITE (out,80)
'C2nALGminABS', &
964 &
'Absolute minimum phytoplankton C:N ratio', &
965 &
'(micromole_C/micromole_N):'
967 WRITE (out,90) c2nalgminabs(is,ng), trim(phyname(is))
969 WRITE (out,80)
'maxC2SiALG', &
970 &
'Maximum phytoplankton C:Si ratio', &
971 &
'(micromole_C/micromole_Si)'
973 WRITE (out,90) maxc2sialg(is,ng), trim(phyname(is))
975 WRITE (out,80)
'minC2SiALG', &
976 &
'Balanced phytoplankton C:Si ratio', &
977 &
'(micromole_C/micromole_Si):'
979 WRITE (out,90) minc2sialg(is,ng), trim(phyname(is))
981 WRITE (out,80)
'C2SiALGminABS', &
982 &
'Absolute minimum phytoplankton C:Si ratio', &
983 &
'(micromole_C/micromole_Si):'
985 WRITE (out,90) c2sialgminabs(is,ng), trim(phyname(is))
987 WRITE (out,80)
'maxC2pALG', &
988 &
'Maximum phytoplankton C:P ratio', &
989 &
'(micromole_C/micromole_P):'
991 WRITE (out,90) maxc2palg(is,ng), trim(phyname(is))
993 WRITE (out,80)
'minC2pALG', &
994 &
'Balanced phytoplankton C:P ratio', &
995 &
'(micromole_C/micromole_P):'
997 WRITE (out,90) minc2palg(is,ng), trim(phyname(is))
999 WRITE (out,80)
'C2pALGminABS', &
1000 &
'Absolute minimum phytoplankton C:P ratio', &
1001 &
'(micromole_C/micromole_P)'
1003 WRITE (out,90) c2palgminabs(is,ng), trim(phyname(is))
1005 WRITE (out,80)
'maxC2FeALG', &
1006 &
'Maximum phytoplankton C:Fe ratio', &
1007 &
'(micromole_C/micromole_Fe):'
1009 WRITE (out,90) maxc2fealg(is,ng), trim(phyname(is))
1011 WRITE (out,80)
'minC2FeALG', &
1012 &
'Balanced phytoplankton C:Fe ratio', &
1013 &
'(micromole_C/micromole_Fe):'
1015 WRITE (out,90) minc2fealg(is,ng), trim(phyname(is))
1017 WRITE (out,80)
'C2FeALGminABS', &
1018 &
'Absolute minimum phytoplankton C:Fe ratio', &
1019 &
'(micromole_C/micromole_Fe):'
1021 WRITE (out,90) c2fealgminabs(is,ng), trim(phyname(is))
1023 WRITE (out,80)
'qu_yld', &
1024 &
'Maximum quantum yield', &
1025 &
'(micromole_C/micromole_quanta):'
1027 WRITE (out,90) qu_yld(is,ng), trim(phyname(is))
1029 WRITE (out,100)
'E0_comp', &
1030 &
'Compensation light level (micromole_quanta):'
1032 WRITE (out,90) e0_comp(is,ng), trim(phyname(is))
1034 WRITE (out,80)
'E0_inhib', &
1035 &
'Light level for onset of photoinhibition', &
1036 &
'(micromole_quanta):'
1038 WRITE (out,90) e0_inhib(is,ng), trim(phyname(is))
1040 WRITE (out,80)
'inhib_fac', &
1041 &
'Exponential decay factor for light limited growth', &
1042 &
'(1/micromole_quanta):'
1044 WRITE (out,90) inhib_fac(is,ng), trim(phyname(is))
1046 WRITE (out,80)
'C2CHL_max', &
1047 &
'Maximum lighted limited C:Chl ratio', &
1048 &
'(microgram_C/microgram_Chl):'
1050 WRITE (out,90) c2chl_max(is,ng), trim(phyname(is))
1052 WRITE (out,80)
'mxC2Cl', &
1053 &
'Rate of change in light limited C:Chl ratio', &
1054 &
'(microgram_C/microgram_Chl/micromole_quanta):'
1056 WRITE (out,90) mxc2cl(is,ng), trim(phyname(is))
1058 WRITE (out,80)
'b_C2Cl', &
1059 &
'Minimum lighted limited C:Chl ratio', &
1060 &
'(microgram_C/microgram_Chl):'
1062 WRITE (out,90) b_c2cl(is,ng), trim(phyname(is))
1064 WRITE (out,80)
'mxC2Cn', &
1065 &
'Rate of change in nutient limited C:Chl ratio', &
1066 &
'[(ug_C/ug_Chl)/(umole_C/umole_N)]:'
1068 WRITE (out,90) mxc2cn(is,ng), trim(phyname(is))
1070 WRITE (out,80)
'b_C2Cn', &
1071 &
'Minimum nutrient limited C:Chl ratio', &
1072 &
'(microgram_C/microgram_Chl):'
1074 WRITE (out,90) b_c2cn(is,ng), trim(phyname(is))
1076 WRITE (out,80)
'mxPacEff', &
1077 &
'Rate of change in package effect', &
1078 &
'[1/(microgram_C/microgram_Chl)]:'
1080 WRITE (out,90) mxpaceff(is,ng), trim(phyname(is))
1082 WRITE (out,80)
'b_PacEff', &
1083 &
'Maximum package effect', &
1084 &
'[1/(microgram_C/microgram_Chl)]:'
1086 WRITE (out,90) b_paceff(is,ng), trim(phyname(is))
1088 WRITE (out,80)
'mxChlB', &
1089 &
'Rate of change in the Chl_b:Chl_a ratio', &
1090 &
'[(ug_Chl_b/ug_Chl_a)/(ug_C/ug_Chl_a)]:'
1092 WRITE (out,90) mxchlb(is,ng), trim(phyname(is))
1094 WRITE (out,80)
'b_ChlB', &
1095 &
'Maximum Chl_b:Chl_a ratio', &
1096 &
'(microgram_Chl_b/microgram_Chl_a):'
1098 WRITE (out,90) b_chlb(is,ng), trim(phyname(is))
1100 WRITE (out,80)
'mxChlC', &
1101 &
'Rate of change in the Chl_c:Chl_a ratio', &
1102 &
'[(ug_Chl_c/ug_Chl_a)/(ug_C/ug_Chl_a)]:'
1104 WRITE (out,90) mxchlc(is,ng), trim(phyname(is))
1106 WRITE (out,80)
'b_ChlC', &
1107 &
'Maximum Chl_c:Chl_a ratio', &
1108 &
'(microgram_Chl_c/microgram_Chl_a):'
1110 WRITE (out,90) b_chlc(is,ng), trim(phyname(is))
1112 WRITE (out,80)
'mxPSC', &
1113 &
'Rate of change in the PSC:Chl_a ratio', &
1114 &
'[(ug_PSC/ug_Chl_a)/ug_C/ug_Chl_a)]:'
1116 WRITE (out,90) mxpsc(is,ng), trim(phyname(is))
1118 WRITE (out,80)
'b_PSC', &
1119 &
'Maximum PSC:Chl_a ratio', &
1120 &
'(microgram_PSC/microgram_Chl_a):'
1122 WRITE (out,90) b_psc(is,ng), trim(phyname(is))
1124 WRITE (out,80)
'mxPPC', &
1125 &
'Rate of change in the PPC:Chl_a ratio', &
1126 &
'[(ug_PPC/ug_Chl_a)/(ug_C/ug_Chl_ a)]:'
1128 WRITE (out,90) mxppc(is,ng), trim(phyname(is))
1130 WRITE (out,80)
'b_PPC', &
1131 &
'Maximum PPC:Chl_a ratio', &
1132 &
'(microgram_Chl_c/microgram_Chl_a):'
1134 WRITE (out,90) b_ppc(is,ng), trim(phyname(is))
1136 WRITE (out,80)
'mxLPUb', &
1137 &
'Rate of change in the LPUb:Chl_a ratio', &
1138 &
'[(ug_LPUb/ug_Chl_a)/(ug_C/ug_Chl_a)]:'
1140 WRITE (out,90) mxlpub(is,ng), trim(phyname(is))
1142 WRITE (out,80)
'b_LPUb', &
1143 &
'Maximum LPUb:Chl_a ratio', &
1144 &
'(migrogram_HPUb/microgram_Chl_a):'
1146 WRITE (out,90) b_lpub(is,ng), trim(phyname(is))
1148 WRITE (out,80)
'mxHPUb', &
1149 &
'Rate of change in the HPUb:Chl_a ratio', &
1150 &
'[(ug_HPUb/ug_Chl_a)/(ug_C/ug_Chl_a)]:'
1152 WRITE (out,90) mxhpub(is,ng), trim(phyname(is))
1154 WRITE (out,80)
'b_HPUb', &
1155 &
'Maximum HPUb:Chl_a ratio', &
1156 &
'(microgram_HPUb/microgram_Chl_a):'
1158 WRITE (out,90) b_hpub(is,ng), trim(phyname(is))
1160 WRITE (out,80)
'FecDOC', &
1161 &
'Proportion of grazing stress apportioned to DOM', &
1162 &
'(nondimensional):'
1164 WRITE (out,90) fecdoc(is,ng), trim(phyname(is))
1166 WRITE (out,80)
'FecPEL', &
1167 &
'Proportion of grazing stress apportioned to fecal', &
1168 &
'(nondimensional):'
1171 WRITE (out,110) fecpel(is,i,ng), i, trim(phyname(is))
1174 WRITE (out,80)
'FecCYC', &
1175 &
'Proportion of grazing stress that is recycled', &
1176 &
'(nondimensional):'
1178 WRITE (out,90) feccyc(is,ng), trim(phyname(is))
1180 WRITE (out,80)
'ExALG', &
1181 &
'Proportion of daily production lost to excretion', &
1182 &
'(nondimensional):'
1184 WRITE (out,90) exalg(is,ng), trim(phyname(is))
1186 WRITE (out,100)
'WS', &
1187 &
'Phytoplankton sinking speed (meters/day):'
1189 WRITE (out,90) ws(is,ng), trim(phyname(is))
1191 WRITE (out,100)
'HsGRZ', &
1192 &
'Phytoplankton grazing parameter (nondimensional):'
1194 WRITE (out,90) hsgrz(is,ng), trim(phyname(is))
1196 WRITE (out,100)
'MinRefuge', &
1197 &
'Refuge Phytoplankton population (micromole_C/liter):'
1199 WRITE (out,90) minrefuge(is,ng), trim(phyname(is))
1201 WRITE (out,100)
'RefugeDep', &
1202 &
'Maximum Refuge Phytoplankton depth (meters):'
1204 WRITE (out,90) refugedep(is,ng), trim(phyname(is))
1206 WRITE (out,100)
'Norm_Vol', &
1207 &
'Normalized Volume factor (nondimensional):'
1209 WRITE (out,90) norm_vol(is,ng), trim(phyname(is))
1211 WRITE (out,100)
'Norm_Surf', &
1212 &
'Normalized Surface Area factor (nondimensional):'
1214 WRITE (out,90) norm_surf(is,ng), trim(phyname(is))
1216 WRITE (out,80)
'HsDOP', &
1217 &
'Half Saturation Constant for DOP uptake', &
1218 &
'(micromole_DOP/liter):'
1220 WRITE (out,90) hsdop(is,ng), trim(phyname(is))
1222 WRITE (out,80)
'C2pALKPHOS', &
1223 &
'C:P ratio where DOP uptake begins', &
1224 &
'(micromole_C/micromole_P):'
1226 WRITE (out,90) c2palkphos(is,ng), trim(phyname(is))
1228 WRITE (out,80)
'HsDON', &
1229 &
'Half Saturation Constant for DON uptake', &
1230 &
'(micromole_DON/liter):'
1232 WRITE (out,90) hsdon(is,ng), trim(phyname(is))
1234 WRITE (out,80)
'C2nNupDON', &
1235 &
'C:N ratio where DON uptake begins', &
1236 &
'(micromole_C/micromole_N):'
1238 WRITE (out,90) c2nnupdon(is,ng), trim(phyname(is))
1240 WRITE (out,80)
'HsDOC_ba', &
1241 &
'Half saturation constant for bacteria DOC uptake', &
1242 &
'(micromole_DOC/liter):'
1244 WRITE (out,90) hsdoc_ba(is,ng), trim(bacname(is))
1246 WRITE (out,100)
'GtBAC_max', &
1247 &
'Maximum 24 hour bacterial growth rate (1/day):'
1249 WRITE (out,90) gtbac_max(is,ng), trim(bacname(is))
1251 WRITE (out,80)
'BacTbase', &
1252 &
'Temperature base for exponetial response to', &
1253 &
'temperature (Celsius):'
1255 WRITE (out,90) bactbase(is,ng), trim(bacname(is))
1257 WRITE (out,80)
'BacTfac', &
1258 &
'Bacteria exponential temperature factor', &
1261 WRITE (out,90) bactfac(is,ng), trim(bacname(is))
1263 WRITE (out,120) c2nbac(ng),
'C2nBAC', &
1264 &
'Carbon to Nitrogen ratio of Bacteria', &
1265 &
'(micromole_C/micromole_N).'
1266 WRITE (out,120) c2pbac(ng),
'C2pBAC', &
1267 &
'Carbon to Phosphorus ratio of Bacteria', &
1268 &
'(micromole_C/micromole_P).'
1269 WRITE (out,120) c2febac(ng),
'C2FeBAC', &
1270 &
'Carbon to Iron ratio of Bacteria', &
1271 &
'(micromole_C/micromole_Fe).'
1272 WRITE (out,120) bacdoc(ng),
'BacDOC', &
1273 &
'Proportion of bacteria grazing stress apportioned', &
1274 &
'to DOM (nondimensional).'
1275 WRITE (out,120) bacpel(ng),
'BacPEL', &
1276 &
'Proportion of bacteria grazing stress apportioned', &
1277 &
'to fecal (nondimensional).'
1278 WRITE (out,120) baccyc(ng),
'BacCYC', &
1279 &
'Proportion of bacteria grazing stress recycled', &
1280 &
'(nondimensional).'
1281 WRITE (out,120) exbac_c(ng),
'ExBAC_c', &
1282 &
'Bacterial recalcitrant C excretion as proportion', &
1283 &
'of uptake (nondimensional).'
1284 WRITE (out,120) exbacc2n(ng),
'ExBacC2N', &
1285 &
'Bacterial recalcitrant excretion carbon:nitrogen', &
1286 &
'ratio (micromole_C/micromole_N).'
1287 WRITE (out,120) bac_ceff(ng),
'Bac_Ceff', &
1288 &
'Bacterial gross growth carbon efficiency', &
1289 &
'(nondimensional).'
1290 WRITE (out,130) rtnit(ng),
'RtNIT', &
1291 &
'Maximum nitrification rate (1/day).'
1292 WRITE (out,120) hsnit(ng),
'HsNIT', &
1293 &
'Half saturation constant for bacteria nitrification',&
1294 &
'(micromole_NH4/liter).'
1295 WRITE (out,80)
'cDOCfrac_c', &
1296 &
'Colored fraction of DOC from phytoplakton and', &
1297 &
'bacterial losses (nondimensional):'
1299 WRITE (out,90) cdocfrac_c(is,ng), trim(domname(is))
1301 WRITE (out,120) rtuvr_dic(ng),
'RtUVR_DIC', &
1302 &
'UV degradation of DOC into DIC at 410 nm', &
1303 &
'(micromole/meter/liter/hour).'
1304 WRITE (out,120) rtuvr_doc(ng),
'RtUVR_DOC', &
1305 &
'UV degradation of DOC to colorless labile DOC', &
1306 &
'at 410 nm (micromole/meter/liter/hour).'
1307 WRITE (out,100)
'WF', &
1308 &
'Fecal sinking flux (meters/day):'
1310 WRITE (out,90) wf(is,ng), trim(fecname(is))
1312 WRITE (out,80)
'RegTbase', &
1313 &
'Fecal regeneration temperature base for exponential',&
1314 &
'response to temperature (Celsius):'
1316 WRITE (out,90) regtbase(is,ng), trim(fecname(is))
1318 WRITE (out,80)
'RegTfac', &
1319 &
'Fecal regeneration exponential temperature factor', &
1322 WRITE (out,90) regtfac(is,ng), trim(fecname(is))
1324 WRITE (out,100)
'RegCR', &
1325 &
'Fecal carbon regeneration rate (1/day):'
1327 WRITE (out,90) regcr(is,ng), trim(fecname(is))
1329 WRITE (out,100)
'RegNR', &
1330 &
'Fecal nitrogen regeneration rate (1/day)'
1332 WRITE (out,90) regnr(is,ng), trim(fecname(is))
1334 WRITE (out,100)
'RegSR', &
1335 &
'Fecal silica regeneration rate (1/day):'
1337 WRITE (out,90) regsr(is,ng), trim(fecname(is))
1339 WRITE (out,100)
'RegPR', &
1340 &
'Fecal phosphorus regeneration rate (1/day):'
1342 WRITE (out,90) regpr(is,ng), trim(fecname(is))
1344 WRITE (out,100)
'RegFR', &
1345 &
'Fecal iron regeneration rate (1/day)'
1347 WRITE (out,90) regfr(is,ng), trim(fecname(is))
1352 WRITE (out,140) nl_tnu2(i,ng),
'nl_tnu2', i, &
1353 &
'NLM Horizontal, harmonic mixing coefficient', &
1354 &
'(m2/s) for tracer ', i, trim(vname(1,idtvar(i)))
1356 WRITE (out,140) ad_tnu2(i,ng),
'ad_tnu2', i, &
1357 &
'ADM Horizontal, harmonic mixing coefficient', &
1358 &
'(m2/s) for tracer ', i, trim(vname(1,idtvar(i)))
1360# if defined TANGENT || defined TL_IOMS
1361 WRITE (out,140) tl_tnu2(i,ng),
'tl_tnu2', i, &
1362 &
'TLM Horizontal, harmonic mixing coefficient', &
1363 &
'(m2/s) for tracer ', i, trim(vname(1,idtvar(i)))
1370 WRITE (out,140) nl_tnu4(i,ng),
'nl_tnu4', i, &
1371 &
'NLM Horizontal, biharmonic mixing coefficient', &
1372 &
'(m4/s) for tracer ', i, trim(vname(1,idtvar(i)))
1374 WRITE (out,140) ad_tnu4(i,ng),
'ad_tnu4', i, &
1375 &
'ADM Horizontal, biharmonic mixing coefficient', &
1376 &
'(m4/s) for tracer ', i, trim(vname(1,idtvar(i)))
1378# if defined TANGENT || defined TL_IOMS
1379 WRITE (out,140) tl_tnu4(i,ng),
'tl_tnu4', i, &
1380 &
'TLM Horizontal, biharmonic mixing coefficient', &
1381 &
'(m4/s) for tracer ', i, trim(vname(1,idtvar(i)))
1387 IF (ltracersponge(i,ng))
THEN
1388 WRITE (out,150) ltracersponge(i,ng),
'LtracerSponge', &
1389 & i,
'Turning ON sponge on tracer ', i, &
1390 & trim(vname(1,idtvar(i)))
1392 WRITE (out,150) ltracersponge(i,ng),
'LtracerSponge', &
1393 & i,
'Turning OFF sponge on tracer ', i, &
1394 & trim(vname(1,idtvar(i)))
1399 WRITE (out,140) akt_bak(i,ng),
'Akt_bak', i, &
1400 &
'Background vertical mixing coefficient (m2/s)', &
1401 &
'for tracer ', i, trim(vname(1,idtvar(i)))
1403#ifdef FORWARD_MIXING
1407 WRITE (out,140) ad_akt_fac(i,ng),
'ad_Akt_fac', i, &
1408 &
'ADM basic state vertical mixing scale factor', &
1409 &
'for tracer ', i, trim(vname(1,idtvar(i)))
1411# if defined TANGENT || defined TL_IOMS
1412 WRITE (out,140) tl_akt_fac(i,ng),
'tl_Akt_fac', i, &
1413 &
'TLM basic state vertical mixing scale factor', &
1414 &
'for tracer ', i, trim(vname(1,idtvar(i)))
1420 WRITE (out,140) tnudg(i,ng),
'Tnudg', i, &
1421 &
'Nudging/relaxation time scale (days)', &
1422 &
'for tracer ', i, trim(vname(1,idtvar(i)))
1426 IF (ltracersrc(i,ng))
THEN
1427 WRITE (out,150) ltracersrc(i,ng),
'LtracerSrc', &
1428 & i,
'Turning ON point sources/Sink on tracer ', i, &
1429 & trim(vname(1,idtvar(i)))
1431 WRITE (out,150) ltracersrc(i,ng),
'LtracerSrc', &
1432 & i,
'Turning OFF point sources/Sink on tracer ', i, &
1433 & trim(vname(1,idtvar(i)))
1438 IF (ltracerclm(i,ng))
THEN
1439 WRITE (out,150) ltracerclm(i,ng),
'LtracerCLM', i, &
1440 &
'Turning ON processing of climatology tracer ', i, &
1441 & trim(vname(1,idtvar(i)))
1443 WRITE (out,150) ltracerclm(i,ng),
'LtracerCLM', i, &
1444 &
'Turning OFF processing of climatology tracer ', i, &
1445 & trim(vname(1,idtvar(i)))
1450 IF (lnudgetclm(i,ng))
THEN
1451 WRITE (out,150) lnudgetclm(i,ng),
'LnudgeTCLM', i, &
1452 &
'Turning ON nudging of climatology tracer ', i, &
1453 & trim(vname(1,idtvar(i)))
1455 WRITE (out,150) lnudgetclm(i,ng),
'LnudgeTCLM', i, &
1456 &
'Turning OFF nudging of climatology tracer ', i, &
1457 & trim(vname(1,idtvar(i)))
1460 IF ((nhis(ng).gt.0).and.any(hout(:,ng)))
THEN
1464 IF (hout(idtvar(i),ng))
WRITE (out,160) &
1465 & hout(idtvar(i),ng),
'Hout(idTvar)', &
1466 &
'Write out tracer ', i, trim(vname(1,idtvar(i)))
1470 IF (hout(idtsur(i),ng))
WRITE (out,160) &
1471 & hout(idtsur(i),ng),
'Hout(idTsur)', &
1472 &
'Write out tracer flux ', i, &
1473 & trim(vname(1,idtvar(i)))
1476 IF ((nqck(ng).gt.0).and.any(qout(:,ng)))
THEN
1480 IF (qout(idtvar(i),ng))
WRITE (out,160) &
1481 & qout(idtvar(i),ng),
'Qout(idTvar)', &
1482 &
'Write out tracer ', i, trim(vname(1,idtvar(i)))
1486 IF (qout(idsurt(i),ng))
WRITE (out,160) &
1487 & qout(idsurt(i),ng),
'Qout(idsurT)', &
1488 &
'Write out surface tracer ', i, &
1489 & trim(vname(1,idtvar(i)))
1493 IF (qout(idtsur(i),ng))
WRITE (out,160) &
1494 & qout(idtsur(i),ng),
'Qout(idTsur)', &
1495 &
'Write out tracer flux ', i, &
1496 & trim(vname(1,idtvar(i)))
1499#if defined AVERAGES || \
1500 (defined ad_averages && defined adjoint) || \
1501 (defined rp_averages && defined tl_ioms) || \
1502 (defined tl_averages && defined tangent)
1503 IF ((navg(ng).gt.0).and.any(aout(:,ng)))
THEN
1507 IF (aout(idtvar(i),ng))
WRITE (out,160) &
1508 & aout(idtvar(i),ng),
'Aout(idTvar)', &
1509 &
'Write out averaged tracer ', i, &
1510 & trim(vname(1,idtvar(i)))
1514 IF (aout(idttav(i),ng))
WRITE (out,160) &
1515 & aout(idttav(i),ng),
'Aout(idTTav)', &
1516 &
'Write out averaged <t*t> for tracer ', i, &
1517 & trim(vname(1,idtvar(i)))
1521 IF (aout(idutav(i),ng))
WRITE (out,160) &
1522 & aout(idutav(i),ng),
'Aout(idUTav)', &
1523 &
'Write out averaged <u*t> for tracer ', i, &
1524 & trim(vname(1,idtvar(i)))
1528 IF (aout(idvtav(i),ng))
WRITE (out,160) &
1529 & aout(idvtav(i),ng),
'Aout(idVTav)', &
1530 &
'Write out averaged <v*t> for tracer ', i, &
1531 & trim(vname(1,idtvar(i)))
1535 IF (aout(ihutav(i),ng))
WRITE (out,160) &
1536 & aout(ihutav(i),ng),
'Aout(iHUTav)', &
1537 &
'Write out averaged <Huon*t> for tracer ', i, &
1538 & trim(vname(1,idtvar(i)))
1542 IF (aout(ihvtav(i),ng))
WRITE (out,160) &
1543 & aout(ihvtav(i),ng),
'Aout(iHVTav)', &
1544 &
'Write out averaged <Hvom*t> for tracer ', i, &
1545 & trim(vname(1,idtvar(i)))
1549#ifdef DIAGNOSTICS_TS
1550 IF ((ndia(ng).gt.0).and.any(dout(:,ng)))
THEN
1554 IF (dout(iddtrc(itrc,itrate),ng)) &
1555 &
WRITE (out,160) .true.,
'Dout(iTrate)', &
1556 &
'Write out rate of change of tracer ', itrc, &
1557 & trim(vname(1,idtvar(itrc)))
1561 IF (dout(iddtrc(itrc,ithadv),ng)) &
1562 &
WRITE (out,160) .true.,
'Dout(iThadv)', &
1563 &
'Write out horizontal advection, tracer ', itrc, &
1564 & trim(vname(1,idtvar(itrc)))
1568 IF (dout(iddtrc(itrc,itxadv),ng)) &
1569 &
WRITE (out,160) .true.,
'Dout(iTxadv)', &
1570 &
'Write out horizontal X-advection, tracer ', itrc, &
1571 & trim(vname(1,idtvar(itrc)))
1575 IF (dout(iddtrc(itrc,ityadv),ng)) &
1576 &
WRITE (out,160) .true.,
'Dout(iTyadv)', &
1577 &
'Write out horizontal Y-advection, tracer ', itrc, &
1578 & trim(vname(1,idtvar(itrc)))
1582 IF (dout(iddtrc(itrc,itvadv),ng)) &
1583 &
WRITE (out,160) .true.,
'Dout(iTvadv)', &
1584 &
'Write out vertical advection, tracer ', itrc, &
1585 & trim(vname(1,idtvar(itrc)))
1587# if defined TS_DIF2 || defined TS_DIF4
1590 IF (dout(iddtrc(itrc,ithdif),ng)) &
1591 &
WRITE (out,160) .true.,
'Dout(iThdif)', &
1592 &
'Write out horizontal diffusion, tracer ', itrc, &
1593 & trim(vname(1,idtvar(itrc)))
1597 IF (dout(iddtrc(i,itxdif),ng)) &
1598 &
WRITE (out,160) .true.,
'Dout(iTxdif)', &
1599 &
'Write out horizontal X-diffusion, tracer ', itrc, &
1600 & trim(vname(1,idtvar(itrc)))
1604 IF (dout(iddtrc(itrc,itydif),ng)) &
1605 &
WRITE (out,160) .true.,
'Dout(iTydif)', &
1606 &
'Write out horizontal Y-diffusion, tracer ', itrc, &
1607 & trim(vname(1,idtvar(itrc)))
1609# if defined MIX_GEO_TS || defined MIX_ISO_TS
1612 IF (dout(iddtrc(itrc,itsdif),ng)) &
1613 &
WRITE (out,160) .true.,
'Dout(iTsdif)', &
1614 &
'Write out horizontal S-diffusion, tracer ', itrc, &
1615 & trim(vname(1,idtvar(itrc)))
1621 IF (dout(iddtrc(itrc,itvdif),ng)) &
1622 &
WRITE (out,160) .true.,
'Dout(iTvdif)', &
1623 &
'Write out vertical diffusion, tracer ', itrc, &
1624 & trim(vname(1,idtvar(itrc)))
1628#ifdef DIAGNOSTICS_BIO
1629 IF (ndia(ng).gt.0)
THEN
1632 IF (dout(i,ng))
WRITE (out,170) &
1633 & dout(i,ng),
'Dout(iDbio3)', &
1634 &
'Write out diagnostics for', trim(vname(1,i))
1638 IF (dout(i,ng))
WRITE (out,170) &
1639 & dout(i,ng),
'Dout(iDbio4)', &
1640 &
'Write out diagnostics for', trim(vname(1,i))
1658 nl_tnu4(i,ng)=sqrt(abs(nl_tnu4(i,ng)))
1660 ad_tnu4(i,ng)=sqrt(abs(ad_tnu4(i,ng)))
1662#if defined TANGENT || defined TL_IOMS
1663 tl_tnu4(i,ng)=sqrt(abs(tl_tnu4(i,ng)))
1668 IF (tnudg(i,ng).gt.0.0_r8)
THEN
1669 tnudg(i,ng)=1.0_r8/(tnudg(i,ng)*86400.0_r8)
1676 30
FORMAT (/,
' read_BioPar - variable info not yet loaded, ', &
1678 40
FORMAT (/,
' read_BioPar - Error while processing line: ',/,a)
1679 50
FORMAT (/,/,
' EcoSim Parameters, Grid: ',i2.2, &
1680 & /,
' ===========================',/)
1681 60
FORMAT (1x,i10,2x,a,t32,a)
1682 70
FORMAT (10x,l1,2x,a,t32,a)
1683 80
FORMAT (
'...........',2x,a,t32,a,/,t34,a)
1684 90
FORMAT (1p,e11.4,t33,a)
1685 100
FORMAT (
'...........',2x,a,t32,a)
1686 110
FORMAT (1p,e11.4,t33,
'Fecal Group ',i1,
', ',a)
1687 120
FORMAT (1p,e11.4,2x,a,t32,a,/,t34,a)
1688 130
FORMAT (1p,e11.4,2x,a,t32,a)
1689 140
FORMAT (1p,e11.4,2x,a,
'(',i2.2,
')',t32,a,/,t34,a,i2.2,
':',1x,a)
1690 150
FORMAT (10x,l1,2x,a,
'(',i2.2,
')',t32,a,i2.2,
':',1x,a)
1691 160
FORMAT (10x,l1,2x,a,t32,a,i2.2,
':',1x,a)
1692 170
FORMAT (10x,l1,2x,a,t32,a,1x,a)