3*************************************************** hernan g. arango ***
4** copyright(c) 2002-2025 the roms group **
5** licensed under a mit/x style license **
6** see license_roms.md **
7************************************************************************
9** assigns metadata indices for the ecosim bio-optical model **
10** variables that are used in input and
output netcdf files. **
11** the metadata information is
read from
"varinfo.yaml". **
13** this file is included in file
"mod_ncparam.F", routine **
14**
"initialize_ncparm". **
16************************************************************************
20** model state biological tracers.
23 CASE (
'idTvar(iNO3_)')
25 CASE (
'idTvar(iNH4_)')
27 CASE (
'idTvar(iPO4_)')
29 CASE (
'idTvar(iFeO_)')
31 CASE (
'idTvar(iSiO_)')
33 CASE (
'idTvar(iDIC_)')
35 CASE (
'idTvar(iBacC)')
40 idtvar(ibacc(i))=varid
42 fscale(varid,ng)=scale
43 iinfo(1,varid,ng)=gtype
45 WRITE (vname(1,varid),
'(a,i1)') &
46 & trim(adjustl(vinfo(1))), i
47 WRITE (vname(2,varid),
'(a,1x,i1)') &
48 & trim(adjustl(vinfo(2))), i
49 WRITE (vname(3,varid),
'(a)') &
50 & trim(adjustl(vinfo(3)))
51 WRITE (vname(4,varid),
'(a,1x,i1)') &
52 & trim(adjustl(vinfo(4))), i
53 WRITE (vname(5,varid),
'(a)') &
54 & trim(adjustl(vinfo(5)))
55 WRITE (string,
'(a,i1)') trim(adjustl(vinfo(6))), i
56 CALL standardname (vname(6,varid), string, &
57 & suffix=
'_in_sea_water')
60 CASE (
'idTvar(iBacF)')
65 idtvar(ibacf(i))=varid
67 fscale(varid,ng)=scale
68 iinfo(1,varid,ng)=gtype
70 WRITE (vname(1,varid),
'(a,i1)') &
71 & trim(adjustl(vinfo(1))), i
72 WRITE (vname(2,varid),
'(a,1x,i1)') &
73 & trim(adjustl(vinfo(2))), i
74 WRITE (vname(3,varid),
'(a)') &
75 & trim(adjustl(vinfo(3)))
76 WRITE (vname(4,varid),
'(a,1x,i1)') &
77 & trim(adjustl(vinfo(4))), i
78 WRITE (vname(5,varid),
'(a)') &
79 & trim(adjustl(vinfo(5)))
80 WRITE (string,
'(a,i1)') trim(adjustl(vinfo(6))), i
81 CALL standardname (vname(6,varid), string, &
82 & suffix=
'_in_sea_water')
85 CASE (
'idTvar(iBacN)')
90 idtvar(ibacn(i))=varid
92 fscale(varid,ng)=scale
93 iinfo(1,varid,ng)=gtype
95 WRITE (vname(1,varid),
'(a,i1)') &
96 & trim(adjustl(vinfo(1))), i
97 WRITE (vname(2,varid),
'(a,1x,i1)') &
98 & trim(adjustl(vinfo(2))), i
99 WRITE (vname(3,varid),
'(a)') &
100 & trim(adjustl(vinfo(3)))
101 WRITE (vname(4,varid),
'(a,1x,i1)') &
102 & trim(adjustl(vinfo(4))), i
103 WRITE (vname(5,varid),
'(a)') &
104 & trim(adjustl(vinfo(5)))
105 WRITE (string,
'(a,i1)') trim(adjustl(vinfo(6))), i
106 CALL standardname (vname(6,varid), string, &
107 & suffix=
'_in_sea_water')
110 CASE (
'idTvar(iBacP)')
115 idtvar(ibacp(i))=varid
117 fscale(varid,ng)=scale
118 iinfo(1,varid,ng)=gtype
120 WRITE (vname(1,varid),
'(a,i1)') &
121 & trim(adjustl(vinfo(1))), i
122 WRITE (vname(2,varid),
'(a,1x,i1)') &
123 & trim(adjustl(vinfo(2))), i
124 WRITE (vname(3,varid),
'(a)') &
125 & trim(adjustl(vinfo(3)))
126 WRITE (vname(4,varid),
'(a,1x,i1)') &
127 & trim(adjustl(vinfo(4))), i
128 WRITE (vname(5,varid),
'(a)') &
129 & trim(adjustl(vinfo(5)))
130 WRITE (string,
'(a,i1)') trim(adjustl(vinfo(6))), i
131 CALL standardname (vname(6,varid), string, &
132 & suffix=
'_in_sea_water')
135 CASE (
'idTvar(iCDMC)')
140 idtvar(icdmc(i))=varid
142 fscale(varid,ng)=scale
143 iinfo(1,varid,ng)=gtype
145 WRITE (vname(1,varid),
'(a,i1)') &
146 & trim(adjustl(vinfo(1))), i
147 WRITE (vname(2,varid),
'(a,1x,i1)') &
148 & trim(adjustl(vinfo(2))), i
149 WRITE (vname(3,varid),
'(a)') &
150 & trim(adjustl(vinfo(3)))
151 WRITE (vname(4,varid),
'(a,1x,i1)') &
152 & trim(adjustl(vinfo(4))), i
153 WRITE (vname(5,varid),
'(a)') &
154 & trim(adjustl(vinfo(5)))
155 WRITE (string,
'(a,i1)') trim(adjustl(vinfo(6))), i
156 CALL standardname (vname(6,varid), string, &
157 & suffix=
'_in_sea_water')
160 CASE (
'idTvar(iDOMC)')
165 idtvar(idomc(i))=varid
167 fscale(varid,ng)=scale
168 iinfo(1,varid,ng)=gtype
170 WRITE (vname(1,varid),
'(a,i1)') &
171 & trim(adjustl(vinfo(1))), i
172 WRITE (vname(2,varid),
'(a,1x,i1)') &
173 & trim(adjustl(vinfo(2))), i
174 WRITE (vname(3,varid),
'(a)') &
175 & trim(adjustl(vinfo(3)))
176 WRITE (vname(4,varid),
'(a,1x,i1)') &
177 & trim(adjustl(vinfo(4))), i
178 WRITE (vname(5,varid),
'(a)') &
179 & trim(adjustl(vinfo(5)))
180 WRITE (string,
'(a,i1)') trim(adjustl(vinfo(6))), i
181 CALL standardname (vname(6,varid), string, &
182 & suffix=
'_in_sea_water')
185 CASE (
'idTvar(iDOMN)')
190 idtvar(idomn(i))=varid
192 fscale(varid,ng)=scale
193 iinfo(1,varid,ng)=gtype
195 WRITE (vname(1,varid),
'(a,i1)') &
196 & trim(adjustl(vinfo(1))), i
197 WRITE (vname(2,varid),
'(a,1x,i1)') &
198 & trim(adjustl(vinfo(2))), i
199 WRITE (vname(3,varid),
'(a)') &
200 & trim(adjustl(vinfo(3)))
201 WRITE (vname(4,varid),
'(a,1x,i1)') &
202 & trim(adjustl(vinfo(4))), i
203 WRITE (vname(5,varid),
'(a)') &
204 & trim(adjustl(vinfo(5)))
205 WRITE (string,
'(a,i1)') trim(adjustl(vinfo(6))), i
206 CALL standardname (vname(6,varid), string, &
207 & suffix=
'_in_sea_water')
210 CASE (
'idTvar(iDOMP)')
215 idtvar(idomp(i))=varid
217 fscale(varid,ng)=scale
218 iinfo(1,varid,ng)=gtype
220 WRITE (vname(1,varid),
'(a,i1)') &
221 & trim(adjustl(vinfo(1))), i
222 WRITE (vname(2,varid),
'(a,1x,i1)') &
223 & trim(adjustl(vinfo(2))), i
224 WRITE (vname(3,varid),
'(a)') &
225 & trim(adjustl(vinfo(3)))
226 WRITE (vname(4,varid),
'(a,1x,i1)') &
227 & trim(adjustl(vinfo(4))), i
228 WRITE (vname(5,varid),
'(a)') &
229 & trim(adjustl(vinfo(5)))
230 WRITE (string,
'(a,i1)') trim(adjustl(vinfo(6))), i
231 CALL standardname (vname(6,varid), string, &
232 & suffix=
'_in_sea_water')
235 CASE (
'idTvar(iFecC)')
240 idtvar(ifecc(i))=varid
242 fscale(varid,ng)=scale
243 iinfo(1,varid,ng)=gtype
245 WRITE (vname(1,varid),
'(a,i1)') &
246 & trim(adjustl(vinfo(1))), i
247 WRITE (vname(2,varid),
'(a,1x,i1)') &
248 & trim(adjustl(vinfo(2))), i
249 WRITE (vname(3,varid),
'(a)') &
250 & trim(adjustl(vinfo(3)))
251 WRITE (vname(4,varid),
'(a,1x,i1)') &
252 & trim(adjustl(vinfo(4))), i
253 WRITE (vname(5,varid),
'(a)') &
254 & trim(adjustl(vinfo(5)))
255 WRITE (string,
'(a,i1)') trim(adjustl(vinfo(6))), i
256 CALL standardname (vname(6,varid), string, &
257 & suffix=
'_in_sea_water')
260 CASE (
'idTvar(iFecF)')
265 idtvar(ifecf(i))=varid
267 fscale(varid,ng)=scale
268 iinfo(1,varid,ng)=gtype
270 WRITE (vname(1,varid),
'(a,i1)') &
271 & trim(adjustl(vinfo(1))), i
272 WRITE (vname(2,varid),
'(a,1x,i1)') &
273 & trim(adjustl(vinfo(2))), i
274 WRITE (vname(3,varid),
'(a)') &
275 & trim(adjustl(vinfo(3)))
276 WRITE (vname(4,varid),
'(a,1x,i1)') &
277 & trim(adjustl(vinfo(4))), i
278 WRITE (vname(5,varid),
'(a)') &
279 & trim(adjustl(vinfo(5)))
280 WRITE (string,
'(a,i1)') trim(adjustl(vinfo(6))), i
281 CALL standardname (vname(6,varid), string, &
282 & suffix=
'_in_sea_water')
285 CASE (
'idTvar(iFecN)')
290 idtvar(ifecn(i))=varid
292 fscale(varid,ng)=scale
293 iinfo(1,varid,ng)=gtype
295 WRITE (vname(1,varid),
'(a,i1)') &
296 & trim(adjustl(vinfo(1))), i
297 WRITE (vname(2,varid),
'(a,1x,i1)') &
298 & trim(adjustl(vinfo(2))), i
299 WRITE (vname(3,varid),
'(a)') &
300 & trim(adjustl(vinfo(3)))
301 WRITE (vname(4,varid),
'(a,1x,i1)') &
302 & trim(adjustl(vinfo(4))), i
303 WRITE (vname(5,varid),
'(a)') &
304 & trim(adjustl(vinfo(5)))
305 WRITE (string,
'(a,i1)') trim(adjustl(vinfo(6))), i
306 CALL standardname (vname(6,varid), string, &
307 & suffix=
'_in_sea_water')
310 CASE (
'idTvar(iFecP)')
315 idtvar(ifecp(i))=varid
317 fscale(varid,ng)=scale
318 iinfo(1,varid,ng)=gtype
320 WRITE (vname(1,varid),
'(a,i1)') &
321 & trim(adjustl(vinfo(1))), i
322 WRITE (vname(2,varid),
'(a,1x,i1)') &
323 & trim(adjustl(vinfo(2))), i
324 WRITE (vname(3,varid),
'(a)') &
325 & trim(adjustl(vinfo(3)))
326 WRITE (vname(4,varid),
'(a,1x,i1)') &
327 & trim(adjustl(vinfo(4))), i
328 WRITE (vname(5,varid),
'(a)') &
329 & trim(adjustl(vinfo(5)))
330 WRITE (string,
'(a,i1)') trim(adjustl(vinfo(6))), i
331 CALL standardname (vname(6,varid), string, &
332 & suffix=
'_in_sea_water')
335 CASE (
'idTvar(iFecS)')
340 idtvar(ifecs(i))=varid
342 fscale(varid,ng)=scale
343 iinfo(1,varid,ng)=gtype
345 WRITE (vname(1,varid),
'(a,i1)') &
346 & trim(adjustl(vinfo(1))), i
347 WRITE (vname(2,varid),
'(a,1x,i1)') &
348 & trim(adjustl(vinfo(2))), i
349 WRITE (vname(3,varid),
'(a)') &
350 & trim(adjustl(vinfo(3)))
351 WRITE (vname(4,varid),
'(a,1x,i1)') &
352 & trim(adjustl(vinfo(4))), i
353 WRITE (vname(5,varid),
'(a)') &
354 & trim(adjustl(vinfo(5)))
355 WRITE (string,
'(a,i1)') trim(adjustl(vinfo(6))), i
356 CALL standardname (vname(6,varid), string, &
357 & suffix=
'_in_sea_water')
360 CASE (
'idTvar(iPhyC)')
365 idtvar(iphyc(i))=varid
367 fscale(varid,ng)=scale
368 iinfo(1,varid,ng)=gtype
370 WRITE (vname(1,varid),
'(a,i1)') &
371 & trim(adjustl(vinfo(1))), i
372 WRITE (vname(2,varid),
'(a,1x,i1)') &
373 & trim(adjustl(vinfo(2))), i
374 WRITE (vname(3,varid),
'(a)') &
375 & trim(adjustl(vinfo(3)))
376 WRITE (vname(4,varid),
'(a,1x,i1)') &
377 & trim(adjustl(vinfo(4))), i
378 WRITE (vname(5,varid),
'(a)') &
379 & trim(adjustl(vinfo(5)))
380 WRITE (string,
'(a,i1)') trim(adjustl(vinfo(6))), i
381 CALL standardname (vname(6,varid), string, &
382 & suffix=
'_in_sea_water')
385 CASE (
'idTvar(iPhyF)')
390 idtvar(iphyf(i))=varid
392 fscale(varid,ng)=scale
393 iinfo(1,varid,ng)=gtype
395 WRITE (vname(1,varid),
'(a,i1)') &
396 & trim(adjustl(vinfo(1))), i
397 WRITE (vname(2,varid),
'(a,1x,i1)') &
398 & trim(adjustl(vinfo(2))), i
399 WRITE (vname(3,varid),
'(a)') &
400 & trim(adjustl(vinfo(3)))
401 WRITE (vname(4,varid),
'(a,1x,i1)') &
402 & trim(adjustl(vinfo(4))), i
403 WRITE (vname(5,varid),
'(a)') &
404 & trim(adjustl(vinfo(5)))
405 WRITE (string,
'(a,i1)') trim(adjustl(vinfo(6))), i
406 CALL standardname (vname(6,varid), string, &
407 & suffix=
'_in_sea_water')
410 CASE (
'idTvar(iPhyN)')
415 idtvar(iphyn(i))=varid
417 fscale(varid,ng)=scale
418 iinfo(1,varid,ng)=gtype
420 WRITE (vname(1,varid),
'(a,i1)') &
421 & trim(adjustl(vinfo(1))), i
422 WRITE (vname(2,varid),
'(a,1x,i1)') &
423 & trim(adjustl(vinfo(2))), i
424 WRITE (vname(3,varid),
'(a)') &
425 & trim(adjustl(vinfo(3)))
426 WRITE (vname(4,varid),
'(a,1x,i1)') &
427 & trim(adjustl(vinfo(4))), i
428 WRITE (vname(5,varid),
'(a)') &
429 & trim(adjustl(vinfo(5)))
430 WRITE (string,
'(a,i1)') trim(adjustl(vinfo(6))), i
431 CALL standardname (vname(6,varid), string, &
432 & suffix=
'_in_sea_water')
435 CASE (
'idTvar(iPhyP)')
440 idtvar(iphyp(i))=varid
442 fscale(varid,ng)=scale
443 iinfo(1,varid,ng)=gtype
445 WRITE (vname(1,varid),
'(a,i1)') &
446 & trim(adjustl(vinfo(1))), i
447 WRITE (vname(2,varid),
'(a,1x,i1)') &
448 & trim(adjustl(vinfo(2))), i
449 WRITE (vname(3,varid),
'(a)') &
450 & trim(adjustl(vinfo(3)))
451 WRITE (vname(4,varid),
'(a,1x,i1)') &
452 & trim(adjustl(vinfo(4))), i
453 WRITE (vname(5,varid),
'(a)') &
454 & trim(adjustl(vinfo(5)))
455 WRITE (string,
'(a,i1)') trim(adjustl(vinfo(6))), i
456 CALL standardname (vname(6,varid), string, &
457 & suffix=
'_in_sea_water')
460 CASE (
'idTvar(iPhyS)')
464 IF (phy(i).le.2) j=j+1
466 IF (j.gt.0) varid=varid-1
468 IF (phy(i).le.2)
THEN
470 idtvar(iphys(i))=varid
472 fscale(varid,ng)=scale
473 iinfo(1,varid,ng)=gtype
475 WRITE (vname(1,varid),
'(a,i1)') &
476 & trim(adjustl(vinfo(1))), i
477 WRITE (vname(2,varid),
'(a,1x,i1)') &
478 & trim(adjustl(vinfo(2))), i
479 WRITE (vname(3,varid),
'(a)') &
480 & trim(adjustl(vinfo(3)))
481 WRITE (vname(4,varid),
'(a,1x,i1)') &
482 & trim(adjustl(vinfo(4))), i
483 WRITE (vname(5,varid),
'(a)') &
484 & trim(adjustl(vinfo(5)))
485 WRITE (string,
'(a,i1)') trim(adjustl(vinfo(6))), i
486 CALL standardname (vname(6,varid), string, &
487 & suffix=
'_in_sea_water')
491 CASE (
'idTvar(iPigs)')
496 IF (pig(phy(i),j).gt.0)
THEN
498 idtvar(ipigs(i,j))=varid
500 fscale(varid,ng)=scale
501 iinfo(1,varid,ng)=gtype
503 WRITE (vname(1,varid),
'(a,i1,i1)') &
504 & trim(adjustl(vinfo(1))), i, j
505 WRITE (vname(2,varid),
'(3a)') &
506 & trim(phyname(i)),
', ', trim(pigname(j))
507 WRITE (vname(3,varid),
'(a)') &
508 & trim(adjustl(vinfo(3)))
509 WRITE (vname(4,varid),
'(3a)') &
510 & trim(phyname(i)),
', ', trim(pigname(j))
511 WRITE (vname(5,varid),
'(a)') &
512 & trim(adjustl(vinfo(5)))
513 WRITE (string,
'(4a)') trim(adjustl(vinfo(6))), &
514 & trim(pigname(j)),
'_pigment_by_', &
516 CALL standardname (vname(6,varid), string, &
517 & suffix=
'_in_sea_water')
523#ifdef DIAGNOSTICS_BIO
526** biological tracers term diagnostics.
528 CASE (
'iDbio3(idSpIr)')
530 CASE (
'iDbio4(iddIrr)')
532 CASE (
'iDbio4(idsIrr)')
534 CASE (
'iDbio4(idLatt)')
536 CASE (
'iDbio4(idaPHY)')
538 CASE (
'iDbio4(idaDET)')
540 CASE (
'iDbio4(idaCDC)')
542 CASE (
'iDbio4(idAcos)')
544 CASE (
'iDbio4(idbPHY)')
546 CASE (
'iDbio4(idsPHY)')
548 CASE (
'iDbio4(idbTOT)')
550 CASE (
'iDbio4(idsTOT)')