27 logical,
intent(in) :: Lwrite
28 integer,
intent(in) :: model, inp, out
33 integer :: iTrcStr, iTrcEnd
34 integer :: i, ifield, igrid, itracer, itrc, ng, nline, status
36 logical,
dimension(NBT,Ngrids) :: Ltrc
38 real(r8),
dimension(NBT,Ngrids) :: Rbio
40 real(dp),
dimension(nRval) :: Rval
42 character (len=40 ) :: KeyWord
43 character (len=256) :: line
44 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 CASE (
'BioIni(iNO3_)')
74 npts=load_r(nval, rval, ngrids, bioini(ino3_,:))
75 CASE (
'BioIni(iPhyt)')
76 npts=load_r(nval, rval, ngrids, bioini(iphyt,:))
77 CASE (
'BioIni(iZoop)')
78 npts=load_r(nval, rval, ngrids, bioini(izoop,:))
79 CASE (
'BioIni(iSDet)')
80 npts=load_r(nval, rval, ngrids, bioini(isdet,:))
83 npts=load_r(nval, rval, ngrids, k_ext)
85 npts=load_r(nval, rval, ngrids, k_no3)
87 npts=load_r(nval, rval, ngrids, k_phy)
89 npts=load_r(nval, rval, ngrids, vm_no3)
91 npts=load_r(nval, rval, ngrids, phymr)
93 npts=load_r(nval, rval, ngrids, zoogr)
95 npts=load_r(nval, rval, ngrids, zoomr)
97 npts=load_r(nval, rval, ngrids, zoomd)
99 npts=load_r(nval, rval, ngrids, zooga)
101 npts=load_r(nval, rval, ngrids, zooec)
103 npts=load_r(nval, rval, ngrids, detrr)
105 npts=load_r(nval, rval, ngrids, wdet)
107 npts=load_r(nval, rval, nbt, ngrids, rbio)
111 nl_tnu2(i,ng)=rbio(itrc,ng)
115 npts=load_r(nval, rval, nbt, ngrids, rbio)
119 nl_tnu4(i,ng)=rbio(itrc,ng)
123 npts=load_r(nval, rval, nbt, ngrids, rbio)
127 ad_tnu2(i,ng)=rbio(itrc,ng)
128 tl_tnu2(i,ng)=rbio(itrc,ng)
132 npts=load_r(nval, rval, nbt, ngrids, rbio)
136 ad_tnu4(i,ng)=rbio(itrc,ng)
137 tl_tnu4(i,ng)=rbio(itrc,ng)
140 CASE (
'LtracerSponge')
141 npts=load_l(nval, cval, nbt, ngrids, ltrc)
145 ltracersponge(i,ng)=ltrc(itrc,ng)
149 npts=load_r(nval, rval, nbt, ngrids, rbio)
153 akt_bak(i,ng)=rbio(itrc,ng)
157 npts=load_r(nval, rval, nbt, ngrids, rbio)
161 ad_akt_fac(i,ng)=rbio(itrc,ng)
162 tl_akt_fac(i,ng)=rbio(itrc,ng)
166 npts=load_r(nval, rval, nbt, ngrids, rbio)
170 tnudg(i,ng)=rbio(itrc,ng)
174 IF (itracer.lt.nbt)
THEN
180 npts=load_tadv(nval, cval, line, nline, itrc, igrid, &
181 & itracer, idbio(itrcstr), idbio(itrcend), &
182 & vname(1,idtvar(itrc)), &
185 IF (itracer.lt.nbt)
THEN
191 npts=load_tadv(nval, cval, line, nline, itrc, igrid, &
192 & itracer, idbio(itrcstr), idbio(itrcend), &
193 & vname(1,idtvar(itrc)), &
195#if defined ADJOINT || defined TANGENT || defined TL_IOMS
196 CASE (
'ad_Hadvection')
197 IF (itracer.lt.nbt)
THEN
203 npts=load_tadv(nval, cval, line, nline, itrc, igrid, &
204 & itracer, idbio(itrcstr), idbio(itrcend), &
205 & vname(1,idtvar(itrc)), &
208 IF (itracer.lt.(nbt)
THEN
214 npts=load_tadv(nval, cval, line, nline, itrc, igrid, &
215 & itracer, idbio(itrcstr), idbio(itrcend), &
216 & vname(1,idtvar(itrc)), &
220 IF (itracer.lt.nbt)
THEN
225 ifield=istvar(idbio(itracer))
226 npts=load_lbc(nval, cval, line, nline, ifield, igrid, &
227 & idbio(itrcstr), idbio(itrcend), &
228 & vname(1,idtvar(idbio(itracer))), lbc)
229#if defined ADJOINT || defined TANGENT || defined TL_IOMS
230 CASE (
'ad_LBC(isTvar)')
231 IF (itracer.lt.nbt)
THEN
236 ifield=istvar(idbio(itracer))
237 npts=load_lbc(nval, cval, line, nline, ifield, igrid, &
238 & idbio(itrcstr), idbio(itrcend), &
239 & vname(1,idtvar(idbio(itracer))), ad_lbc)
242 npts=load_l(nval, cval, nbt, ngrids, ltrc)
246 ltracersrc(i,ng)=ltrc(itrc,ng)
250 npts=load_l(nval, cval, nbt, ngrids, ltrc)
254 ltracerclm(i,ng)=ltrc(itrc,ng)
258 npts=load_l(nval, cval, nbt, ngrids, ltrc)
262 lnudgetclm(i,ng)=ltrc(itrc,ng)
265 CASE (
'Hout(idTvar)')
266 npts=load_l(nval, cval, nbt, ngrids, ltrc)
269 i=idtvar(idbio(itrc))
271 IF (master)
WRITE (out,30) &
272 &
'idTvar(idbio(', itrc,
'))'
276 hout(i,ng)=ltrc(itrc,ng)
279 CASE (
'Hout(idTsur)')
280 npts=load_l(nval, cval, nbt, ngrids, ltrc)
283 i=idtsur(idbio(itrc))
285 IF (master)
WRITE (out,30) &
286 &
'idTsur(idbio(', itrc,
'))'
290 hout(i,ng)=ltrc(itrc,ng)
293 CASE (
'Qout(idTvar)')
294 npts=load_l(nval, cval, nbt, ngrids, ltrc)
297 i=idtvar(idbio(itrc))
298 qout(i,ng)=ltrc(itrc,ng)
301 CASE (
'Qout(idsurT)')
302 npts=load_l(nval, cval, nbt, ngrids, ltrc)
305 i=idsurt(idbio(itrc))
307 IF (master)
WRITE (out,30) &
308 &
'idsurT(idbio(', itrc,
'))'
312 qout(i,ng)=ltrc(itrc,ng)
315 CASE (
'Qout(idTsur)')
316 npts=load_l(nval, cval, nbt, ngrids, ltrc)
319 i=idtsur(idbio(itrc))
320 qout(i,ng)=ltrc(itrc,ng)
323#if defined AVERAGES || \
324 (defined ad_averages && defined adjoint) || \
325 (defined rp_averages && defined tl_ioms) || \
326 (defined tl_averages && defined tangent)
327 CASE (
'Aout(idTvar)')
328 npts=load_l(nval, cval, nbt, ngrids, ltrc)
331 i=idtvar(idbio(itrc))
332 aout(i,ng)=ltrc(itrc,ng)
335 CASE (
'Aout(idTTav)')
336 npts=load_l(nval, cval, nbt, ngrids, ltrc)
339 i=idttav(idbio(itrc))
340 aout(i,ng)=ltrc(itrc,ng)
343 CASE (
'Aout(idUTav)')
344 npts=load_l(nval, cval, nbt, ngrids, ltrc)
347 i=idutav(idbio(itrc))
348 aout(i,ng)=ltrc(itrc,ng)
351 CASE (
'Aout(idVTav)')
352 npts=load_l(nval, cval, nbt, ngrids, ltrc)
355 i=idvtav(idbio(itrc))
356 aout(i,ng)=ltrc(itrc,ng)
359 CASE (
'Aout(iHUTav)')
360 npts=load_l(nval, cval, nbt, ngrids, ltrc)
363 i=ihutav(idbio(itrc))
364 aout(i,ng)=ltrc(itrc,ng)
367 CASE (
'Aout(iHVTav)')
368 npts=load_l(nval, cval, nbt, ngrids, ltrc)
371 i=ihvtav(idbio(itrc))
372 aout(i,ng)=ltrc(itrc,ng)
377 CASE (
'Dout(iTrate)')
378 npts=load_l(nval, cval, nbt, ngrids, ltrc)
382 dout(iddtrc(itrc,itrate),ng)=ltrc(i,ng)
385 CASE (
'Dout(iThadv)')
386 npts=load_l(nval, cval, nbt, ngrids, ltrc)
390 dout(iddtrc(itrc,ithadv),ng)=ltrc(i,ng)
393 CASE (
'Dout(iTxadv)')
394 npts=load_l(nval, cval, nbt, ngrids, ltrc)
398 dout(iddtrc(itrc,itxadv),ng)=ltrc(i,ng)
401 CASE (
'Dout(iTyadv)')
402 npts=load_l(nval, cval, nbt, ngrids, ltrc)
406 dout(iddtrc(itrc,ityadv),ng)=ltrc(i,ng)
409 CASE (
'Dout(iTvadv)')
410 npts=load_l(nval, cval, nbt, ngrids, ltrc)
414 dout(iddtrc(itrc,itvadv),ng)=ltrc(i,ng)
417# if defined TS_DIF2 || defined TS_DIF4
418 CASE (
'Dout(iThdif)')
419 npts=load_l(nval, cval, nbt, ngrids, ltrc)
423 dout(iddtrc(itrc,ithdif),ng)=ltrc(i,ng)
426 CASE (
'Dout(iTxdif)')
427 npts=load_l(nval, cval, nbt, ngrids, ltrc)
431 dout(iddtrc(itrc,itxdif),ng)=ltrc(i,ng)
434 CASE (
'Dout(iTydif)')
435 npts=load_l(nval, cval, nbt, ngrids, ltrc)
439 dout(iddtrc(itrc,itydif),ng)=ltrc(i,ng)
442# if defined MIX_GEO_TS || defined MIX_ISO_TS
443 CASE (
'Dout(iTsdif)')
444 npts=load_l(nval, cval, nbt, ngrids, ltrc)
448 dout(iddtrc(itrc,itsdif),ng)=ltrc(i,ng)
453 CASE (
'Dout(iTvdif)')
454 npts=load_l(nval, cval, nbt, ngrids, ltrc)
458 dout(iddtrc(itrc,itvdif),ng)=ltrc(i,ng)
465 10
IF (master)
WRITE (out,40) line
474 IF (master.and.lwrite)
THEN
476 IF (lbiology(ng))
THEN
478 WRITE (out,60) bioiter(ng),
'BioIter', &
479 &
'Number of iterations for nonlinear convergence.'
481 WRITE (out,70) bioini(ino3_,ng),
'BioIni(iNO3_)', &
482 &
'Nitrate initial concentration (mmol/m3).'
483 WRITE (out,70) bioini(iphyt,ng),
'BioIni(iPhyt)', &
484 &
'Phytoplankton initial concentration (mmol/m3).'
485 WRITE (out,70) bioini(izoop,ng),
'BioIni(iZoop)', &
486 &
'Zooplankton initial concentration (mmol/m3).'
487 WRITE (out,70) bioini(isdet,ng),
'BioIni(iSDet)', &
488 &
'Small detritus initial concentration (mmol/m3).'
490 WRITE (out,70) k_ext(ng),
'K_ext', &
491 &
'Light extinction coefficient (m-1).'
492 WRITE (out,80) k_no3(ng),
'K_NO3', &
493 &
'Inverse half-saturation for phytoplankton NO3', &
494 &
'uptake (1/(mmol m-3)).'
495 WRITE (out,80) k_phy(ng),
'K_Phy', &
496 &
'Phytoplankton saturation coefficient', &
498 WRITE (out,70) vm_no3(ng),
'Vm_NO3', &
499 &
'Nitrate upatake rate (day-1).'
500 WRITE (out,70) phymr(ng),
'PhyMR', &
501 &
'Phytoplankton senescence/mortality rate (day-1)'
502 WRITE (out,70) zoogr(ng),
'ZooGR', &
503 &
'Zooplankton maximum growth rate (day-1).'
504 WRITE (out,70) zoomr(ng),
'ZooMR', &
505 &
'Zooplankton mortality rate (day-1).'
506 WRITE (out,70) zoomd(ng),
'ZooMD', &
507 &
'Zooplankton death bits rate (day-1).'
508 WRITE (out,70) zooga(ng),
'ZooGA', &
509 &
'Zooplankton grazing inefficiency (nondimensional).'
510 WRITE (out,70) zooec(ng),
'ZooEC', &
511 &
'Zooplankton excreted fraction (nondimensional).'
512 WRITE (out,70) detrr(ng),
'DetRR', &
513 &
'Detritus remineralization rate (day-1).'
514 WRITE (out,70) wdet(ng),
'wDet', &
515 &
'Detrital sinking rate (m/day).'
519 WRITE (out,90) nl_tnu2(i,ng),
'nl_tnu2', i, &
520 &
'NLM Horizontal, harmonic mixing coefficient', &
521 &
'(m2/s) for tracer ', i, trim(vname(1,idtvar(i)))
523 WRITE (out,90) ad_tnu2(i,ng),
'ad_tnu2', i, &
524 &
'ADM Horizontal, harmonic mixing coefficient', &
525 &
'(m2/s) for tracer ', i, trim(vname(1,idtvar(i)))
527# if defined TANGENT || defined TL_IOMS
528 WRITE (out,90) tl_tnu2(i,ng),
'tl_tnu2', i, &
529 &
'TLM Horizontal, harmonic mixing coefficient', &
530 &
'(m2/s) for tracer ', i, trim(vname(1,idtvar(i)))
537 WRITE (out,90) nl_tnu4(i,ng),
'nl_tnu4', i, &
538 &
'NLM Horizontal, biharmonic mixing coefficient', &
539 &
'(m4/s) for tracer ', i, trim(vname(1,idtvar(i)))
541 WRITE (out,90) ad_tnu4(i,ng),
'ad_tnu4', i, &
542 &
'ADM Horizontal, biharmonic mixing coefficient', &
543 &
'(m4/s) for tracer ', i, trim(vname(1,idtvar(i)))
545# if defined TANGENT || defined TL_IOMS
546 WRITE (out,90) tl_tnu4(i,ng),
'tl_tnu4', i, &
547 &
'TLM Horizontal, biharmonic mixing coefficient', &
548 &
'(m4/s) for tracer ', i, trim(vname(1,idtvar(i)))
554 IF (ltracersponge(i,ng))
THEN
555 WRITE (out,100) ltracersponge(i,ng),
'LtracerSponge', &
556 & i,
'Turning ON sponge on tracer ', i, &
557 & trim(vname(1,idtvar(i)))
559 WRITE (out,100) ltracersponge(i,ng),
'LtracerSponge', &
560 & i,
'Turning OFF sponge on tracer ', i, &
561 & trim(vname(1,idtvar(i)))
566 WRITE(out,90) akt_bak(i,ng),
'Akt_bak', i, &
567 &
'Background vertical mixing coefficient (m2/s)', &
568 &
'for tracer ', i, trim(vname(1,idtvar(i)))
574 WRITE (out,90) ad_akt_fac(i,ng),
'ad_Akt_fac', i, &
575 &
'ADM basic state vertical mixing scale factor', &
576 &
'for tracer ', i, trim(vname(1,idtvar(i)))
578# if defined TANGENT || defined TL_IOMS
579 WRITE (out,90) tl_akt_fac(i,ng),
'tl_Akt_fac', i, &
580 &
'TLM basic state vertical mixing scale factor', &
581 &
'for tracer ', i, trim(vname(1,idtvar(i)))
587 WRITE (out,90) tnudg(i,ng),
'Tnudg', i, &
588 &
'Nudging/relaxation time scale (days)', &
589 &
'for tracer ', i, trim(vname(1,idtvar(i)))
593 IF (ltracersrc(i,ng))
THEN
594 WRITE (out,100) ltracersrc(i,ng),
'LtracerSrc', &
595 & i,
'Turning ON point sources/Sink on tracer ', i, &
596 & trim(vname(1,idtvar(i)))
598 WRITE (out,100) ltracersrc(i,ng),
'LtracerSrc', &
599 & i,
'Turning OFF point sources/Sink on tracer ', i, &
600 & trim(vname(1,idtvar(i)))
605 IF (ltracerclm(i,ng))
THEN
606 WRITE (out,100) ltracerclm(i,ng),
'LtracerCLM', i, &
607 &
'Turning ON processing of climatology tracer ', i, &
608 & trim(vname(1,idtvar(i)))
610 WRITE (out,100) ltracerclm(i,ng),
'LtracerCLM', i, &
611 &
'Turning OFF processing of climatology tracer ', i, &
612 & trim(vname(1,idtvar(i)))
617 IF (lnudgetclm(i,ng))
THEN
618 WRITE (out,100) lnudgetclm(i,ng),
'LnudgeTCLM', i, &
619 &
'Turning ON nudging of climatology tracer ', i, &
620 & trim(vname(1,idtvar(i)))
622 WRITE (out,100) lnudgetclm(i,ng),
'LnudgeTCLM', i, &
623 &
'Turning OFF nudging of climatology tracer ', i, &
624 & trim(vname(1,idtvar(i)))
627 IF ((nhis(ng).gt.0).and.any(hout(:,ng)))
THEN
631 IF (hout(idtvar(i),ng))
WRITE (out,110) &
632 & hout(idtvar(i),ng),
'Hout(idTvar)', &
633 &
'Write out tracer ', i, trim(vname(1,idtvar(i)))
637 IF (hout(idtsur(i),ng))
WRITE (out,110) &
638 & hout(idtsur(i),ng),
'Hout(idTsur)', &
639 &
'Write out tracer flux ', i, &
640 & trim(vname(1,idtvar(i)))
643 IF ((nqck(ng).gt.0).and.any(qout(:,ng)))
THEN
647 IF (qout(idtvar(i),ng))
WRITE (out,110) &
648 & qout(idtvar(i),ng),
'Qout(idTvar)', &
649 &
'Write out tracer ', i, trim(vname(1,idtvar(i)))
653 IF (qout(idsurt(i),ng))
WRITE (out,110) &
654 & qout(idsurt(i),ng),
'Qout(idsurT)', &
655 &
'Write out surface tracer ', i, &
656 & trim(vname(1,idtvar(i)))
660 IF (qout(idtsur(i),ng))
WRITE (out,110) &
661 & qout(idtsur(i),ng),
'Qout(idTsur)', &
662 &
'Write out tracer flux ', i, &
663 & trim(vname(1,idtvar(i)))
666#if defined AVERAGES || \
667 (defined ad_averages && defined adjoint) || \
668 (defined rp_averages && defined tl_ioms) || \
669 (defined tl_averages && defined tangent)
670 IF ((navg(ng).gt.0).and.any(aout(:,ng)))
THEN
674 IF (aout(idtvar(i),ng))
WRITE (out,110) &
675 & aout(idtvar(i),ng),
'Aout(idTvar)', &
676 &
'Write out averaged tracer ', i, &
677 & trim(vname(1,idtvar(i)))
681 IF (aout(idttav(i),ng))
WRITE (out,110) &
682 & aout(idttav(i),ng),
'Aout(idTTav)', &
683 &
'Write out averaged <t*t> for tracer ', i, &
684 & trim(vname(1,idtvar(i)))
688 IF (aout(idutav(i),ng))
WRITE (out,110) &
689 & aout(idutav(i),ng),
'Aout(idUTav)', &
690 &
'Write out averaged <u*t> for tracer ', i, &
691 & trim(vname(1,idtvar(i)))
695 IF (aout(idvtav(i),ng))
WRITE (out,110) &
696 & aout(idvtav(i),ng),
'Aout(idVTav)', &
697 &
'Write out averaged <v*t> for tracer ', i, &
698 & trim(vname(1,idtvar(i)))
702 IF (aout(ihutav(i),ng))
WRITE (out,110) &
703 & aout(ihutav(i),ng),
'Aout(iHUTav)', &
704 &
'Write out averaged <Huon*t> for tracer ', i, &
705 & trim(vname(1,idtvar(i)))
709 IF (aout(ihvtav(i),ng))
WRITE (out,110) &
710 & aout(ihvtav(i),ng),
'Aout(iHVTav)', &
711 &
'Write out averaged <Hvom*t> for tracer ', i, &
712 & trim(vname(1,idtvar(i)))
717 IF ((ndia(ng).gt.0).and.any(dout(:,ng)))
THEN
721 IF (dout(iddtrc(itrc,itrate),ng)) &
722 &
WRITE (out,110) .true.,
'Dout(iTrate)', &
723 &
'Write out rate of change of tracer ', itrc, &
724 & trim(vname(1,idtvar(itrc)))
728 IF (dout(iddtrc(itrc,ithadv),ng)) &
729 &
WRITE (out,110) .true.,
'Dout(iThadv)', &
730 &
'Write out horizontal advection, tracer ', itrc, &
731 & trim(vname(1,idtvar(itrc)))
735 IF (dout(iddtrc(itrc,itxadv),ng)) &
736 &
WRITE (out,110) .true.,
'Dout(iTxadv)', &
737 &
'Write out horizontal X-advection, tracer ', itrc, &
738 & trim(vname(1,idtvar(itrc)))
742 IF (dout(iddtrc(itrc,ityadv),ng)) &
743 &
WRITE (out,110) .true.,
'Dout(iTyadv)', &
744 &
'Write out horizontal Y-advection, tracer ', itrc, &
745 & trim(vname(1,idtvar(itrc)))
749 IF (dout(iddtrc(itrc,itvadv),ng)) &
750 &
WRITE (out,110) .true.,
'Dout(iTvadv)', &
751 &
'Write out vertical advection, tracer ', itrc, &
752 & trim(vname(1,idtvar(itrc)))
754# if defined TS_DIF2 || defined TS_DIF4
757 IF (dout(iddtrc(itrc,ithdif),ng)) &
758 &
WRITE (out,110) .true.,
'Dout(iThdif)', &
759 &
'Write out horizontal diffusion, tracer ', itrc, &
760 & trim(vname(1,idtvar(itrc)))
764 IF (dout(iddtrc(i,itxdif),ng)) &
765 &
WRITE (out,110) .true.,
'Dout(iTxdif)', &
766 &
'Write out horizontal X-diffusion, tracer ', itrc, &
767 & trim(vname(1,idtvar(itrc)))
771 IF (dout(iddtrc(itrc,itydif),ng)) &
772 &
WRITE (out,110) .true.,
'Dout(iTydif)', &
773 &
'Write out horizontal Y-diffusion, tracer ', itrc, &
774 & trim(vname(1,idtvar(itrc)))
776# if defined MIX_GEO_TS || defined MIX_ISO_TS
779 IF (dout(iddtrc(itrc,itsdif),ng)) &
780 &
WRITE (out,110) .true.,
'Dout(iTsdif)', &
781 &
'Write out horizontal S-diffusion, tracer ', itrc, &
782 & trim(vname(1,idtvar(itrc)))
788 IF (dout(iddtrc(itrc,itvdif),ng)) &
789 &
WRITE (out,110) .true.,
'Dout(iTvdif)', &
790 &
'Write out vertical diffusion, tracer ', itrc, &
791 & trim(vname(1,idtvar(itrc)))
809 nl_tnu4(i,ng)=sqrt(abs(nl_tnu4(i,ng)))
811 ad_tnu4(i,ng)=sqrt(abs(ad_tnu4(i,ng)))
813#if defined TANGENT || defined TL_IOMS
814 tl_tnu4(i,ng)=sqrt(abs(tl_tnu4(i,ng)))
819 IF (tnudg(i,ng).gt.0.0_r8)
THEN
820 tnudg(i,ng)=1.0_r8/(tnudg(i,ng)*86400.0_r8)
827 30
FORMAT (/,
' read_BioPar - variable info not yet loaded, ', &
829 40
FORMAT (/,
' read_BioPar - Error while processing line: ',/,a)
830 50
FORMAT (/,/,
' NPZD Model Parameters, Grid: ',i2.2, &
831 & /,
' ===============================',/)
832 60
FORMAT (1x,i10,2x,a,t32,a)
833 70
FORMAT (1p,e11.4,2x,a,t32,a)
834 80
FORMAT (1p,e11.4,2x,a,t32,a,/,t34,a)
835 90
FORMAT (1p,e11.4,2x,a,
'(',i2.2,
')',t32,a,/,t34,a,i2.2,
':',1x,a)
836 100
FORMAT (10x,l1,2x,a,
'(',i2.2,
')',t32,a,i2.2,
':',1x,a)
837 110
FORMAT (10x,l1,2x,a,t32,a,i2.2,
':',1x,a)