28 logical,
intent(in) :: Lwrite
29 integer,
intent(in) :: model, inp, out
34 integer :: iTrcStr, iTrcEnd
35 integer :: i, ifield, igrid, itracer, itrc, ng, nline, status
37 logical,
dimension(NBT,Ngrids) :: Ltrc
39 real(r8),
dimension(NBT,Ngrids) :: Rbio
41 real(dp),
dimension(nRval) :: Rval
43 character (len=40 ) :: KeyWord
44 character (len=256) :: line
45 character (len=256),
dimension(nCval) :: Cval
65 READ (inp,
'(a)',err=10,
END=20) line
66 status=decode_line(line, keyword, nval, cval, rval)
68 SELECT CASE (trim(keyword))
70 npts=load_l(nval, cval, ngrids, lbiology)
72 npts=load_i(nval, rval, ngrids, bioiter)
74 CASE (
'BioIni(iNO3_)')
75 npts=load_r(nval, rval, ngrids, bioini(ino3_,:))
76 CASE (
'BioIni(iPhyt)')
77 npts=load_r(nval, rval, ngrids, bioini(iphyt,:))
78 CASE (
'BioIni(iZoop)')
79 npts=load_r(nval, rval, ngrids, bioini(izoop,:))
80 CASE (
'BioIni(iSDet)')
81 npts=load_r(nval, rval, ngrids, bioini(isdet,:))
83 CASE (
'BioIni(iFphy)')
84 npts=load_r(nval, rval, ngrids, bioini(ifphy,:))
85 CASE (
'BioIni(iFdis)')
86 npts=load_r(nval, rval, ngrids, bioini(ifdis,:))
90 npts=load_r(nval, rval, ngrids, parfrac)
92 npts=load_r(nval, rval, ngrids, attsw)
94 npts=load_r(nval, rval, ngrids, attphy)
96 npts=load_r(nval, rval, ngrids, phyis)
98 npts=load_r(nval, rval, ngrids, vm_no3)
100 npts=load_r(nval, rval, ngrids, phymrd)
102 npts=load_r(nval, rval, ngrids, phymrn)
104 npts=load_r(nval, rval, ngrids, k_no3)
106 npts=load_r(nval, rval, ngrids, ivlev)
108 npts=load_r(nval, rval, ngrids, zoogr)
110 npts=load_r(nval, rval, ngrids, zooeed)
112 npts=load_r(nval, rval, ngrids, zooeen)
114 npts=load_r(nval, rval, ngrids, zoomrd)
116 npts=load_r(nval, rval, ngrids, zoomrn)
118 npts=load_r(nval, rval, ngrids, detrr)
120 npts=load_r(nval, rval, ngrids, wphy)
122 npts=load_r(nval, rval, ngrids, wdet)
125 npts=load_r(nval, rval, ngrids, t_fe)
127 npts=load_r(nval, rval, ngrids, a_fe)
129 npts=load_r(nval, rval, ngrids, b_fe)
131 npts=load_r(nval, rval, ngrids, k_fec)
133 npts=load_r(nval, rval, ngrids, ferr)
136 npts=load_r(nval, rval, ngrids, fehmin)
138 npts=load_r(nval, rval, ngrids, fenudgtime)
140 npts=load_r(nval, rval, ngrids, femax)
144 npts=load_r(nval, rval, nbt, ngrids, rbio)
148 nl_tnu2(i,ng)=rbio(itrc,ng)
152 npts=load_r(nval, rval, nbt, ngrids, rbio)
156 nl_tnu4(i,ng)=rbio(itrc,ng)
160 npts=load_r(nval, rval, nbt, ngrids, rbio)
164 ad_tnu2(i,ng)=rbio(itrc,ng)
165 tl_tnu2(i,ng)=rbio(itrc,ng)
169 npts=load_r(nval, rval, nbt, ngrids, rbio)
173 ad_tnu4(i,ng)=rbio(itrc,ng)
174 tl_tnu4(i,ng)=rbio(itrc,ng)
177 CASE (
'LtracerSponge')
178 npts=load_l(nval, cval, nbt, ngrids, ltrc)
182 ltracersponge(i,ng)=ltrc(itrc,ng)
186 npts=load_r(nval, rval, nbt, ngrids, rbio)
190 akt_bak(i,ng)=rbio(itrc,ng)
194 npts=load_r(nval, rval, nbt, ngrids, rbio)
198 ad_akt_fac(i,ng)=rbio(itrc,ng)
199 tl_akt_fac(i,ng)=rbio(itrc,ng)
203 npts=load_r(nval, rval, nbt, ngrids, rbio)
207 tnudg(i,ng)=rbio(itrc,ng)
211 IF (itracer.lt.nbt)
THEN
217 npts=load_tadv(nval, cval, line, nline, itrc, igrid, &
218 & itracer, idbio(itrcstr), idbio(itrcend), &
219 & vname(1,idtvar(itrc)), &
222 IF (itracer.lt.nbt)
THEN
228 npts=load_tadv(nval, cval, line, nline, itrc, igrid, &
229 & itracer, idbio(itrcstr), idbio(itrcend), &
230 & vname(1,idtvar(itrc)), &
232#if defined ADJOINT || defined TANGENT || defined TL_IOMS
233 CASE (
'ad_Hadvection')
234 IF (itracer.lt.nbt)
THEN
240 npts=load_tadv(nval, cval, line, nline, itrc, igrid, &
241 & itracer, idbio(itrcstr), idbio(itrcend), &
242 & vname(1,idtvar(itrc)), &
245 IF (itracer.lt.(nbt)
THEN
251 npts=load_tadv(nval, cval, line, nline, itrc, igrid, &
252 & itracer, idbio(itrcstr), idbio(itrcend), &
253 & vname(1,idtvar(itrc)), &
257 IF (itracer.lt.nbt)
THEN
262 ifield=istvar(idbio(itracer))
263 npts=load_lbc(nval, cval, line, nline, ifield, igrid, &
264 & idbio(itrcstr), idbio(itrcend), &
265 & vname(1,idtvar(idbio(itracer))), lbc)
266#if defined ADJOINT || defined TANGENT || defined TL_IOMS
267 CASE (
'ad_LBC(isTvar)')
268 IF (itracer.lt.nbt)
THEN
273 ifield=istvar(idbio(itracer))
274 npts=load_lbc(nval, cval, line, nline, ifield, igrid, &
275 & idbio(itrcstr), idbio(itrcend), &
276 & vname(1,idtvar(idbio(itracer))), ad_lbc)
279 npts=load_l(nval, cval, nbt, ngrids, ltrc)
283 ltracersrc(i,ng)=ltrc(itrc,ng)
287 npts=load_l(nval, cval, nbt, ngrids, ltrc)
291 ltracerclm(i,ng)=ltrc(itrc,ng)
295 npts=load_l(nval, cval, nbt, ngrids, ltrc)
299 lnudgetclm(i,ng)=ltrc(itrc,ng)
302 CASE (
'Hout(idTvar)')
303 npts=load_l(nval, cval, nbt, ngrids, ltrc)
306 i=idtvar(idbio(itrc))
308 IF (master)
WRITE (out,30) &
309 &
'idTvar(idbio(', itrc,
'))'
313 hout(i,ng)=ltrc(itrc,ng)
316 CASE (
'Hout(idTsur)')
317 npts=load_l(nval, cval, nbt, ngrids, ltrc)
320 i=idtsur(idbio(itrc))
322 IF (master)
WRITE (out,30) &
323 &
'idTsur(idbio(', itrc,
'))'
327 hout(i,ng)=ltrc(itrc,ng)
330 CASE (
'Qout(idTvar)')
331 npts=load_l(nval, cval, nbt, ngrids, ltrc)
334 i=idtvar(idbio(itrc))
335 qout(i,ng)=ltrc(itrc,ng)
338 CASE (
'Qout(idsurT)')
339 npts=load_l(nval, cval, nbt, ngrids, ltrc)
342 i=idsurt(idbio(itrc))
344 IF (master)
WRITE (out,30) &
345 &
'idsurT(idbio(', itrc,
'))'
349 qout(i,ng)=ltrc(itrc,ng)
352 CASE (
'Qout(idTsur)')
353 npts=load_l(nval, cval, nbt, ngrids, ltrc)
356 i=idtsur(idbio(itrc))
357 qout(i,ng)=ltrc(itrc,ng)
360#if defined AVERAGES || \
361 (defined ad_averages && defined adjoint) || \
362 (defined rp_averages && defined tl_ioms) || \
363 (defined tl_averages && defined tangent)
364 CASE (
'Aout(idTvar)')
365 npts=load_l(nval, cval, nbt, ngrids, ltrc)
368 i=idtvar(idbio(itrc))
369 aout(i,ng)=ltrc(itrc,ng)
372 CASE (
'Aout(idTTav)')
373 npts=load_l(nval, cval, nbt, ngrids, ltrc)
376 i=idttav(idbio(itrc))
377 aout(i,ng)=ltrc(itrc,ng)
380 CASE (
'Aout(idUTav)')
381 npts=load_l(nval, cval, nbt, ngrids, ltrc)
384 i=idutav(idbio(itrc))
385 aout(i,ng)=ltrc(itrc,ng)
388 CASE (
'Aout(idVTav)')
389 npts=load_l(nval, cval, nbt, ngrids, ltrc)
392 i=idvtav(idbio(itrc))
393 aout(i,ng)=ltrc(itrc,ng)
396 CASE (
'Aout(iHUTav)')
397 npts=load_l(nval, cval, nbt, ngrids, ltrc)
400 i=ihutav(idbio(itrc))
401 aout(i,ng)=ltrc(itrc,ng)
404 CASE (
'Aout(iHVTav)')
405 npts=load_l(nval, cval, nbt, ngrids, ltrc)
408 i=ihvtav(idbio(itrc))
409 aout(i,ng)=ltrc(itrc,ng)
414 CASE (
'Dout(iTrate)')
415 npts=load_l(nval, cval, nbt, ngrids, ltrc)
419 dout(iddtrc(itrc,itrate),ng)=ltrc(i,ng)
422 CASE (
'Dout(iThadv)')
423 npts=load_l(nval, cval, nbt, ngrids, ltrc)
427 dout(iddtrc(itrc,ithadv),ng)=ltrc(i,ng)
430 CASE (
'Dout(iTxadv)')
431 npts=load_l(nval, cval, nbt, ngrids, ltrc)
435 dout(iddtrc(itrc,itxadv),ng)=ltrc(i,ng)
438 CASE (
'Dout(iTyadv)')
439 npts=load_l(nval, cval, nbt, ngrids, ltrc)
443 dout(iddtrc(itrc,ityadv),ng)=ltrc(i,ng)
446 CASE (
'Dout(iTvadv)')
447 npts=load_l(nval, cval, nbt, ngrids, ltrc)
451 dout(iddtrc(itrc,itvadv),ng)=ltrc(i,ng)
454# if defined TS_DIF2 || defined TS_DIF4
455 CASE (
'Dout(iThdif)')
456 npts=load_l(nval, cval, nbt, ngrids, ltrc)
460 dout(iddtrc(itrc,ithdif),ng)=ltrc(i,ng)
463 CASE (
'Dout(iTxdif)')
464 npts=load_l(nval, cval, nbt, ngrids, ltrc)
468 dout(iddtrc(itrc,itxdif),ng)=ltrc(i,ng)
471 CASE (
'Dout(iTydif)')
472 npts=load_l(nval, cval, nbt, ngrids, ltrc)
476 dout(iddtrc(itrc,itydif),ng)=ltrc(i,ng)
479# if defined MIX_GEO_TS || defined MIX_ISO_TS
480 CASE (
'Dout(iTsdif)')
481 npts=load_l(nval, cval, nbt, ngrids, ltrc)
485 dout(iddtrc(itrc,itsdif),ng)=ltrc(i,ng)
490 CASE (
'Dout(iTvdif)')
491 npts=load_l(nval, cval, nbt, ngrids, ltrc)
495 dout(iddtrc(itrc,itvdif),ng)=ltrc(i,ng)
502 10
IF (master)
WRITE (out,40) line
511 IF (master.and.lwrite)
THEN
513 IF (lbiology(ng))
THEN
515 WRITE (out,60) bioiter(ng),
'BioIter', &
516 &
'Number of iterations for nonlinear convergence.'
518 WRITE (out,70) bioini(ino3_,ng),
'BioIni(iNO3_)', &
519 &
'Nitrate initial concentration (mmol/m3).'
520 WRITE (out,70) bioini(iphyt,ng),
'BioIni(iPhyt)', &
521 &
'Phytoplankton initial concentration (mmol/m3).'
522 WRITE (out,70) bioini(izoop,ng),
'BioIni(iZoop)', &
523 &
'Zooplankton initial concentration (mmol/m3).'
524 WRITE (out,70) bioini(isdet,ng),
'BioIni(iSDet)', &
525 &
'Small detritus initial concentration (mmol/m3).'
527 WRITE (out,70) bioini(ifphy,ng),
'BioIni(iFphy)', &
528 &
'Phyto-assoc. Fe initial concentration (mumol/m3).'
529 WRITE (out,70) bioini(ifdis,ng),
'BioIni(iFdis)', &
530 &
'DIssolved Fe initial concentration (mumol/m3).'
533 WRITE (out,80) parfrac(ng),
'PARfrac', &
534 &
'Fraction of shortwave radiation that is', &
535 &
'photosynthetically active (nondimensional).'
536 WRITE (out,70) attsw(ng),
'AttSW', &
537 &
'Light attenuation of seawater (m-1).'
538 WRITE (out,70) attphy(ng),
'AttPhy', &
539 &
'Light attenuation by phytoplankton (m2/mmole_N).'
540 WRITE (out,80) phyis(ng),
'PhyIS', &
541 &
'Phytoplankton growth, initial slope of P-I curve', &
543 WRITE (out,70) vm_no3(ng),
'Vm_NO3', &
544 &
'Nitrate upatake rate (day-1).'
545 WRITE (out,70) phymrd(ng),
'PhyMRD', &
546 &
'Phytoplankton mortality rate to Detritus (day-1)'
547 WRITE (out,70) phymrn(ng),
'PhyMRN', &
548 &
'Phytoplankton mortality rate to Nitrogen (day-1)'
549 WRITE (out,80) k_no3(ng),
'K_NO3', &
550 &
'Inverse half-saturation for phytoplankton NO3', &
551 &
'uptake (1/(mmol m-3)).'
552 WRITE (out,80) ivlev(ng),
'Ivlev', &
553 &
'Ivlev constant for zooplankton grazing', &
554 &
'(nondimensional).'
555 WRITE (out,70) zoogr(ng),
'ZooGR', &
556 &
'Zooplankton maximum growth rate (day-1).'
557 WRITE (out,80) zooeed(ng),
'ZooEED', &
558 &
'Zooplankton excretion efficiency to Detritus', &
559 &
'pool (nondimensional).'
560 WRITE (out,80) zooeen(ng),
'ZooEEN', &
561 &
'Zooplankton excretion efficiency to Nitrogen', &
562 &
'pool (nondimensional).'
563 WRITE (out,70) zoomrd(ng),
'ZooMRD', &
564 &
'Zooplankton mortality rate to Detritus (day-1).'
565 WRITE (out,70) zoomrn(ng),
'ZooMRN', &
566 &
'Zooplankton mortality rate to Nitrogen (day-1).'
567 WRITE (out,70) detrr(ng),
'DetRR', &
568 &
'Detritus remineralization rate (day-1).'
569 WRITE (out,70) wphy(ng),
'wPhy', &
570 &
'Phytoplankton sinking rate (m/day).'
571 WRITE (out,70) wdet(ng),
'wDet', &
572 &
'Detrital sinking rate (m/day).'
574 WRITE (out,70) t_fe(ng),
'T_Fe', &
575 &
'Iron uptake time scale (day-1).'
576 WRITE (out,70) a_fe(ng),
'A_Fe', &
577 &
'Empirical Fe:C power (-).'
578 WRITE (out,70) b_fe(ng),
'B_Fe', &
579 &
'Empirical Fe:C coefficient (1/M-C).'
580 WRITE (out,70) k_fec(ng),
'K_FeC', &
581 &
'Fe:C at F=0.5 (muM-Fe/M-C).'
582 WRITE (out,70) ferr(ng),
'FeRR', &
583 &
'Fe remineralization rate (day-1).'
585 WRITE (out,70) fehmin(ng),
'FeHmin', &
586 &
'Minimum coastal bathymetry (m) for Fe nudging.'
587 WRITE (out,70) fenudgtime(ng),
'FeNudgTime', &
588 &
'Fe nudging time scale (days) at h <= FeHmin.'
589 WRITE (out,70) femax(ng),
'FeMax', &
590 &
'Fe value (mmoles/m3) used in coastal nudging.'
596 WRITE (out,90) nl_tnu2(i,ng),
'nl_tnu2', i, &
597 &
'NLM Horizontal, harmonic mixing coefficient', &
598 &
'(m2/s) for tracer ', i, trim(vname(1,idtvar(i)))
600 WRITE (out,90) ad_tnu2(i,ng),
'ad_tnu2', i, &
601 &
'ADM Horizontal, harmonic mixing coefficient', &
602 &
'(m2/s) for tracer ', i, trim(vname(1,idtvar(i)))
604# if defined TANGENT || defined TL_IOMS
605 WRITE (out,90) tl_tnu2(i,ng),
'tl_tnu2', i, &
606 &
'TLM Horizontal, harmonic mixing coefficient', &
607 &
'(m2/s) for tracer ', i, trim(vname(1,idtvar(i)))
614 WRITE (out,90) nl_tnu4(i,ng),
'nl_tnu4', i, &
615 &
'NLM Horizontal, biharmonic mixing coefficient', &
616 &
'(m4/s) for tracer ', i, trim(vname(1,idtvar(i)))
618 WRITE (out,90) ad_tnu4(i,ng),
'ad_tnu4', i, &
619 &
'ADM Horizontal, biharmonic mixing coefficient', &
620 &
'(m4/s) for tracer ', i, trim(vname(1,idtvar(i)))
622# if defined TANGENT || defined TL_IOMS
623 WRITE (out,90) tl_tnu4(i,ng),
'tl_tnu4', i, &
624 &
'TLM Horizontal, biharmonic mixing coefficient', &
625 &
'(m4/s) for tracer ', i, trim(vname(1,idtvar(i)))
631 IF (ltracersponge(i,ng))
THEN
632 WRITE (out,100) ltracersponge(i,ng),
'LtracerSponge', &
633 & i,
'Turning ON sponge on tracer ', i, &
634 & trim(vname(1,idtvar(i)))
636 WRITE (out,100) ltracersponge(i,ng),
'LtracerSponge', &
637 & i,
'Turning OFF sponge on tracer ', i, &
638 & trim(vname(1,idtvar(i)))
643 WRITE(out,90) akt_bak(i,ng),
'Akt_bak', i, &
644 &
'Background vertical mixing coefficient (m2/s)', &
645 &
'for tracer ', i, trim(vname(1,idtvar(i)))
651 WRITE (out,90) ad_akt_fac(i,ng),
'ad_Akt_fac', i, &
652 &
'ADM basic state vertical mixing scale factor', &
653 &
'for tracer ', i, trim(vname(1,idtvar(i)))
655# if defined TANGENT || defined TL_IOMS
656 WRITE (out,90) tl_akt_fac(i,ng),
'tl_Akt_fac', i, &
657 &
'TLM basic state vertical mixing scale factor', &
658 &
'for tracer ', i, trim(vname(1,idtvar(i)))
664 WRITE (out,90) tnudg(i,ng),
'Tnudg', i, &
665 &
'Nudging/relaxation time scale (days)', &
666 &
'for tracer ', i, trim(vname(1,idtvar(i)))
670 IF (ltracersrc(i,ng))
THEN
671 WRITE (out,100) ltracersrc(i,ng),
'LtracerSrc', &
672 & i,
'Turning ON point sources/Sink on tracer ', i, &
673 & trim(vname(1,idtvar(i)))
675 WRITE (out,100) ltracersrc(i,ng),
'LtracerSrc', &
676 & i,
'Turning OFF point sources/Sink on tracer ', i, &
677 & trim(vname(1,idtvar(i)))
682 IF (ltracerclm(i,ng))
THEN
683 WRITE (out,100) ltracerclm(i,ng),
'LtracerCLM', i, &
684 &
'Turning ON processing of climatology tracer ', i, &
685 & trim(vname(1,idtvar(i)))
687 WRITE (out,100) ltracerclm(i,ng),
'LtracerCLM', i, &
688 &
'Turning OFF processing of climatology tracer ', i, &
689 & trim(vname(1,idtvar(i)))
694 IF (lnudgetclm(i,ng))
THEN
695 WRITE (out,100) lnudgetclm(i,ng),
'LnudgeTCLM', i, &
696 &
'Turning ON nudging of climatology tracer ', i, &
697 & trim(vname(1,idtvar(i)))
699 WRITE (out,100) lnudgetclm(i,ng),
'LnudgeTCLM', i, &
700 &
'Turning OFF nudging of climatology tracer ', i, &
701 & trim(vname(1,idtvar(i)))
704 IF ((nhis(ng).gt.0).and.any(hout(:,ng)))
THEN
708 IF (hout(idtvar(i),ng))
WRITE (out,110) &
709 & hout(idtvar(i),ng),
'Hout(idTvar)', &
710 &
'Write out tracer ', i, trim(vname(1,idtvar(i)))
714 IF (hout(idtsur(i),ng))
WRITE (out,110) &
715 & hout(idtsur(i),ng),
'Hout(idTsur)', &
716 &
'Write out tracer flux ', i, &
717 & trim(vname(1,idtvar(i)))
720 IF ((nqck(ng).gt.0).and.any(qout(:,ng)))
THEN
724 IF (qout(idtvar(i),ng))
WRITE (out,110) &
725 & qout(idtvar(i),ng),
'Qout(idTvar)', &
726 &
'Write out tracer ', i, trim(vname(1,idtvar(i)))
730 IF (qout(idsurt(i),ng))
WRITE (out,110) &
731 & qout(idsurt(i),ng),
'Qout(idsurT)', &
732 &
'Write out surface tracer ', i, &
733 & trim(vname(1,idtvar(i)))
737 IF (qout(idtsur(i),ng))
WRITE (out,110) &
738 & qout(idtsur(i),ng),
'Qout(idTsur)', &
739 &
'Write out tracer flux ', i, &
740 & trim(vname(1,idtvar(i)))
743#if defined AVERAGES || \
744 (defined ad_averages && defined adjoint) || \
745 (defined rp_averages && defined tl_ioms) || \
746 (defined tl_averages && defined tangent)
747 IF ((navg(ng).gt.0).and.any(aout(:,ng)))
THEN
751 IF (aout(idtvar(i),ng))
WRITE (out,110) &
752 & aout(idtvar(i),ng),
'Aout(idTvar)', &
753 &
'Write out averaged tracer ', i, &
754 & trim(vname(1,idtvar(i)))
758 IF (aout(idttav(i),ng))
WRITE (out,110) &
759 & aout(idttav(i),ng),
'Aout(idTTav)', &
760 &
'Write out averaged <t*t> for tracer ', i, &
761 & trim(vname(1,idtvar(i)))
765 IF (aout(idutav(i),ng))
WRITE (out,110) &
766 & aout(idutav(i),ng),
'Aout(idUTav)', &
767 &
'Write out averaged <u*t> for tracer ', i, &
768 & trim(vname(1,idtvar(i)))
772 IF (aout(idvtav(i),ng))
WRITE (out,110) &
773 & aout(idvtav(i),ng),
'Aout(idVTav)', &
774 &
'Write out averaged <v*t> for tracer ', i, &
775 & trim(vname(1,idtvar(i)))
779 IF (aout(ihutav(i),ng))
WRITE (out,110) &
780 & aout(ihutav(i),ng),
'Aout(iHUTav)', &
781 &
'Write out averaged <Huon*t> for tracer ', i, &
782 & trim(vname(1,idtvar(i)))
786 IF (aout(ihvtav(i),ng))
WRITE (out,110) &
787 & aout(ihvtav(i),ng),
'Aout(iHVTav)', &
788 &
'Write out averaged <Hvom*t> for tracer ', i, &
789 & trim(vname(1,idtvar(i)))
794 IF ((ndia(ng).gt.0).and.any(dout(:,ng)))
THEN
798 IF (dout(iddtrc(itrc,itrate),ng)) &
799 &
WRITE (out,110) .true.,
'Dout(iTrate)', &
800 &
'Write out rate of change of tracer ', itrc, &
801 & trim(vname(1,idtvar(itrc)))
805 IF (dout(iddtrc(itrc,ithadv),ng)) &
806 &
WRITE (out,110) .true.,
'Dout(iThadv)', &
807 &
'Write out horizontal advection, tracer ', itrc, &
808 & trim(vname(1,idtvar(itrc)))
812 IF (dout(iddtrc(itrc,itxadv),ng)) &
813 &
WRITE (out,110) .true.,
'Dout(iTxadv)', &
814 &
'Write out horizontal X-advection, tracer ', itrc, &
815 & trim(vname(1,idtvar(itrc)))
819 IF (dout(iddtrc(itrc,ityadv),ng)) &
820 &
WRITE (out,110) .true.,
'Dout(iTyadv)', &
821 &
'Write out horizontal Y-advection, tracer ', itrc, &
822 & trim(vname(1,idtvar(itrc)))
826 IF (dout(iddtrc(itrc,itvadv),ng)) &
827 &
WRITE (out,110) .true.,
'Dout(iTvadv)', &
828 &
'Write out vertical advection, tracer ', itrc, &
829 & trim(vname(1,idtvar(itrc)))
831# if defined TS_DIF2 || defined TS_DIF4
834 IF (dout(iddtrc(itrc,ithdif),ng)) &
835 &
WRITE (out,110) .true.,
'Dout(iThdif)', &
836 &
'Write out horizontal diffusion, tracer ', itrc, &
837 & trim(vname(1,idtvar(itrc)))
841 IF (dout(iddtrc(i,itxdif),ng)) &
842 &
WRITE (out,110) .true.,
'Dout(iTxdif)', &
843 &
'Write out horizontal X-diffusion, tracer ', itrc, &
844 & trim(vname(1,idtvar(itrc)))
848 IF (dout(iddtrc(itrc,itydif),ng)) &
849 &
WRITE (out,110) .true.,
'Dout(iTydif)', &
850 &
'Write out horizontal Y-diffusion, tracer ', itrc, &
851 & trim(vname(1,idtvar(itrc)))
853# if defined MIX_GEO_TS || defined MIX_ISO_TS
856 IF (dout(iddtrc(itrc,itsdif),ng)) &
857 &
WRITE (out,110) .true.,
'Dout(iTsdif)', &
858 &
'Write out horizontal S-diffusion, tracer ', itrc, &
859 & trim(vname(1,idtvar(itrc)))
865 IF (dout(iddtrc(itrc,itvdif),ng)) &
866 &
WRITE (out,110) .true.,
'Dout(iTvdif)', &
867 &
'Write out vertical diffusion, tracer ', itrc, &
868 & trim(vname(1,idtvar(itrc)))
886 nl_tnu4(i,ng)=sqrt(abs(nl_tnu4(i,ng)))
888 ad_tnu4(i,ng)=sqrt(abs(ad_tnu4(i,ng)))
890#if defined TANGENT || defined TL_IOMS
891 tl_tnu4(i,ng)=sqrt(abs(tl_tnu4(i,ng)))
896 IF (tnudg(i,ng).gt.0.0_r8)
THEN
897 tnudg(i,ng)=1.0_r8/(tnudg(i,ng)*86400.0_r8)
904 30
FORMAT (/,
' read_BioPar - variable info not yet loaded, ', &
906 40
FORMAT (/,
' read_BioPar - Error while processing line: ',/,a)
907 50
FORMAT (/,/,
' NPZD-IRON Model Parameters, Grid: ',i2.2, &
908 & /,
' ====================================',/)
909 60
FORMAT (1x,i10,2x,a,t32,a)
910 70
FORMAT (1p,e11.4,2x,a,t32,a)
911 80
FORMAT (1p,e11.4,2x,a,t32,a,/,t34,a)
912 90
FORMAT (1p,e11.4,2x,a,
'(',i2.2,
')',t32,a,/,t34,a,i2.2,
':',1x,a)
913 100
FORMAT (10x,l1,2x,a,
'(',i2.2,
')',t32,a,i2.2,
':',1x,a)
914 110
FORMAT (10x,l1,2x,a,t32,a,i2.2,
':',1x,a)