2
3
4
5
6
7
8
9
10
11
12
13
14
15
21
23
24 implicit none
25
26
27
28 logical, intent(in) :: Lwrite
29 integer, intent(in) :: model, inp, out
30
31
32
33 integer :: Npts, Nval
34 integer :: iTrcStr, iTrcEnd
35 integer :: i, ifield, igrid, itracer, itrc, ng, nline, status
36
37 logical, dimension(NBT,Ngrids) :: Ltrc
38
39 real(r8), dimension(NBT,Ngrids) :: Rbio
40
41 real(dp), dimension(nRval) :: Rval
42
43 character (len=40 ) :: KeyWord
44 character (len=256) :: line
45 character (len=256), dimension(nCval) :: Cval
46
47
48
49
50
51 igrid=1
52 itracer=0
53 itrcstr=1
55 nline=0
56
57
58
59
60
61#ifdef ANA_BIOLOGY
63#endif
64 DO WHILE (.true.)
65 READ (inp,'(a)',err=10,END=20) line
67 IF (status.gt.0) THEN
68 SELECT CASE (trim(keyword))
69 CASE ('Lbiology')
71 CASE ('BioIter')
73#ifdef ANA_BIOLOGY
74 CASE ('BioIni(iNO3_)')
76 CASE ('BioIni(iPhyt)')
78 CASE ('BioIni(iZoop)')
80 CASE ('BioIni(iSDet)')
82# ifdef IRON_LIMIT
83 CASE ('BioIni(iFphy)')
85 CASE ('BioIni(iFdis)')
87# endif
88#endif
89 CASE ('PARfrac')
91 CASE ('AttSW')
93 CASE ('AttPhy')
95 CASE ('PhyIS')
97 CASE ('Vm_NO3')
99 CASE ('PhyMRD')
101 CASE ('PhyMRN')
103 CASE ('K_NO3')
105 CASE ('Ivlev')
107 CASE ('ZooGR')
109 CASE ('ZooEED')
111 CASE ('ZooEEN')
113 CASE ('ZooMRD')
115 CASE ('ZooMRN')
117 CASE ('DetRR')
119 CASE ('wPhy')
121 CASE ('wDet')
123#ifdef IRON_LIMIT
124 CASE ('T_Fe')
126 CASE ('A_Fe')
128 CASE ('B_Fe')
130 CASE ('K_FeC')
132 CASE ('FeRR')
134# ifdef IRON_RELAX
135 CASE ('FeHmin')
137 CASE ('FeNudgTime')
139 CASE ('FeMax')
141# endif
142#endif
143 CASE ('TNU2')
149 END DO
150 END DO
151 CASE ('TNU4')
157 END DO
158 END DO
159 CASE ('ad_TNU2')
166 END DO
167 END DO
168 CASE ('ad_TNU4')
175 END DO
176 END DO
177 CASE ('LtracerSponge')
183 END DO
184 END DO
185 CASE ('AKT_BAK')
191 END DO
192 END DO
193 CASE ('ad_AKT_fac')
200 END DO
201 END DO
202 CASE ('TNUDG')
207 tnudg(i,ng)=rbio(itrc,ng)
208 END DO
209 END DO
210 CASE ('Hadvection')
211 IF (itracer.lt.
nbt)
THEN
212 itracer=itracer+1
213 ELSE
214 itracer=1
215 END IF
217 npts=
load_tadv(nval, cval, line, nline, itrc, igrid, &
221 CASE ('Vadvection')
222 IF (itracer.lt.
nbt)
THEN
223 itracer=itracer+1
224 ELSE
225 itracer=1
226 END IF
228 npts=
load_tadv(nval, cval, line, nline, itrc, igrid, &
232#if defined ADJOINT || defined TANGENT || defined TL_IOMS
233 CASE ('ad_Hadvection')
234 IF (itracer.lt.
nbt)
THEN
235 itracer=itracer+1
236 ELSE
237 itracer=1
238 END IF
240 npts=
load_tadv(nval, cval, line, nline, itrc, igrid, &
244 CASE ('Vadvection')
245 IF (itracer.lt.(
nbt)
THEN
246 itracer=itracer+1
247 ELSE
248 itracer=1
249 END IF
251 npts=
load_tadv(nval, cval, line, nline, itrc, igrid, &
255#endif
256 CASE ('LBC(isTvar)')
257 IF (itracer.lt.
nbt)
THEN
258 itracer=itracer+1
259 ELSE
260 itracer=1
261 END IF
263 npts=
load_lbc(nval, cval, line, nline, ifield, igrid, &
266#if defined ADJOINT || defined TANGENT || defined TL_IOMS
267 CASE ('ad_LBC(isTvar)')
268 IF (itracer.lt.
nbt)
THEN
269 itracer=itracer+1
270 ELSE
271 itracer=1
272 END IF
274 npts=
load_lbc(nval, cval, line, nline, ifield, igrid, &
277#endif
278 CASE ('LtracerSrc')
284 END DO
285 END DO
286 CASE ('LtracerCLM')
292 END DO
293 END DO
294 CASE ('LnudgeTCLM')
300 END DO
301 END DO
302 CASE ('Hout(idTvar)')
307 IF (i.eq.0) THEN
308 IF (
master)
WRITE (out,30) &
309 & 'idTvar(idbio(', itrc, '))'
311 RETURN
312 END IF
313 hout(i,ng)=ltrc(itrc,ng)
314 END DO
315 END DO
316 CASE ('Hout(idTsur)')
321 IF (i.eq.0) THEN
322 IF (
master)
WRITE (out,30) &
323 & 'idTsur(idbio(', itrc, '))'
325 RETURN
326 END IF
327 hout(i,ng)=ltrc(itrc,ng)
328 END DO
329 END DO
330 CASE ('Qout(idTvar)')
335 qout(i,ng)=ltrc(itrc,ng)
336 END DO
337 END DO
338 CASE ('Qout(idsurT)')
343 IF (i.eq.0) THEN
344 IF (
master)
WRITE (out,30) &
345 & 'idsurT(idbio(', itrc, '))'
347 RETURN
348 END IF
349 qout(i,ng)=ltrc(itrc,ng)
350 END DO
351 END DO
352 CASE ('Qout(idTsur)')
357 qout(i,ng)=ltrc(itrc,ng)
358 END DO
359 END DO
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)')
369 aout(i,ng)=ltrc(itrc,ng)
370 END DO
371 END DO
372 CASE ('Aout(idTTav)')
377 aout(i,ng)=ltrc(itrc,ng)
378 END DO
379 END DO
380 CASE ('Aout(idUTav)')
385 aout(i,ng)=ltrc(itrc,ng)
386 END DO
387 END DO
388 CASE ('Aout(idVTav)')
393 aout(i,ng)=ltrc(itrc,ng)
394 END DO
395 END DO
396 CASE ('Aout(iHUTav)')
401 aout(i,ng)=ltrc(itrc,ng)
402 END DO
403 END DO
404 CASE ('Aout(iHVTav)')
409 aout(i,ng)=ltrc(itrc,ng)
410 END DO
411 END DO
412#endif
413#ifdef DIAGNOSTICS_TS
414 CASE ('Dout(iTrate)')
420 END DO
421 END DO
422 CASE ('Dout(iThadv)')
428 END DO
429 END DO
430 CASE ('Dout(iTxadv)')
436 END DO
437 END DO
438 CASE ('Dout(iTyadv)')
444 END DO
445 END DO
446 CASE ('Dout(iTvadv)')
452 END DO
453 END DO
454# if defined TS_DIF2 || defined TS_DIF4
455 CASE ('Dout(iThdif)')
461 END DO
462 END DO
463 CASE ('Dout(iTxdif)')
469 END DO
470 END DO
471 CASE ('Dout(iTydif)')
477 END DO
478 END DO
479# if defined MIX_GEO_TS || defined MIX_ISO_TS
480 CASE ('Dout(iTsdif)')
486 END DO
487 END DO
488# endif
489# endif
490 CASE ('Dout(iTvdif)')
496 END DO
497 END DO
498#endif
499 END SELECT
500 END IF
501 END DO
502 10
IF (
master)
WRITE (out,40) line
504 RETURN
505 20 CONTINUE
506
507
508
509
510
511 IF (
master.and.lwrite)
THEN
514 WRITE (out,50) ng
515 WRITE (out,60)
bioiter(ng),
'BioIter', &
516 & 'Number of iterations for nonlinear convergence.'
517#ifdef ANA_BIOLOGY
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).'
526# ifdef IRON_LIMIT
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).'
531# endif
532#endif
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', &
542 & '(m2/W).'
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).'
573#ifdef IRON_LIMIT
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).'
584# ifdef IRON_RELAX
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.'
591# endif
592#endif
593#ifdef TS_DIF2
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)))
599# ifdef ADJOINT
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)))
603# endif
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)))
608# endif
609 END DO
610#endif
611#ifdef TS_DIF4
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)))
617# ifdef ADJOINT
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)))
621# endif
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)))
626# endif
627 END DO
628#endif
633 & i, 'Turning ON sponge on tracer ', i, &
635 ELSE
637 & i, 'Turning OFF sponge on tracer ', i, &
639 END IF
640 END DO
643 WRITE(out,90)
akt_bak(i,ng),
'Akt_bak', i, &
644 & 'Background vertical mixing coefficient (m2/s)', &
646 END DO
647#ifdef FORWARD_MIXING
650# ifdef ADJOINT
651 WRITE (out,90)
ad_akt_fac(i,ng),
'ad_Akt_fac', i, &
652 & 'ADM basic state vertical mixing scale factor', &
654# endif
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', &
659# endif
660 END DO
661#endif
664 WRITE (out,90)
tnudg(i,ng),
'Tnudg', i, &
665 & 'Nudging/relaxation time scale (days)', &
667 END DO
671 WRITE (out,100)
ltracersrc(i,ng),
'LtracerSrc', &
672 & i, 'Turning ON point sources/Sink on tracer ', i, &
674 ELSE
675 WRITE (out,100)
ltracersrc(i,ng),
'LtracerSrc', &
676 & i, 'Turning OFF point sources/Sink on tracer ', i, &
678 END IF
679 END DO
683 WRITE (out,100)
ltracerclm(i,ng),
'LtracerCLM', i, &
684 & 'Turning ON processing of climatology tracer ', i, &
686 ELSE
687 WRITE (out,100)
ltracerclm(i,ng),
'LtracerCLM', i, &
688 & 'Turning OFF processing of climatology tracer ', i, &
690 END IF
691 END DO
695 WRITE (out,100)
lnudgetclm(i,ng),
'LnudgeTCLM', i, &
696 & 'Turning ON nudging of climatology tracer ', i, &
698 ELSE
699 WRITE (out,100)
lnudgetclm(i,ng),
'LnudgeTCLM', i, &
700 & 'Turning OFF nudging of climatology tracer ', i, &
702 END IF
703 END DO
704 IF ((
nhis(ng).gt.0).and.any(
hout(:,ng)))
THEN
705 WRITE (out,'(1x)')
711 END DO
716 & 'Write out tracer flux ', i, &
718 END DO
719 END IF
720 IF ((
nqck(ng).gt.0).and.any(
qout(:,ng)))
THEN
721 WRITE (out,'(1x)')
727 END DO
732 & 'Write out surface tracer ', i, &
734 END DO
739 & 'Write out tracer flux ', i, &
741 END DO
742 END IF
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
748 WRITE (out,'(1x)')
753 & 'Write out averaged tracer ', i, &
755 END DO
760 & 'Write out averaged <t*t> for tracer ', i, &
762 END DO
767 & 'Write out averaged <u*t> for tracer ', i, &
769 END DO
774 & 'Write out averaged <v*t> for tracer ', i, &
776 END DO
781 & 'Write out averaged <Huon*t> for tracer ', i, &
783 END DO
788 & 'Write out averaged <Hvom*t> for tracer ', i, &
790 END DO
791 END IF
792#endif
793#ifdef DIAGNOSTICS_TS
794 IF ((
ndia(ng).gt.0).and.any(
dout(:,ng)))
THEN
795 WRITE (out,'(1x)')
799 & WRITE (out,110) .true., 'Dout(iTrate)', &
800 & 'Write out rate of change of tracer ', itrc, &
802 END DO
806 & WRITE (out,110) .true., 'Dout(iThadv)', &
807 & 'Write out horizontal advection, tracer ', itrc, &
809 END DO
813 & WRITE (out,110) .true., 'Dout(iTxadv)', &
814 & 'Write out horizontal X-advection, tracer ', itrc, &
816 END DO
820 & WRITE (out,110) .true., 'Dout(iTyadv)', &
821 & 'Write out horizontal Y-advection, tracer ', itrc, &
823 END DO
827 & WRITE (out,110) .true., 'Dout(iTvadv)', &
828 & 'Write out vertical advection, tracer ', itrc, &
830 END DO
831# if defined TS_DIF2 || defined TS_DIF4
835 & WRITE (out,110) .true., 'Dout(iThdif)', &
836 & 'Write out horizontal diffusion, tracer ', itrc, &
838 END DO
842 & WRITE (out,110) .true., 'Dout(iTxdif)', &
843 & 'Write out horizontal X-diffusion, tracer ', itrc, &
845 END DO
849 & WRITE (out,110) .true., 'Dout(iTydif)', &
850 & 'Write out horizontal Y-diffusion, tracer ', itrc, &
852 END DO
853# if defined MIX_GEO_TS || defined MIX_ISO_TS
857 & WRITE (out,110) .true., 'Dout(iTsdif)', &
858 & 'Write out horizontal S-diffusion, tracer ', itrc, &
860 END DO
861# endif
862# endif
866 & WRITE (out,110) .true., 'Dout(iTvdif)', &
867 & 'Write out vertical diffusion, tracer ', itrc, &
869 END DO
870 END IF
871#endif
872 END IF
873 END DO
874 END IF
875
876
877
878
879
880
881
882
887#ifdef ADJOINT
889#endif
890#if defined TANGENT || defined TL_IOMS
892#endif
893
894
895
896 IF (
tnudg(i,ng).gt.0.0_r8)
THEN
898 ELSE
900 END IF
901 END DO
902 END DO
903
904 30 FORMAT (/,' read_BioPar - variable info not yet loaded, ', &
905 & a,i2.2,a)
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)
915
916 RETURN
integer function decode_line(line_text, keyword, nval, cval, rval)
integer function load_lbc(ninp, vinp, line, nline, ifield, igrid, itrcstr, itrcend, svname, s)
integer function load_tadv(ninp, vinp, line, nline, itrc, igrid, itracer, itrcstr, itrcend, svname, s)
real(r8), dimension(:), allocatable parfrac
real(r8), dimension(:), allocatable phymrd
real(r8), dimension(:), allocatable zooeed
real(r8), dimension(:), allocatable detrr
real(r8), dimension(:), allocatable ferr
real(r8), dimension(:), allocatable wdet
integer, dimension(:), allocatable bioiter
real(r8), dimension(:), allocatable phyis
real(r8), dimension(:), allocatable attsw
real(r8), dimension(:), allocatable a_fe
real(r8), dimension(:,:), allocatable bioini
real(r8), dimension(:), allocatable zoogr
real(r8), dimension(:), allocatable k_no3
real(r8), dimension(:), allocatable fenudgtime
real(r8), dimension(:), allocatable ivlev
real(r8), dimension(:), allocatable attphy
real(r8), dimension(:), allocatable b_fe
integer, dimension(:), allocatable idbio
real(r8), dimension(:), allocatable wphy
real(r8), dimension(:), allocatable vm_no3
real(r8), dimension(:), allocatable fehmin
real(r8), dimension(:), allocatable k_fec
real(r8), dimension(:), allocatable t_fe
real(r8), dimension(:), allocatable zoomrn
real(r8), dimension(:), allocatable femax
real(r8), dimension(:), allocatable phymrn
real(r8), dimension(:), allocatable zoomrd
real(r8), dimension(:), allocatable zooeen
integer, dimension(:), allocatable idttav
logical, dimension(:,:), allocatable hout
integer, dimension(:), allocatable ihvtav
integer, dimension(:), allocatable ihutav
integer, dimension(:), allocatable idutav
integer, dimension(:), allocatable idsurt
integer, dimension(:), allocatable idtsur
integer, dimension(:), allocatable idtvar
integer, dimension(:), allocatable istvar
logical, dimension(:,:), allocatable qout
character(len=maxlen), dimension(6, 0:nv) vname
integer, dimension(:), allocatable idvtav
logical, dimension(:,:), allocatable dout
logical, dimension(:,:), allocatable aout
integer, dimension(:,:), allocatable iddtrc
type(t_adv), dimension(:,:), allocatable hadvection
type(t_lbc), dimension(:,:,:), allocatable ad_lbc
type(t_adv), dimension(:,:), allocatable ad_hadvection
type(t_lbc), dimension(:,:,:), allocatable lbc
type(t_adv), dimension(:,:), allocatable vadvection
type(t_adv), dimension(:,:), allocatable ad_vadvection
real(r8), dimension(:,:), allocatable tl_tnu2
logical, dimension(:,:), allocatable ltracersrc
real(r8), dimension(:,:), allocatable nl_tnu2
integer, dimension(:), allocatable nqck
real(dp), dimension(:,:), allocatable tnudg
logical, dimension(:,:), allocatable ltracersponge
real(r8), dimension(:,:), allocatable tl_tnu4
integer, dimension(:), allocatable navg
real(r8), dimension(:,:), allocatable ad_akt_fac
real(r8), dimension(:,:), allocatable ad_tnu2
real(r8), dimension(:,:), allocatable akt_bak
integer, dimension(:), allocatable nhis
real(r8), dimension(:,:), allocatable ad_tnu4
real(r8), dimension(:,:), allocatable nl_tnu4
logical, dimension(:), allocatable lbiology
logical, dimension(:,:), allocatable ltracerclm
integer, dimension(:), allocatable ndia
logical, dimension(:,:), allocatable lnudgetclm
real(r8), dimension(:,:), allocatable tl_akt_fac