2
3
4
5
6
7
8
9
10
11
12
13
14
20
22
23 implicit none
24
25
26
27 logical, intent(in) :: Lwrite
28 integer, intent(in) :: model, inp, out
29
30
31
32 integer :: Npts, Nval
33 integer :: iTrcStr, iTrcEnd
34 integer :: i, ifield, igrid, itracer, itrc, ng, nline, status
35
36 logical, dimension(Ngrids) :: Lbio
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 DO WHILE (.true.)
62 READ (inp,'(a)',err=10,END=20) line
64 IF (status.gt.0) THEN
65 SELECT CASE (trim(keyword))
66 CASE ('Lbiology')
68 CASE ('BioIter')
70 CASE ('AttSW')
72 CASE ('AttChl')
74 CASE ('PARfrac')
76 CASE ('Vp0')
78 CASE ('I_thNH4')
80 CASE ('D_p5NH4')
82 CASE ('NitriR')
84 CASE ('K_NO3')
86 CASE ('K_NH4')
88 CASE ('K_PO4')
90 CASE ('K_Phy')
92 CASE ('Chl2C_m')
94 CASE ('ChlMin')
96 CASE ('PhyCN')
98 CASE ('R_P2N')
100 CASE ('PhyIP')
102 CASE ('PhyIS')
104 CASE ('PhyMin')
106 CASE ('PhyMR')
108 CASE ('ZooAE_N')
110 CASE ('ZooBM')
112 CASE ('ZooCN')
114 CASE ('ZooER')
116 CASE ('ZooGR')
118 CASE ('ZooMin')
120 CASE ('ZooMR')
122 CASE ('LDeRRN')
124 CASE ('LDeRRC')
126 CASE ('CoagR')
128 CASE ('SDeRRN')
130 CASE ('SDeRRC')
132 CASE ('RDeRRN')
134 CASE ('RDeRRC')
136 CASE ('wPhy')
138 CASE ('wLDet')
140 CASE ('wSDet')
142 CASE ('pCO2air')
144 CASE ('TNU2')
150 END DO
151 END DO
152 CASE ('TNU4')
158 END DO
159 END DO
160 CASE ('ad_TNU2')
167 END DO
168 END DO
169 CASE ('ad_TNU4')
176 END DO
177 END DO
178 CASE ('LtracerSponge')
184 END DO
185 END DO
186 CASE ('AKT_BAK')
192 END DO
193 END DO
194 CASE ('ad_AKT_fac')
201 END DO
202 END DO
203 CASE ('TNUDG')
208 tnudg(i,ng)=rbio(itrc,ng)
209 END DO
210 END DO
211 CASE ('Hadvection')
212 IF (itracer.lt.
nbt)
THEN
213 itracer=itracer+1
214 ELSE
215 itracer=1
216 END IF
218 npts=
load_tadv(nval, cval, line, nline, itrc, igrid, &
222 CASE ('Vadvection')
223 IF (itracer.lt.
nbt)
THEN
224 itracer=itracer+1
225 ELSE
226 itracer=1
227 END IF
229 npts=
load_tadv(nval, cval, line, nline, itrc, igrid, &
233#if defined ADJOINT || defined TANGENT || defined TL_IOMS
234 CASE ('ad_Hadvection')
235 IF (itracer.lt.
nbt)
THEN
236 itracer=itracer+1
237 ELSE
238 itracer=1
239 END IF
241 npts=
load_tadv(nval, cval, line, nline, itrc, igrid, &
245 CASE ('Vadvection')
246 IF (itracer.lt.(
nbt)
THEN
247 itracer=itracer+1
248 ELSE
249 itracer=1
250 END IF
252 npts=
load_tadv(nval, cval, line, nline, itrc, igrid, &
256#endif
257 CASE ('LBC(isTvar)')
258 IF (itracer.lt.
nbt)
THEN
259 itracer=itracer+1
260 ELSE
261 itracer=1
262 END IF
264 npts=
load_lbc(nval, cval, line, nline, ifield, igrid, &
267#if defined ADJOINT || defined TANGENT || defined TL_IOMS
268 CASE ('ad_LBC(isTvar)')
269 IF (itracer.lt.
nbt)
THEN
270 itracer=itracer+1
271 ELSE
272 itracer=1
273 END IF
275 npts=
load_lbc(nval, cval, line, nline, ifield, igrid, &
278#endif
279 CASE ('LtracerSrc')
285 END DO
286 END DO
287 CASE ('LtracerCLM')
293 END DO
294 END DO
295 CASE ('LnudgeTCLM')
301 END DO
302 END DO
303 CASE ('Hout(idTvar)')
308 IF (i.eq.0) THEN
309 IF (
master)
WRITE (out,30) &
310 & 'idTvar(idbio(', itrc, '))'
312 RETURN
313 END IF
314 hout(i,ng)=ltrc(itrc,ng)
315 END DO
316 END DO
317 CASE ('Hout(idTsur)')
322 IF (i.eq.0) THEN
323 IF (
master)
WRITE (out,30) &
324 & 'idTsur(idbio(', itrc, '))'
326 RETURN
327 END IF
328 hout(i,ng)=ltrc(itrc,ng)
329 END DO
330 END DO
331 CASE ('Qout(idTvar)')
336 qout(i,ng)=ltrc(itrc,ng)
337 END DO
338 END DO
339 CASE ('Qout(idsurT)')
344 IF (i.eq.0) THEN
345 IF (
master)
WRITE (out,30) &
346 & 'idsurT(idbio(', itrc, '))'
348 RETURN
349 END IF
350 qout(i,ng)=ltrc(itrc,ng)
351 END DO
352 END DO
353 CASE ('Qout(idTsur)')
358 qout(i,ng)=ltrc(itrc,ng)
359 END DO
360 END DO
361#if defined AVERAGES || \
362 (defined ad_averages && defined adjoint) || \
363 (defined rp_averages && defined tl_ioms) || \
364 (defined tl_averages && defined tangent)
365 CASE ('Aout(idTvar)')
370 aout(i,ng)=ltrc(itrc,ng)
371 END DO
372 END DO
373 CASE ('Aout(idTTav)')
378 aout(i,ng)=ltrc(itrc,ng)
379 END DO
380 END DO
381 CASE ('Aout(idUTav)')
386 aout(i,ng)=ltrc(itrc,ng)
387 END DO
388 END DO
389 CASE ('Aout(idVTav)')
394 aout(i,ng)=ltrc(itrc,ng)
395 END DO
396 END DO
397 CASE ('Aout(iHUTav)')
402 aout(i,ng)=ltrc(itrc,ng)
403 END DO
404 END DO
405 CASE ('Aout(iHVTav)')
410 aout(i,ng)=ltrc(itrc,ng)
411 END DO
412 END DO
413#endif
414#ifdef DIAGNOSTICS_TS
415 CASE ('Dout(iTrate)')
421 END DO
422 END DO
423 CASE ('Dout(iThadv)')
429 END DO
430 END DO
431 CASE ('Dout(iTxadv)')
437 END DO
438 END DO
439 CASE ('Dout(iTyadv)')
445 END DO
446 END DO
447 CASE ('Dout(iTvadv)')
453 END DO
454 END DO
455# if defined TS_DIF2 || defined TS_DIF4
456 CASE ('Dout(iThdif)')
462 END DO
463 END DO
464 CASE ('Dout(iTxdif)')
470 END DO
471 END DO
472 CASE ('Dout(iTydif)')
478 END DO
479 END DO
480# if defined MIX_GEO_TS || defined MIX_ISO_TS
481 CASE ('Dout(iTsdif)')
487 END DO
488 END DO
489# endif
490# endif
491 CASE ('Dout(iTvdif)')
497 END DO
498 END DO
499#endif
500#ifdef DIAGNOSTICS_BIO
501# ifdef CARBON
502 CASE ('Dout(iCOfx)')
504 IF (
master)
WRITE (out,40)
'iDbio2(iCOfx)'
506 RETURN
507 END IF
512 END DO
513# endif
514# ifdef DENITRIFICATION
515 CASE ('Dout(iDNIT)')
517 IF (
master)
WRITE (out,40)
'iDbio2(iDNIT)'
519 RETURN
520 END IF
525 END DO
526# endif
527# ifdef CARBON
528 CASE ('Dout(ipCO2)')
530 IF (
master)
WRITE (out,40)
'iDbio2(ipCO2)'
532 RETURN
533 END IF
538 END DO
539# endif
540# ifdef OXYGEN
541 CASE ('Dout(iO2fx)')
543 IF (
master)
WRITE (out,40)
'iDbio2(iO2fx)'
545 RETURN
546 END IF
551 END DO
552# endif
553 CASE ('Dout(iPPro)')
555 IF (
master)
WRITE (out,40)
'iDbio3(iPPro)'
557 RETURN
558 END IF
563 END DO
564 CASE ('Dout(iNO3u)')
566 IF (
master)
WRITE (out,40)
'iDbio3(iNO3u)'
568 RETURN
569 END IF
574 END DO
575 CASE ('Dout(iNifx)')
577 IF (
master)
WRITE (out,40)
'iDbio3(iNifx)'
579 RETURN
580 END IF
585 END DO
586#endif
587 END SELECT
588 END IF
589 END DO
590 10
IF (
master)
WRITE (out,50) line
592 RETURN
593 20 CONTINUE
594
595
596
597
598
599 IF (
master.and.lwrite)
THEN
602 WRITE (out,60) ng
603 WRITE (out,70)
bioiter(ng),
'BioIter', &
604 & 'Number of iterations for nonlinear convergence.'
605 WRITE (out,80)
attsw(ng),
'AttSW', &
606 & 'Light attenuation of seawater (m-1).'
607 WRITE (out,80)
attchl(ng),
'AttChl', &
608 & 'Light attenuation by chlorophyll (1/(mg_Chl m-2)).'
609 WRITE (out,90)
parfrac(ng),
'PARfrac', &
610 & 'Fraction of shortwave radiation that is', &
611 & 'photosynthetically active (nondimensional).'
612 WRITE (out,90)
vp0(ng),
'Vp0', &
613 & 'Eppley temperature-limited growth parameter', &
614 & '(nondimensional).'
615 WRITE (out,80)
i_thnh4(ng),
'I_thNH4', &
616 & 'Radiation threshold for nitrification (W/m2).'
617 WRITE (out,80)
d_p5nh4(ng),
'D_p5NH4', &
618 & 'Half-saturation radiation for nitrification (W/m2).'
619 WRITE (out,80)
nitrir(ng),
'NitriR', &
620 & 'Nitrification rate (day-1).'
621 WRITE (out,90)
k_no3(ng),
'K_NO3', &
622 & 'Inverse half-saturation for phytoplankton NO3', &
623 & 'uptake (1/(mmol_N m-3)).'
624 WRITE (out,90)
k_nh4(ng),
'K_NH4', &
625 & 'Inverse half-saturation for phytoplankton NH4', &
626 & 'uptake (1/(mmol_N m-3)).'
627 WRITE (out,90)
k_po4(ng),
'K_PO4', &
628 & 'Inverse half-saturation for phytoplankton PO4', &
629 & 'uptake (1/(mmol_P m-3)).'
630 WRITE (out,90)
k_phy(ng),
'K_Phy', &
631 & 'Zooplankton half-saturation constant for ingestion', &
632 & '(mmol_N m-3)^2.'
633 WRITE (out,80)
chl2c_m(ng),
'Chl2C_m', &
634 & 'Maximum chlorophyll to carbon ratio (mg_Chl/mg_C).'
635 WRITE (out,80)
chlmin(ng),
'ChlMin', &
636 & 'Chlorophyll minimum threshold (mg_Chl/m3).'
637 WRITE (out,80)
phycn(ng),
'PhyCN', &
638 & 'Phytoplankton Carbon:Nitrogen ratio (mol_C/mol_N).'
639 WRITE (out,80)
r_p2n(ng),
'R_P2N', &
640 & 'Phytoplankton P:N ratio (mol_P/mol_N).'
641 WRITE (out,80)
phyip(ng),
'PhyIP', &
642 & 'Phytoplankton NH4 inhibition parameter (1/mmol_N).'
643 WRITE (out,90)
phyis(ng),
'PhyIS', &
644 & 'Phytoplankton growth, initial slope of P-I curve', &
645 & '(mg_C/(mg_Chl Watts m-2 day)).'
646 WRITE (out,80)
phymin(ng),
'PhyMin', &
647 & 'Phytoplankton minimum threshold (mmol_N/m3).'
648 WRITE (out,80)
phymr(ng),
'PhyMR', &
649 & 'Phytoplankton mortality rate (day-1).'
650 WRITE (out,90)
zooae_n(ng),
'ZooAE_N', &
651 & 'Zooplankton nitrogen assimilation efficiency', &
652 & '(nondimensional).'
653 WRITE (out,80)
zoobm(ng),
'ZooBM', &
654 & 'Rate for zooplankton basal metabolism (1/day).'
655 WRITE (out,80)
zoocn(ng),
'ZooCN', &
656 & 'Zooplankton Carbon:Nitrogen ratio (mol_C/mol_N).'
657 WRITE (out,80)
zooer(ng),
'ZooER', &
658 & 'Zooplankton specific excretion rate (day-1).'
659 WRITE (out,80)
zoogr(ng),
'ZooGR', &
660 & 'Zooplankton maximum growth rate (day-1).'
661 WRITE (out,80)
zoomin(ng),
'ZooMin', &
662 & 'Zooplankton minimum threshold (mmol_N/m3).'
663 WRITE (out,80)
zoomr(ng),
'ZooMR', &
664 & 'Zooplankton mortality rate (day-1).'
665 WRITE (out,80)
lderrn(ng),
'LDeRRN', &
666 & 'Large detritus N re-mineralization rate (day-1).'
667 WRITE (out,80)
lderrc(ng),
'LDeRRC', &
668 & 'Large detritus C re-mineralization rate (day-1).'
669 WRITE (out,80)
coagr(ng),
'CoagR', &
670 & 'Coagulation rate (day-1).'
671 WRITE (out,80)
sderrn(ng),
'SDeRRN', &
672 & 'Remineralization rate for small detritus N (day-1).'
673 WRITE (out,80)
sderrc(ng),
'SDeRRC', &
674 & 'Remineralization rate for small detritus C (day-1).'
675 WRITE (out,80)
rderrn(ng),
'RDeRRN', &
676 & 'Remineralization rate for river detritus N (day-1).'
677 WRITE (out,80)
rderrc(ng),
'RDeRRC', &
678 & 'Remineralization rate for river detritus C (day-1).'
679 WRITE (out,80)
wphy(ng),
'wPhy', &
680 & 'Phytoplankton sinking velocity (m/day).'
681 WRITE (out,80)
wldet(ng),
'wLDet', &
682 & 'Large detritus sinking velocity (m/day).'
683 WRITE (out,80)
wsdet(ng),
'wSDet', &
684 & 'Small detritus sinking velocity (m/day).'
685 WRITE (out,80)
pco2air(ng),
'pCO2air', &
686 & 'CO2 partial pressure in air (ppm by volume).'
687#ifdef TS_DIF2
690 WRITE (out,100)
nl_tnu2(i,ng),
'nl_tnu2', i, &
691 & 'NLM Horizontal, harmonic mixing coefficient', &
692 &
'(m2/s) for tracer ', i, trim(
vname(1,
idtvar(i)))
693# ifdef ADJOINT
694 WRITE (out,100)
ad_tnu2(i,ng),
'ad_tnu2', i, &
695 & 'ADM Horizontal, harmonic mixing coefficient', &
696 &
'(m2/s) for tracer ', i, trim(
vname(1,
idtvar(i)))
697# endif
698# if defined TANGENT || defined TL_IOMS
699 WRITE (out,100)
tl_tnu2(i,ng),
'tl_tnu2', i, &
700 & 'TLM Horizontal, harmonic mixing coefficient', &
701 &
'(m2/s) for tracer ', i, trim(
vname(1,
idtvar(i)))
702# endif
703 END DO
704#endif
705#ifdef TS_DIF4
708 WRITE (out,100)
nl_tnu4(i,ng),
'nl_tnu4', i, &
709 & 'NLM Horizontal, biharmonic mixing coefficient', &
710 &
'(m4/s) for tracer ', i, trim(
vname(1,
idtvar(i)))
711# ifdef ADJOINT
712 WRITE (out,100)
ad_tnu4(i,ng),
'ad_tnu4', i, &
713 & 'ADM Horizontal, biharmonic mixing coefficient', &
714 &
'(m4/s) for tracer ', i, trim(
vname(1,
idtvar(i)))
715# endif
716# if defined TANGENT || defined TL_IOMS
717 WRITE (out,100)
tl_tnu4(i,ng),
'tl_tnu4', i, &
718 & 'TLM Horizontal, biharmonic mixing coefficient', &
719 &
'(m4/s) for tracer ', i, trim(
vname(1,
idtvar(i)))
720# endif
721 END DO
722#endif
727 & i, 'Turning ON sponge on tracer ', i, &
729 ELSE
731 & i, 'Turning OFF sponge on tracer ', i, &
733 END IF
734 END DO
737 WRITE(out,100)
akt_bak(i,ng),
'Akt_bak', i, &
738 & 'Background vertical mixing coefficient (m2/s)', &
740 END DO
741#ifdef FORWARD_MIXING
744# ifdef ADJOINT
745 WRITE (out,100)
ad_akt_fac(i,ng),
'ad_Akt_fac', i, &
746 & 'ADM basic state vertical mixing scale factor', &
748# endif
749# if defined TANGENT || defined TL_IOMS
750 WRITE (out,100)
tl_akt_fac(i,ng),
'tl_Akt_fac', i, &
751 & 'TLM basic state vertical mixing scale factor', &
753# endif
754 END DO
755#endif
758 WRITE (out,100)
tnudg(i,ng),
'Tnudg', i, &
759 & 'Nudging/relaxation time scale (days)', &
761 END DO
765 WRITE (out,110)
ltracersrc(i,ng),
'LtracerSrc', &
766 & i, 'Turning ON point sources/Sink on tracer ', i, &
768 ELSE
769 WRITE (out,110)
ltracersrc(i,ng),
'LtracerSrc', &
770 & i, 'Turning OFF point sources/Sink on tracer ', i, &
772 END IF
773 END DO
777 WRITE (out,110)
ltracerclm(i,ng),
'LtracerCLM', i, &
778 & 'Turning ON processing of climatology tracer ', i, &
780 ELSE
781 WRITE (out,110)
ltracerclm(i,ng),
'LtracerCLM', i, &
782 & 'Turning OFF processing of climatology tracer ', i, &
784 END IF
785 END DO
789 WRITE (out,110)
lnudgetclm(i,ng),
'LnudgeTCLM', i, &
790 & 'Turning ON nudging of climatology tracer ', i, &
792 ELSE
793 WRITE (out,110)
lnudgetclm(i,ng),
'LnudgeTCLM', i, &
794 & 'Turning OFF nudging of climatology tracer ', i, &
796 END IF
797 END DO
798 IF ((
nhis(ng).gt.0).and.any(
hout(:,ng)))
THEN
799 WRITE (out,'(1x)')
805 END DO
810 & 'Write out tracer flux ', i, &
812 END DO
813 END IF
814 IF ((
nqck(ng).gt.0).and.any(
qout(:,ng)))
THEN
815 WRITE (out,'(1x)')
821 END DO
826 & 'Write out surface tracer ', i, &
828 END DO
833 & 'Write out tracer flux ', i, &
835 END DO
836 END IF
837#if defined AVERAGES || \
838 (defined ad_averages && defined adjoint) || \
839 (defined rp_averages && defined tl_ioms) || \
840 (defined tl_averages && defined tangent)
841 IF ((
navg(ng).gt.0).and.any(
aout(:,ng)))
THEN
842 WRITE (out,'(1x)')
847 & 'Write out averaged tracer ', i, &
849 END DO
854 & 'Write out averaged <t*t> for tracer ', i, &
856 END DO
861 & 'Write out averaged <u*t> for tracer ', i, &
863 END DO
868 & 'Write out averaged <v*t> for tracer ', i, &
870 END DO
875 & 'Write out averaged <Huon*t> for tracer ', i, &
877 END DO
882 & 'Write out averaged <Hvom*t> for tracer ', i, &
884 END DO
885 END IF
886#endif
887#ifdef DIAGNOSTICS_TS
888 IF ((
ndia(ng).gt.0).and.any(
dout(:,ng)))
THEN
889 WRITE (out,'(1x)')
893 & WRITE (out,120) .true., 'Dout(iTrate)', &
894 & 'Write out rate of change of tracer ', itrc, &
896 END DO
900 & WRITE (out,120) .true., 'Dout(iThadv)', &
901 & 'Write out horizontal advection, tracer ', itrc, &
903 END DO
907 & WRITE (out,120) .true., 'Dout(iTxadv)', &
908 & 'Write out horizontal X-advection, tracer ', itrc, &
910 END DO
914 & WRITE (out,120) .true., 'Dout(iTyadv)', &
915 & 'Write out horizontal Y-advection, tracer ', itrc, &
917 END DO
921 & WRITE (out,120) .true., 'Dout(iTvadv)', &
922 & 'Write out vertical advection, tracer ', itrc, &
924 END DO
925# if defined TS_DIF2 || defined TS_DIF4
929 & WRITE (out,120) .true., 'Dout(iThdif)', &
930 & 'Write out horizontal diffusion, tracer ', itrc, &
932 END DO
936 & WRITE (out,120) .true., 'Dout(iTxdif)', &
937 & 'Write out horizontal X-diffusion, tracer ', itrc, &
939 END DO
943 & WRITE (out,120) .true., 'Dout(iTydif)', &
944 & 'Write out horizontal Y-diffusion, tracer ', itrc, &
946 END DO
947# if defined MIX_GEO_TS || defined MIX_ISO_TS
951 & WRITE (out,120) .true., 'Dout(iTsdif)', &
952 & 'Write out horizontal S-diffusion, tracer ', itrc, &
954 END DO
955# endif
956# endif
960 & WRITE (out,120) .true., 'Dout(iTvdif)', &
961 & 'Write out vertical diffusion, tracer ', itrc, &
963 END DO
964 END IF
965#endif
966#ifdef DIAGNOSTICS_BIO
967 IF (
ndia(ng).gt.0)
THEN
971 IF (
dout(i,ng))
WRITE (out,130) &
972 &
dout(i,ng),
'Dout(iDbio2)', &
973 &
'Write out diagnostics for', trim(
vname(1,i))
974 END DO
975 END IF
978 IF (
dout(i,ng))
WRITE (out,130) &
979 &
dout(i,ng),
'Dout(iDbio3)', &
980 &
'Write out diagnostics for', trim(
vname(1,i))
981 END DO
982 END IF
983#endif
984 END IF
985 END DO
986 END IF
987
988
989
990
991
992
993
994
999#ifdef ADJOINT
1001#endif
1002#if defined TANGENT || defined TL_IOMS
1004#endif
1005
1006
1007
1008 IF (
tnudg(i,ng).gt.0.0_r8)
THEN
1010 ELSE
1012 END IF
1013 END DO
1014 END DO
1015
1016 30 FORMAT (/,' read_BioPar - variable info not yet loaded, ', &
1017 & a,i2.2,a)
1018 40 FORMAT (/,' read_BioPar - variable info not yet loaded, ',a)
1019 50 FORMAT (/,' read_BioPar - Error while processing line: ',/,a)
1020 60 FORMAT (/,/,' Fennel Model Parameters, Grid: ',i2.2, &
1021 & /, ' =================================',/)
1022 70 FORMAT (1x,i10,2x,a,t32,a)
1023 80 FORMAT (1p,e11.4,2x,a,t32,a)
1024 90 FORMAT (1p,e11.4,2x,a,t32,a,/,t34,a)
1025 100 FORMAT (1p,e11.4,2x,a,'(',i2.2,')',t32,a,/,t34,a,i2.2,':',1x,a)
1026 110 FORMAT (10x,l1,2x,a,'(',i2.2,')',t32,a,i2.2,':',1x,a)
1027 120 FORMAT (10x,l1,2x,a,t32,a,i2.2,':',1x,a)
1028 130 FORMAT (10x,l1,2x,a,t32,a,1x,a)
1029
1030 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 k_po4
real(r8), dimension(:), allocatable sderrc
real(r8), dimension(:), allocatable parfrac
real(r8), dimension(:), allocatable zoomr
real(r8), dimension(:), allocatable rderrc
real(r8), dimension(:), allocatable wldet
real(r8), dimension(:), allocatable zoocn
real(r8), dimension(:), allocatable vp0
real(r8), dimension(:), allocatable phyip
real(r8), dimension(:), allocatable sderrn
real(r8), dimension(:), allocatable k_phy
real(r8), dimension(:), allocatable nitrir
real(r8), dimension(:), allocatable r_p2n
integer, dimension(:), allocatable bioiter
real(r8), dimension(:), allocatable k_nh4
real(r8), dimension(:), allocatable phyis
real(r8), dimension(:), allocatable attsw
real(r8), dimension(:), allocatable chlmin
real(r8), dimension(:), allocatable chl2c_m
real(r8), dimension(:), allocatable zoogr
real(r8), dimension(:), allocatable d_p5nh4
real(r8), dimension(:), allocatable rderrn
real(r8), dimension(:), allocatable zoomin
real(r8), dimension(:), allocatable k_no3
real(r8), dimension(:), allocatable wsdet
real(r8), dimension(:), allocatable phymr
real(r8), dimension(:), allocatable phymin
real(r8), dimension(:), allocatable i_thnh4
real(r8), dimension(:), allocatable lderrn
real(r8), dimension(:), allocatable phycn
real(r8), dimension(:), allocatable pco2air
integer, dimension(:), allocatable idbio3
real(r8), dimension(:), allocatable coagr
integer, dimension(:), allocatable idbio
integer, dimension(:), allocatable idbio2
real(r8), dimension(:), allocatable wphy
real(r8), dimension(:), allocatable zooer
real(r8), dimension(:), allocatable lderrc
real(r8), dimension(:), allocatable attchl
real(r8), dimension(:), allocatable zoobm
real(r8), dimension(:), allocatable zooae_n
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