Changeset 5931 for branches/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM
- Timestamp:
- 2015-11-26T17:28:18+01:00 (9 years ago)
- Location:
- branches/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM/NEMO/TOP_SRC
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM/NEMO/TOP_SRC/MEDUSA/trcbio_medusa.F90
r5841 r5931 18 18 !! - ! 2015-06 (A. Yool) Update to include MOCSY 19 19 !! - ! 2015-07 (A. Yool) Update for rolling averages 20 !! - ! 2015-10 (J. Palm) Update for diag outputs through iom_use 20 21 !!---------------------------------------------------------------------- 21 22 !! … … 68 69 # if defined key_iomput 69 70 USE iom 71 USE trc_nam_dia ! JPALM 13-11-2015 -- if iom_use for diag 72 USE trc_nam_iom_medusa ! JPALM 13-11-2015 -- if iom_use for diag 70 73 # endif 71 74 # if defined key_roam … … 165 168 !! 166 169 !! primary production and chl related quantities 167 REAL(wp) :: fthetan,faln,fchn1,fchn,fjln,fprn,frn 168 REAL(wp) :: fthetad,fald,fchd1,fchd,fjld,fprd,frd 170 REAL(wp) :: fthetan,faln,fchn1,fchn,fjln,fprn,frn 171 REAL(wp), DIMENSION(jpi,jpj) :: fprn2d 172 REAL(wp) :: fthetad,fald,fchd1,fchd,fjld,fprd,frd 173 REAL(wp), DIMENSION(jpi,jpj) :: fprd2d 169 174 !! AXY (03/02/11): add in Liebig terms 170 175 REAL(wp) :: fpnlim, fpdlim … … 173 178 INTEGER :: ieppley 174 179 !! AXY (01/03/10): add in mixed layer PP diagnostics 175 REAL(wp) ::fprn_ml,fprd_ml180 REAL(wp), DIMENSION(jpi,jpj) :: fprn_ml,fprd_ml 176 181 !! 177 182 !! nutrient limiting factors … … 184 189 !! iron cycle; includes parameters for Parekh et al. (2005) iron scheme 185 190 REAL(wp) :: ffetop,ffebot,ffescav 186 REAL(wp) :: xLgF, xFeT, xFeF, xFeL, xFree !! state variables for iron-ligand system 191 REAL(wp) :: xLgF, xFeT, xFeF, xFeL !! state variables for iron-ligand system 192 REAL(wp), DIMENSION(jpi,jpj) :: xFree !! state variables for iron-ligand system 187 193 REAL(wp) :: xb_coef_tmp, xb2M4ac !! iron-ligand parameters 188 194 REAL(wp) :: xmaxFeF,fdeltaFe !! max Fe' parameters … … 208 214 !! mortality/Remineralisation (defunct parameter "fz" removed) 209 215 REAL(wp) :: fdpn,fdpd,fdpds,fdzmi,fdzme,fdd 216 REAL(wp), DIMENSION(jpi,jpj) :: fdpn2d,fdpd2d 210 217 # if defined key_roam 211 218 REAL(wp) :: fddc 212 219 # endif 213 220 REAL(wp) :: fdpn2,fdpd2,fdpds2,fdzmi2,fdzme2 214 REAL(wp) :: fslown, fslow nflux215 REAL(wp) :: fslowc, fslowcflux221 REAL(wp) :: fslown, fslowc 222 REAL(wp), DIMENSION(jpi,jpj) :: fslownflux, fslowcflux 216 223 REAL(wp) :: fregen,fregensi 217 224 REAL(wp), DIMENSION(jpi,jpj) :: fregenfast,fregenfastsi … … 229 236 REAL(wp) :: fheren,fheresi,fherefe,fherec,fhereca 230 237 REAL(wp) :: fprotf 231 REAL(wp) :: fsedn,fsedsi,fsedfe,fsedc,fsedca238 REAL(wp), DIMENSION(jpi,jpj) :: fsedn,fsedsi,fsedfe,fsedc,fsedca 232 239 REAL(wp), DIMENSION(jpi,jpj) :: fccd 233 240 REAL(wp) :: fccd_dep … … 249 256 !! 250 257 !! water column nutrient and flux integrals 251 REAL(wp) :: ftot_n,ftot_si,ftot_fe258 REAL(wp), DIMENSION(jpi,jpj) :: ftot_n,ftot_si,ftot_fe 252 259 REAL(wp), DIMENSION(jpi,jpj) :: fflx_n,fflx_si,fflx_fe 253 260 REAL(wp), DIMENSION(jpi,jpj) :: fifd_n,fifd_si,fifd_fe 254 261 REAL(wp), DIMENSION(jpi,jpj) :: fofd_n,fofd_si,fofd_fe 255 262 # if defined key_roam 256 REAL(wp) :: ftot_c,ftot_a,ftot_o2263 REAL(wp), DIMENSION(jpi,jpj) :: ftot_c,ftot_a,ftot_o2 257 264 REAL(wp), DIMENSION(jpi,jpj) :: fflx_c,fflx_a,fflx_o2 258 265 REAL(wp), DIMENSION(jpi,jpj) :: fifd_c,fifd_a,fifd_o2 … … 301 308 !! carbon, alkalinity production and consumption 302 309 REAL(wp) :: fc_prod, fc_cons, fa_prod, fa_cons 303 REAL(wp) :: fcomm_resp310 REAL(wp), DIMENSION(jpi,jpj) :: fcomm_resp 304 311 REAL(wp), DIMENSION(jpi,jpj) :: fcar_prod, fcar_cons 305 312 !! … … 331 338 !! horizontal grid location 332 339 REAL(wp) :: flatx, flonx 333 340 !! 341 !! Jpalm -- 11-10-2015 -- adapt diag to iom_use 342 !! 2D var for diagnostics. 343 REAL(wp), POINTER, DIMENSION(:,: ) :: fprn2d, fdpn2d, fprd2d, fdpd2d, fprds2d, fsdiss2d, fgmipn2d 344 REAL(wp), POINTER, DIMENSION(:,: ) :: fgmid2d, fdzmi2d, fgmepn2d, fgmepd2d, fgmezmi2d, fgmed2d 345 REAL(wp), POINTER, DIMENSION(:,: ) :: fdzme2d, fslown2d, fdd2d, ffetop2d, ffebot2d, ffescav2d 346 REAL(wp), POINTER, DIMENSION(:,: ) :: fjln2d, fnln2d, ffln2d, fjld2d, fnld2d, ffld2d, fsld2d2 347 REAL(wp), POINTER, DIMENSION(:,: ) :: fsld2d, fregen2d, fregensi2d, ftempn2d, ftempsi2d, ftempfe2d 348 REAL(wp), POINTER, DIMENSION(:,: ) :: ftempc2d, ftempca2d, freminn2d, freminsi2d, freminfe2d 349 REAL(wp), POINTER, DIMENSION(:,: ) :: freminc2d, freminca2d 350 REAL(wp), POINTER, DIMENSION(:,: ) :: zw2d 351 # if defined key_roam 352 REAL(wp), POINTER, DIMENSION(:,: ) :: ffastca2d, rivn2d, rivsi2d, rivc2d, rivalk2d, fslowc2d 353 REAL(wp), POINTER, DIMENSION(:,: ) :: fdpn22d, fdpd22d, fdzmi22d, fdzme22d, zimesn2d, zimesd2d 354 REAL(wp), POINTER, DIMENSION(:,: ) :: zimesc2d, zimesdc2d, ziexcr2d, ziresp2d, zigrow2d, zemesn2d 355 REAL(wp), POINTER, DIMENSION(:,: ) :: zemesd2d, zemesc2d, zemesdc2d, zeexcr2d, zeresp2d, zegrow2d 356 REAL(wp), POINTER, DIMENSION(:,: ) :: mdetc2d, gmidc2d, gmedc2d, f_pco2a2d, f_pco2w2d, f_co2flux2d 357 REAL(wp), POINTER, DIMENSION(:,: ) :: f_TDIC2d, f_TALK2d, f_kw6602d, f_pp02d, f_o2flux2d, f_o2sat2d 358 REAL(wp), POINTER, DIMENSION(:,: ) :: dms_surf2d, dms_andr2d, dms_simo2d, dms_aran2d, dms_hall2d 359 # endif 360 !! 2D var for diagnostics. 361 REAL(wp), POINTER, DIMENSION(:,:,:) :: tpp3d, detflux3d, remin3dn 334 362 !!--------------------------------------------------------------------- 335 363 … … 435 463 fflx_a(:,:) = 0.0 !! alkalinity flux total 436 464 fflx_o2(:,:) = 0.0 !! oxygen flux total 465 ftot_c(:,:) = 0.0 !! carbon inventory 466 ftot_a(:,:) = 0.0 !! alkalinity inventory 467 ftot_o2(:,:) = 0.0 !! oxygen inventory 437 468 fifd_c(:,:) = 0.0 !! carbon fast detritus production 438 469 fifd_a(:,:) = 0.0 !! alkalinity fast detritus production … … 453 484 foxy_anox(:,:) = 0.0 !! unrealised oxygen consumption 454 485 # endif 486 ftot_n(:,:) = 0.0 !! N inventory 487 ftot_si(:,:) = 0.0 !! Si inventory 488 ftot_fe(:,:) = 0.0 !! Fe inventory 455 489 ftot_pn(:,:) = 0.0 !! integrated non-diatom phytoplankton 456 490 ftot_pd(:,:) = 0.0 !! integrated diatom phytoplankton … … 487 521 f_riv_c(:,:) = 0.0 !! riverine C input 488 522 f_riv_alk(:,:) = 0.0 !! riverine alk input 489 523 !! 524 !! allocate and initiate 2D diag 525 !! ----------------------------- 526 !! Juju :: add kt condition !! 527 IF( lk_iomput .AND. .NOT. ln_diatrc ) THEN 528 CALL wrk_alloc( jpi, jpj, zw2d ) 529 zw2d(:,:) = 0.0 !! 530 IF ( med_diag%PRN%dgsave ) THEN 531 CALL wrk_alloc( jpi, jpj, fprn2d ) 532 fprn2d(:,:) = 0.0 !! 533 ENDIF 534 IF ( med_diag%MPN%dgsave ) THEN 535 CALL wrk_alloc( jpi, jpj, fdpn2d ) 536 fdpn2d(:,:) = 0.0 !! 537 ENDIF 538 IF ( med_diag%PRD%dgsave ) THEN 539 CALL wrk_alloc( jpi, jpj, fprd2d ) 540 fprd2d(:,:) = 0.0 !! 541 ENDIF 542 IF( med_diag%MPD%dgsave ) THEN 543 CALL wrk_alloc( jpi, jpj, fdpd2d ) 544 fdpd2d(:,:) = 0.0 !! 545 ENDIF 546 IF( med_diag%OPAL%dgsave ) THEN 547 CALL wrk_alloc( jpi, jpj, fprds2d ) 548 fprds2d(:,:) = 0.0 !! 549 ENDIF 550 IF( med_diag%OPALDISS%dgsave ) THEN 551 CALL wrk_alloc( jpi, jpj, fsdiss2d ) 552 fsdiss2d(:,:) = 0.0 !! 553 ENDIF 554 IF( med_diag%GMIPn%dgsave ) THEN 555 CALL wrk_alloc( jpi, jpj, fgmipn2d ) 556 fgmipn2d(:,:) = 0.0 !! 557 ENDIF 558 IF( med_diag%GMID%dgsave ) THEN 559 CALL wrk_alloc( jpi, jpj, fgmid2d ) 560 fgmid2d(:,:) = 0.0 !! 561 ENDIF 562 IF( med_diag%MZMI%dgsave ) THEN 563 CALL wrk_alloc( jpi, jpj, fdzmi2d ) 564 fdzmi2d(:,:) = 0.0 !! 565 ENDIF 566 IF( med_diag%GMEPN%dgsave ) THEN 567 CALL wrk_alloc( jpi, jpj, fgmepn2d ) 568 fgmepn2d(:,:) = 0.0 !! 569 ENDIF 570 IF( med_diag%GMEPD%dgsave ) THEN 571 CALL wrk_alloc( jpi, jpj, fgmepd2d ) 572 fgmepd2d(:,:) = 0.0 !! 573 ENDIF 574 IF( med_diag%GMEZMI%dgsave ) THEN 575 CALL wrk_alloc( jpi, jpj, fgmezmi2d ) 576 fgmezmi2d(:,:) = 0.0 !! 577 ENDIF 578 IF( med_diag%GMED%dgsave ) THEN 579 CALL wrk_alloc( jpi, jpj, fgmed2d ) 580 fgmed2d(:,:) = 0.0 !! 581 ENDIF 582 IF( med_diag%MZME%dgsave ) THEN 583 CALL wrk_alloc( jpi, jpj, fdzme2d ) 584 fdzme2d(:,:) = 0.0 !! 585 ENDIF 586 IF( med_diag%DETN%dgsave ) THEN 587 CALL wrk_alloc( jpi, jpj, fslown2d ) 588 fslown2d(:,:) = 0.0 !! 589 ENDIF 590 IF( med_diag%MDET%dgsave ) THEN 591 CALL wrk_alloc( jpi, jpj, fdd2d ) 592 fdd2d(:,:) = 0.0 !! 593 ENDIF 594 IF( med_diag%AEOLIAN%dgsave ) THEN 595 CALL wrk_alloc( jpi, jpj, ffetop2d ) 596 ffetop2d(:,:) = 0.0 !! 597 ENDIF 598 IF( med_diag%BENTHIC%dgsave ) THEN 599 CALL wrk_alloc( jpi, jpj, ffebot2d ) 600 ffebot2d(:,:) = 0.0 !! 601 ENDIF 602 IF( med_diag%SCAVENGE%dgsave ) THEN 603 CALL wrk_alloc( jpi, jpj, ffescav2d ) 604 ffescav2d(:,:) = 0.0 !! 605 ENDIF 606 IF( med_diag%PN_JLIM%dgsave ) THEN 607 CALL wrk_alloc( jpi, jpj, fjln2d ) 608 fjln2d(:,:) = 0.0 !! 609 ENDIF 610 IF( med_diag%PN_NLIM%dgsave ) THEN 611 CALL wrk_alloc( jpi, jpj, fnln2d ) 612 fnln2d(:,:) = 0.0 !! 613 ENDIF 614 IF( med_diag%PN_FELIM%dgsave ) THEN 615 CALL wrk_alloc( jpi, jpj, ffln2d ) 616 ffln2d(:,:) = 0.0 !! 617 ENDIF 618 IF( med_diag%PD_JLIM%dgsave ) THEN 619 CALL wrk_alloc( jpi, jpj, fjld2d ) 620 fjld2d(:,:) = 0.0 !! 621 ENDIF 622 IF( med_diag%PD_NLIM%dgsave ) THEN 623 CALL wrk_alloc( jpi, jpj, fnld2d ) 624 fnld2d(:,:) = 0.0 !! 625 ENDIF 626 IF( med_diag%PD_FELIM%dgsave ) THEN 627 CALL wrk_alloc( jpi, jpj, ffld2d ) 628 ffld2d(:,:) = 0.0 !! 629 ENDIF 630 IF( med_diag%PD_SILIM%dgsave ) THEN 631 CALL wrk_alloc( jpi, jpj, fsld2d2 ) 632 fsld2d2(:,:) = 0.0 !! 633 ENDIF 634 IF( med_diag%PDSILIM2%dgsave ) THEN 635 CALL wrk_alloc( jpi, jpj, fsld2d ) 636 fsld2d(:,:) = 0.0 !! 637 ENDIF 638 !! 639 IF( med_diag%TOTREG_N%dgsave ) THEN 640 CALL wrk_alloc( jpi, jpj, fregen2d ) 641 fregen2d(:,:) = 0.0 !! 642 ENDIF 643 IF( med_diag%TOTRG_SI%dgsave ) THEN 644 CALL wrk_alloc( jpi, jpj, fregensi2d ) 645 fregensi2d(:,:) = 0.0 !! 646 ENDIF 647 !! 648 IF( med_diag%FASTN%dgsave ) THEN 649 CALL wrk_alloc( jpi, jpj, ftempn2d ) 650 ftempn2d(:,:) = 0.0 !! 651 ENDIF 652 IF( med_diag%FASTSI%dgsave ) THEN 653 CALL wrk_alloc( jpi, jpj, ftempsi2d ) 654 ftempsi2d(:,:) = 0.0 !! 655 ENDIF 656 IF( med_diag%FASTFE%dgsave ) THEN 657 CALL wrk_alloc( jpi, jpj, ftempfe2d ) 658 ftempfe2d(:,:) = 0.0 !! 659 ENDIF 660 IF( med_diag%FASTC%dgsave ) THEN 661 CALL wrk_alloc( jpi, jpj, ftempc2d ) 662 ftempc2d(:,:) = 0.0 !! 663 ENDIF 664 IF( med_diag%FASTCA%dgsave ) THEN 665 CALL wrk_alloc( jpi, jpj, ftempca2d ) 666 ftempca2d(:,:) = 0.0 !! 667 ENDIF 668 !! 669 IF( med_diag%REMINN%dgsave ) THEN 670 CALL wrk_alloc( jpi, jpj, freminn2d ) 671 freminn2d(:,:) = 0.0 !! 672 ENDIF 673 IF( med_diag%REMINSI%dgsave ) THEN 674 CALL wrk_alloc( jpi, jpj, freminsi2d ) 675 freminsi2d(:,:) = 0.0 !! 676 ENDIF 677 IF( med_diag%REMINFE%dgsave ) THEN 678 CALL wrk_alloc( jpi, jpj, freminfe2d ) 679 freminfe2d(:,:) = 0.0 !! 680 ENDIF 681 IF( med_diag%REMINC%dgsave ) THEN 682 CALL wrk_alloc( jpi, jpj, freminc2d ) 683 freminc2d(:,:) = 0.0 !! 684 ENDIF 685 IF( med_diag%REMINCA%dgsave ) THEN 686 CALL wrk_alloc( jpi, jpj, freminca2d ) 687 freminca2d(:,:) = 0.0 !! 688 ENDIF 689 # if defined key_roam 690 IF( med_diag%RR_0100%dgsave ) THEN 691 CALL wrk_alloc( jpi, jpj, ffastca2d ) 692 ffastca2d(:,:) = 0.0 !! 693 ENDIF 694 IF( med_diag%RIV_N%dgsave ) THEN 695 CALL wrk_alloc( jpi, jpj, rivn2d ) 696 rivn2d(:,:) = 0.0 !! 697 ENDIF 698 IF( med_diag%RIV_SI%dgsave ) THEN 699 CALL wrk_alloc( jpi, jpj, rivsi2d ) 700 rivsi2d(:,:) = 0.0 !! 701 ENDIF 702 IF( med_diag%RIV_C%dgsave ) THEN 703 CALL wrk_alloc( jpi, jpj, rivc2d ) 704 rivc2d(:,:) = 0.0 !! 705 ENDIF 706 IF( med_diag%RIV_ALK%dgsave ) THEN 707 CALL wrk_alloc( jpi, jpj, rivalk2d ) 708 rivalk2d(:,:) = 0.0 !! 709 ENDIF 710 IF( med_diag%DETC%dgsave ) THEN 711 CALL wrk_alloc( jpi, jpj, fslowc2d ) 712 fslowc2d(:,:) = 0.0 !! 713 ENDIF 714 IF( med_diag%PN_LLOSS%dgsave ) THEN 715 CALL wrk_alloc( jpi, jpj, fdpn22d ) 716 fdpn22d(:,:) = 0.0 !! 717 ENDIF 718 IF( med_diag%PD_LLOSS%dgsave ) THEN 719 CALL wrk_alloc( jpi, jpj, fdpd22d ) 720 fdpd22d(:,:) = 0.0 !! 721 ENDIF 722 IF( med_diag%ZI_LLOSS%dgsave ) THEN 723 CALL wrk_alloc( jpi, jpj, fdzmi22d ) 724 fdzmi22d(:,:) = 0.0 !! 725 ENDIF 726 IF( med_diag%ZE_LLOSS%dgsave ) THEN 727 CALL wrk_alloc( jpi, jpj, fdzme22d ) 728 fdzme22d(:,:) = 0.0 !! 729 ENDIF 730 IF( med_diag%ZI_MES_N%dgsave ) THEN 731 CALL wrk_alloc( jpi, jpj, zimesn2d ) 732 zimesn2d(:,:) = 0.0 !! 733 ENDIF 734 IF( med_diag%ZI_MES_D%dgsave ) THEN 735 CALL wrk_alloc( jpi, jpj, zimesd2d ) 736 zimesd2d(:,:) = 0.0 !! 737 ENDIF 738 IF( med_diag%ZI_MES_C%dgsave ) THEN 739 CALL wrk_alloc( jpi, jpj, zimesc2d ) 740 zimesc2d(:,:) = 0.0 !! 741 ENDIF 742 IF( med_diag%ZI_MESDC%dgsave ) THEN 743 CALL wrk_alloc( jpi, jpj, zimesdc2d ) 744 zimesdc2d(:,:) = 0.0 !! 745 ENDIF 746 IF( med_diag%ZI_EXCR%dgsave ) THEN 747 CALL wrk_alloc( jpi, jpj, ziexcr2d ) 748 ziexcr2d(:,:) = 0.0 !! 749 ENDIF 750 IF( med_diag%ZI_RESP%dgsave ) THEN 751 CALL wrk_alloc( jpi, jpj, ziresp2d ) 752 ziresp2d(:,:) = 0.0 !! 753 ENDIF 754 IF( med_diag%ZI_GROW%dgsave ) THEN 755 CALL wrk_alloc( jpi, jpj, zigrow2d ) 756 zigrow2d(:,:) = 0.0 !! 757 ENDIF 758 IF( med_diag%ZE_MES_N%dgsave ) THEN 759 CALL wrk_alloc( jpi, jpj, zemesn2d ) 760 zemesn2d(:,:) = 0.0 !! 761 ENDIF 762 IF( med_diag%ZE_MES_D%dgsave ) THEN 763 CALL wrk_alloc( jpi, jpj, zemesd2d ) 764 zemesd2d(:,:) = 0.0 !! 765 ENDIF 766 IF( med_diag%ZE_MES_C%dgsave ) THEN 767 CALL wrk_alloc( jpi, jpj, zemesc2d ) 768 zemesc2d(:,:) = 0.0 !! 769 ENDIF 770 IF( med_diag%ZE_MESDC%dgsave ) THEN 771 CALL wrk_alloc( jpi, jpj, zemesdc2d ) 772 zemesdc2d(:,:) = 0.0 !! 773 ENDIF 774 IF( med_diag%ZE_EXCR%dgsave ) THEN 775 CALL wrk_alloc( jpi, jpj, zeexcr2d ) 776 zeexcr2d(:,:) = 0.0 !! 777 ENDIF 778 IF( med_diag%ZE_RESP%dgsave ) THEN 779 CALL wrk_alloc( jpi, jpj, zeresp2d ) 780 zeresp2d(:,:) = 0.0 !! 781 ENDIF 782 IF( med_diag%ZE_GROW%dgsave ) THEN 783 CALL wrk_alloc( jpi, jpj, zegrow2d ) 784 zegrow2d(:,:) = 0.0 !! 785 ENDIF 786 IF( med_diag%MDETC%dgsave ) THEN 787 CALL wrk_alloc( jpi, jpj, mdetc2d ) 788 mdetc2d(:,:) = 0.0 !! 789 ENDIF 790 IF( med_diag%GMIDC%dgsave ) THEN 791 CALL wrk_alloc( jpi, jpj, gmidc2d ) 792 gmidc2d(:,:) = 0.0 !! 793 ENDIF 794 IF( med_diag%GMEDC%dgsave ) THEN 795 CALL wrk_alloc( jpi, jpj, gmedc2d ) 796 gmedc2d(:,:) = 0.0 !! 797 ENDIF 798 IF( med_diag%ATM_PCO2%dgsave ) THEN 799 CALL wrk_alloc( jpi, jpj, f_pco2a2d ) 800 f_pco2a2d(:,:) = 0.0 !! 801 ENDIF 802 IF( med_diag%OCN_PCO2%dgsave ) THEN 803 CALL wrk_alloc( jpi, jpj, f_pco2w2d ) 804 f_pco2w2d(:,:) = 0.0 !! 805 ENDIF 806 IF( med_diag%CO2FLUX%dgsave ) THEN 807 CALL wrk_alloc( jpi, jpj, f_co2flux2d ) 808 f_co2flux2d(:,:) = 0.0 !! 809 ENDIF 810 IF( med_diag%TCO2%dgsave ) THEN 811 CALL wrk_alloc( jpi, jpj, f_TDIC2d ) 812 f_TDIC2d(:,:) = 0.0 !! 813 ENDIF 814 IF( med_diag%TALK%dgsave ) THEN 815 CALL wrk_alloc( jpi, jpj, f_TALK2d ) 816 f_TALK2d(:,:) = 0.0 !! 817 ENDIF 818 IF( med_diag%KW660%dgsave ) THEN 819 CALL wrk_alloc( jpi, jpj, f_kw6602d ) 820 f_kw6602d(:,:) = 0.0 !! 821 ENDIF 822 IF( med_diag%ATM_PP0%dgsave ) THEN 823 CALL wrk_alloc( jpi, jpj, f_pp02d ) 824 f_pp02d(:,:) = 0.0 !! 825 ENDIF 826 IF( med_diag%O2FLUX%dgsave ) THEN 827 CALL wrk_alloc( jpi, jpj, f_o2flux2d ) 828 f_o2flux2d(:,:) = 0.0 !! 829 ENDIF 830 IF( med_diag%O2SAT%dgsave ) THEN 831 CALL wrk_alloc( jpi, jpj, f_o2sat2d ) 832 f_o2sat2d(:,:) = 0.0 !! 833 ENDIF 834 IF (jdms .eq. 1) THEN 835 IF( med_diag%DMS_SURF%dgsave ) THEN 836 CALL wrk_alloc( jpi, jpj, dms_surf2d ) 837 dms_surf2d(:,:) = 0.0 !! 838 ENDIF 839 IF( med_diag%DMS_ANDR%dgsave ) THEN 840 CALL wrk_alloc( jpi, jpj, dms_andr2d ) 841 dms_andr2d(:,:) = 0.0 !! 842 ENDIF 843 IF( med_diag%DMS_SIMO%dgsave ) THEN 844 CALL wrk_alloc( jpi, jpj, dms_simo2d ) 845 dms_simo2d (:,:) = 0.0 !! 846 ENDIF 847 IF( med_diag%DMS_ARAN%dgsave ) THEN 848 CALL wrk_alloc( jpi, jpj, dms_aran2d ) 849 dms_aran2d (:,:) = 0.0 !! 850 ENDIF 851 IF( med_diag%DMS_HALL%dgsave ) THEN 852 CALL wrk_alloc( jpi, jpj, dms_hall2d ) 853 dms_hall2d(:,:) = 0.0 !! 854 ENDIF 855 ENDIF 856 # endif 857 IF( med_diag%TPP3%dgsave ) THEN 858 CALL wrk_alloc( jpi, jpj, jpk, tpp3d ) 859 tpp3d(:,:,:) = 0.0 !! 860 ENDIF 861 IF( med_diag%DETFLUX3%dgsave ) THEN 862 CALL wrk_alloc( jpi, jpj, jpk, detflux3d ) 863 detflux3d(:,:,:) = 0.0 !! 864 ENDIF 865 IF( med_diag%REMIN3N%dgsave ) THEN 866 CALL wrk_alloc( jpi, jpj, jpk, remin3dn ) 867 remin3dn(:,:,:) = 0.0 !! 868 ENDIF 869 ENDIF 870 !! lk_iomput 871 !! 490 872 # if defined key_axy_nancheck 491 873 DO jn = 1,jptra … … 665 1047 f3_omarg(ji,jj,jk) = f_omarg(ji,jj) 666 1048 !! 1049 !! store 2D outputs 1050 IF ( lk_iomput .and.(jk.eq.1) ) THEN 1051 IF( med_diag%ATM_PCO2%dgsave ) THEN 1052 f_pco2a2d(ji,jj) = f_pco2a 1053 ENDIF 1054 IF( med_diag%OCN_PCO2%dgsave ) THEN 1055 f_pco2w2d(ji,jj) = f_pco2w 1056 ENDIF 1057 IF( med_diag%CO2FLUX%dgsave ) THEN 1058 f_co2flux2d(ji,jj) = f_co2flux 1059 ENDIF 1060 IF( med_diag%TCO2%dgsave ) THEN 1061 f_TDIC2d(ji,jj) = f_TDIC 1062 ENDIF 1063 IF( med_diag%TALK%dgsave ) THEN 1064 f_TALK2d(ji,jj) = f_TALK 1065 ENDIF 1066 IF( med_diag%KW660%dgsave ) THEN 1067 f_kw6602d(ji,jj) = f_kw660 1068 ENDIF 1069 IF( med_diag%ATM_PP0%dgsave ) THEN 1070 f_pp02d(ji,jj) = f_pp0 1071 ENDIF 1072 IF( med_diag%O2FLUX%dgsave ) THEN 1073 f_o2flux2d(ji,jj) = f_o2flux 1074 ENDIF 1075 IF( med_diag%O2SAT%dgsave ) THEN 1076 f_o2sat2d(ji,jj) = f_o2sat 1077 ENDIF 1078 ENDIF 1079 !! 667 1080 !! CCD calculation: calcite 668 1081 if (i2_omcal(ji,jj) .eq. 0 .and. f_omcal(ji,jj) .lt. 1.0) then … … 874 1287 875 1288 !! sum tracers for inventory checks 876 ftot_n = fthk * ( zphn + zphd + zzmi + zzme + zdet + zdin ) 877 ftot_si = fthk * ( zpds + zsil ) 878 ftot_fe = fthk * ( xrfn * ( zphn + zphd + zzmi + zzme + zdet ) + zfer ) 1289 IF( lk_iomput ) THEN 1290 IF ( med_diag%INVTN%dgsave ) THEN 1291 ftot_n(ji,jj) = ftot_n(ji,jj) + & 1292 (fthk * ( zphn + zphd + zzmi + zzme + zdet + zdin ) ) 1293 ENDIF 1294 IF ( med_diag%INVTSI%dgsave ) THEN 1295 ftot_si(ji,jj) = ftot_si(ji,jj) + & 1296 (fthk * ( zpds + zsil ) ) 1297 ENDIF 1298 IF ( med_diag%INVTFE%dgsave ) THEN 1299 ftot_fe(ji,jj) = ftot_fe(ji,jj) + & 1300 (fthk * ( xrfn * ( zphn + zphd + zzmi + zzme + zdet ) + zfer ) ) 1301 ENDIF 879 1302 # if defined key_roam 880 ftot_c = fthk * ( (xthetapn * zphn) + (xthetapd * zphd) + & 881 (xthetazmi * zzmi) + (xthetazme * zzme) + zdtc + & 882 zdic ) 883 ftot_a = fthk * ( zalk ) 884 ftot_o2 = fthk * ( zoxy ) 1303 IF ( med_diag%INVTC%dgsave ) THEN 1304 ftot_c(ji,jj) = ftot_c(ji,jj) + & 1305 (fthk * ( (xthetapn * zphn) + (xthetapd * zphd) + & 1306 (xthetazmi * zzmi) + (xthetazme * zzme) + zdtc + & 1307 zdic ) ) 1308 ENDIF 1309 IF ( med_diag%INVTALK%dgsave ) THEN 1310 ftot_a(ji,jj) = ftot_a(ji,jj) + (fthk * ( zalk ) ) 1311 ENDIF 1312 IF ( med_diag%INVTO2%dgsave ) THEN 1313 ftot_o2(ji,jj) = ftot_o2(ji,jj) + (fthk * ( zoxy ) ) 1314 ENDIF 885 1315 # endif 886 1316 CALL flush(numout) … … 1056 1486 dms_surf = dms_hall 1057 1487 endif 1488 !! 1489 !! 2D diag through iom_use 1490 IF( lk_iomput ) THEN 1491 IF( med_diag%DMS_SURF%dgsave ) THEN 1492 dms_surf2d(ji,jj) = dms_surf 1493 ENDIF 1494 IF( med_diag%DMS_ANDR%dgsave ) THEN 1495 dms_andr2d(ji,jj) = dms_andr 1496 ENDIF 1497 IF( med_diag%DMS_SIMO%dgsave ) THEN 1498 dms_simo2d(ji,jj) = dms_simo 1499 ENDIF 1500 IF( med_diag%DMS_ARAN%dgsave ) THEN 1501 dms_aran2d(ji,jj) = dms_aran 1502 ENDIF 1503 IF( med_diag%DMS_HALL%dgsave ) THEN 1504 dms_hall2d(ji,jj) = dms_hall 1505 ENDIF 1506 ENDIF 1507 !! End iom 1058 1508 ENDIF 1059 1509 !! End DMS Loop … … 1356 1806 endif 1357 1807 !! 1358 fprn_ml = (fprn * zphn * fthk * fq0) 1359 fprd_ml = (fprd * zphd * fthk * fq0) 1360 1808 fprn_ml(ji,jj) = fprn_ml(ji,jj) + (fprn * zphn * fthk * fq0) 1809 fprd_ml(ji,jj) = fprd_ml(ji,jj) + (fprd * zphd * fthk * fq0) 1810 1811 !!---------------------------------------------------------------------- 1812 !! Vertical Integral -- 1813 !!---------------------------------------------------------------------- 1814 ftot_pn(ji,jj) = ftot_pn(ji,jj) + (zphn * fthk) !! vertical integral non-diatom phytoplankton 1815 ftot_pd(ji,jj) = ftot_pd(ji,jj) + (zphd * fthk) !! vertical integral diatom phytoplankton 1816 ftot_zmi(ji,jj) = ftot_zmi(ji,jj) + (zzmi * fthk) !! vertical integral microzooplankton 1817 ftot_zme(ji,jj) = ftot_zme(ji,jj) + (zzme * fthk) !! vertical integral mesozooplankton 1818 ftot_det(ji,jj) = ftot_det(ji,jj) + (zdet * fthk) !! vertical integral slow detritus, nitrogen 1819 ftot_dtc(ji,jj) = ftot_dtc(ji,jj) + (zdtc * fthk) !! vertical integral slow detritus, carbon 1820 1361 1821 !!---------------------------------------------------------------------- 1362 1822 !! More chlorophyll calculations … … 1675 2135 !! "free" iron concentration (and convert to mmol Fe / m3) 1676 2136 xFeF = (xFeT - xFeL) * 1.e-3 1677 xFree 2137 xFree(ji,jj)= xFeF / (zfer + tiny(zfer)) 1678 2138 !! 1679 2139 !! scavenging of iron (multiple schemes); I'm only really happy with the … … 1982 2442 IF (lwp) write (numout,*) 'ffetop(',jk,') = ', ffetop 1983 2443 IF (lwp) write (numout,*) 'ffebot(',jk,') = ', ffebot 1984 IF (lwp) write (numout,*) 'xFree(',jk,') = ', xFree 2444 IF (lwp) write (numout,*) 'xFree(',jk,') = ', xFree(ji,jj) 1985 2445 IF (lwp) write (numout,*) 'ffescav(',jk,') = ', ffescav 1986 2446 endif … … 2015 2475 !! standard depths in the diagnostic outputs; needs to be 2016 2476 !! adjusted from per second to per day because of parameter vsed 2017 fslownflux = zdet * vsed * 86400.2477 fslownflux(ji,jj) = zdet * vsed * 86400. 2018 2478 # if defined key_roam 2019 2479 !! … … 2028 2488 !! standard depths in the diagnostic outputs; needs to be 2029 2489 !! adjusted from per second to per day because of parameter vsed 2030 fslowcflux = zdtc * vsed * 86400.2490 fslowcflux(ji,jj) = zdtc * vsed * 86400. 2031 2491 # endif 2032 2492 … … 2541 3001 f_fbenin_c(ji,jj) = ffastc(ji,jj) !! fast C -> benthic C (mol/m2) 2542 3002 endif 2543 fsedc 3003 fsedc(ji,jj) = ffastc(ji,jj) !! record seafloor C (mol/m2) 2544 3004 ffastc(ji,jj) = 0.0 2545 3005 !! … … 2553 3013 f_fbenin_n(ji,jj) = ffastn(ji,jj) !! fast N -> benthic N (mol/m2) 2554 3014 endif 2555 fsedn 3015 fsedn(ji,jj) = ffastn(ji,jj) !! record seafloor N (mol/m2) 2556 3016 ffastn(ji,jj) = 0.0 2557 3017 !! … … 2564 3024 f_fbenin_fe(ji,jj) = ffastfe(ji,jj) !! fast Fe -> benthic Fe (mol/m2) 2565 3025 endif 2566 fsedfe 3026 fsedfe(ji,jj) = ffastfe(ji,jj) !! record seafloor Fe (mol/m2) 2567 3027 ffastfe(ji,jj) = 0.0 2568 3028 !! … … 2573 3033 f_fbenin_si(ji,jj) = ffastsi(ji,jj) !! fast Si -> benthic Si (mol/m2) 2574 3034 endif 2575 fsedsi = ffastsi(ji,jj) !! record seafloor Si (mol/m2)3035 fsedsi(ji,jj) = ffastsi(ji,jj) !! record seafloor Si (mol/m2) 2576 3036 ffastsi(ji,jj) = 0.0 2577 3037 !! … … 2582 3042 f_fbenin_ca(ji,jj) = ffastca(ji,jj) !! fast Ca -> benthic Ca (mol/m2) 2583 3043 endif 2584 fsedca = ffastca(ji,jj) !! record seafloor Ca (mol/m2)3044 fsedca(ji,jj) = ffastca(ji,jj) !! record seafloor Ca (mol/m2) 2585 3045 ffastca(ji,jj) = 0.0 2586 3046 endif … … 2779 3239 !! 2780 3240 !! community respiration (does not include CaCO3 terms - obviously!) 2781 fcomm_resp =fc_prod3241 fcomm_resp(ji,jj) = fcomm_resp(ji,jj) + fc_prod 2782 3242 !! 2783 3243 !! CaCO3 … … 3057 3517 # endif 3058 3518 3059 IF( ln_diatrc ) THEN 3519 IF( lk_iomput .AND. .NOT. ln_diatrc ) THEN 3520 !!---------------------------------------------------------------------- 3521 !! Add in XML diagnostics stuff 3522 !!---------------------------------------------------------------------- 3523 !! 3524 !! ** 2D diagnostics 3525 IF ( med_diag%PRN%dgsave ) THEN 3526 fprn2d(ji,jj) = fprn2d(ji,jj) + (fprn * zphn * fthk) 3527 ENDIF 3528 IF ( med_diag%MPN%dgsave ) THEN 3529 fdpn2d(ji,jj) = fdpn2d(ji,jj) + (fdpn * fthk) 3530 ENDIF 3531 IF ( med_diag%PRD%dgsave ) THEN 3532 fprd2d(ji,jj) = fprd2d(ji,jj) + (fprd * zphd * fthk) 3533 ENDIF 3534 IF( med_diag%MPD%dgsave ) THEN 3535 fdpd2d(ji,jj) = fdpd2d(ji,jj) + (fdpd * fthk) 3536 ENDIF 3537 ! IF( med_diag%DSED%dgsave ) THEN 3538 ! CALL iom_put( "DSED" , ftot_n ) 3539 ! ENDIF 3540 IF( med_diag%OPAL%dgsave ) THEN 3541 fprds2d(ji,jj) = fprds2d(ji,jj) + (fprds * zpds * fthk) 3542 ENDIF 3543 IF( med_diag%OPALDISS%dgsave ) THEN 3544 fsdiss2d(ji,jj) = fsdiss2d(ji,jj) + (fsdiss * fthk) 3545 ENDIF 3546 IF( med_diag%GMIPn%dgsave ) THEN 3547 fgmipn2d(ji,jj) = fgmipn2d(ji,jj) + (fgmipn * fthk) 3548 ENDIF 3549 IF( med_diag%GMID%dgsave ) THEN 3550 fgmid2d(ji,jj) = fgmid2d(ji,jj) + (fgmid * fthk) 3551 ENDIF 3552 IF( med_diag%MZMI%dgsave ) THEN 3553 fdzmi2d(ji,jj) = fdzmi2d(ji,jj) + (fdzmi * fthk) 3554 ENDIF 3555 IF( med_diag%GMEPN%dgsave ) THEN 3556 fgmepn2d(ji,jj) = fgmepn2d(ji,jj) + (fgmepn * fthk) 3557 ENDIF 3558 IF( med_diag%GMEPD%dgsave ) THEN 3559 fgmepd2d(ji,jj) = fgmepd2d(ji,jj) + (fgmepd * fthk) 3560 ENDIF 3561 IF( med_diag%GMEZMI%dgsave ) THEN 3562 fgmezmi2d(ji,jj) = fgmezmi2d(ji,jj) + (fgmezmi * fthk) 3563 ENDIF 3564 IF( med_diag%GMED%dgsave ) THEN 3565 fgmed2d(ji,jj) = fgmed2d(ji,jj) + (fgmed * fthk) 3566 ENDIF 3567 IF( med_diag%MZME%dgsave ) THEN 3568 fdzme2d(ji,jj) = fdzme2d(ji,jj) + (fdzme * fthk) 3569 ENDIF 3570 ! IF( med_diag%DEXP%dgsave ) THEN 3571 ! CALL iom_put( "DEXP" , ftot_n ) 3572 ! ENDIF 3573 IF( med_diag%DETN%dgsave ) THEN 3574 fslown2d(ji,jj) = fslown2d(ji,jj) + (fslown * fthk) 3575 ENDIF 3576 IF( med_diag%MDET%dgsave ) THEN 3577 fdd2d(ji,jj) = fdd2d(ji,jj) + (fdd * fthk) 3578 ENDIF 3579 IF( med_diag%AEOLIAN%dgsave ) THEN 3580 ffetop2d(ji,jj) = ffetop2d(ji,jj) + (ffetop * fthk) 3581 ENDIF 3582 IF( med_diag%BENTHIC%dgsave ) THEN 3583 ffebot2d(ji,jj) = ffebot2d(ji,jj) + (ffebot * fthk) 3584 ENDIF 3585 IF( med_diag%SCAVENGE%dgsave ) THEN 3586 ffescav2d(ji,jj) = ffescav2d(ji,jj) + (ffescav * fthk) 3587 ENDIF 3588 IF( med_diag%PN_JLIM%dgsave ) THEN 3589 fjln2d(ji,jj) = fjln2d(ji,jj) + (fjln * zphn * fthk) 3590 ENDIF 3591 IF( med_diag%PN_NLIM%dgsave ) THEN 3592 fnln2d(ji,jj) = fnln2d(ji,jj) + (fnln * zphn * fthk) 3593 ENDIF 3594 IF( med_diag%PN_FELIM%dgsave ) THEN 3595 ffln2d(ji,jj) = ffln2d(ji,jj) + (ffln * zphn * fthk) 3596 ENDIF 3597 IF( med_diag%PD_JLIM%dgsave ) THEN 3598 fjld2d(ji,jj) = fjld2d(ji,jj) + (fjld * zphd * fthk) 3599 ENDIF 3600 IF( med_diag%PD_NLIM%dgsave ) THEN 3601 fnld2d(ji,jj) = fnld2d(ji,jj) + (fnld * zphd * fthk) 3602 ENDIF 3603 IF( med_diag%PD_FELIM%dgsave ) THEN 3604 ffld2d(ji,jj) = ffld2d(ji,jj) + (ffld * zphd * fthk) 3605 ENDIF 3606 IF( med_diag%PD_SILIM%dgsave ) THEN 3607 fsld2d2(ji,jj) = fsld2d2(ji,jj) + (fsld2 * zphd * fthk) 3608 ENDIF 3609 IF( med_diag%PDSILIM2%dgsave ) THEN 3610 fsld2d(ji,jj) = fsld2d(ji,jj) + (fsld * zphd * fthk) 3611 ENDIF 3612 !! 3613 IF( med_diag%TOTREG_N%dgsave ) THEN 3614 fregen2d(ji,jj) = fregen2d(ji,jj) + fregen 3615 ENDIF 3616 IF( med_diag%TOTRG_SI%dgsave ) THEN 3617 fregensi2d() = fregensi2d() + fregensi 3618 ENDIF 3619 !! 3620 IF( med_diag%FASTN%dgsave ) THEN 3621 ftempn2d(ji,jj) = ftempn2d(ji,jj) + (ftempn * fthk) 3622 ENDIF 3623 IF( med_diag%FASTSI%dgsave ) THEN 3624 ftempsi2d(ji,jj) = ftempsi2d(ji,jj) + (ftempsi * fthk) 3625 ENDIF 3626 IF( med_diag%FASTFE%dgsave ) THEN 3627 ftempfe2d(ji,jj) =ftempfe2d(ji,jj) + (ftempfe * fthk) 3628 ENDIF 3629 IF( med_diag%FASTC%dgsave ) THEN 3630 ftempc2d(ji,jj) = ftempc2d(ji,jj) + (ftempc * fthk) 3631 ENDIF 3632 IF( med_diag%FASTCA%dgsave ) THEN 3633 ftempca2d(ji,jj) = ftempca2d(ji,jj) + (ftempca * fthk) 3634 ENDIF 3635 !! 3636 IF( med_diag%REMINN%dgsave ) THEN 3637 freminn2d(ji,jj) = freminn2d(ji,jj) + (freminn * fthk) 3638 ENDIF 3639 IF( med_diag%REMINSI%dgsave ) THEN 3640 freminsi2d(ji,jj) = freminsi2d(ji,jj) + (freminsi * fthk) 3641 ENDIF 3642 IF( med_diag%REMINFE%dgsave ) THEN 3643 freminfe2d(ji,jj)= freminfe2d(ji,jj) + (freminfe * fthk) 3644 ENDIF 3645 IF( med_diag%REMINC%dgsave ) THEN 3646 freminc2d(ji,jj) = freminc2d(ji,jj) + (freminc * fthk) 3647 ENDIF 3648 IF( med_diag%REMINCA%dgsave ) THEN 3649 freminca2d(ji,jj) = freminca2d(ji,jj) + (freminca * fthk) 3650 ENDIF 3651 !! 3652 !! 3653 !! 3654 !! 3655 !! 3656 !! 3657 !! 3658 !! 3659 !! 3660 # if defined key_roam 3661 IF (jk.eq.i0100) THEN 3662 IF( med_diag%RR_0100%dgsave ) THEN 3663 ffastca2d(ji,jj) = & 3664 ffastca(ji,jj)/MAX(ffastc(ji,jj), rsmall) 3665 ENDIF 3666 ELSE IF (jk.eq.i0500) THEN 3667 IF( med_diag%RR_0500%dgsave ) THEN 3668 ffastca2d(ji,jj) = & 3669 ffastca(ji,jj)/MAX(ffastc(ji,jj), rsmall) 3670 ENDIF 3671 ELSE IF (jk.eq.i1000) THEN 3672 IF( med_diag%RR_1000%dgsave ) THEN 3673 ffastca2d(ji,jj) = & 3674 ffastca(ji,jj)/MAX(ffastc(ji,jj), rsmall) 3675 ENDIF 3676 ENDIF 3677 !! 3678 !! 3679 IF( med_diag%RIV_N%dgsave ) THEN 3680 rivn2d(ji,jj) = rivn2d(ji,jj) + (f_riv_loc_n * fthk) 3681 ENDIF 3682 IF( med_diag%RIV_SI%dgsave ) THEN 3683 rivsi2d(ji,jj) = rivsi2d(ji,jj) + (f_riv_loc_si * fthk) 3684 ENDIF 3685 IF( med_diag%RIV_C%dgsave ) THEN 3686 rivc2d(ji,jj) = rivc2d(ji,jj) + (f_riv_loc_c * fthk) 3687 ENDIF 3688 IF( med_diag%RIV_ALK%dgsave ) THEN 3689 rivalk2d(ji,jj) = rivalk2d(ji,jj) + (f_riv_loc_alk * fthk) 3690 ENDIF 3691 IF( med_diag%DETC%dgsave ) THEN 3692 fslowc2d(ji,jj) = fslowc2d(ji,jj) + (fslowc * fthk) 3693 ENDIF 3694 !! 3695 !! 3696 !! 3697 IF( med_diag%PN_LLOSS%dgsave ) THEN 3698 fdpn22d(ji,jj) = fdpn22d(ji,jj) + (fdpn2 * fthk) 3699 ENDIF 3700 IF( med_diag%PD_LLOSS%dgsave ) THEN 3701 fdpd22d(ji,jj) = fdpd22d(ji,jj) + (fdpd2 * fthk) 3702 ENDIF 3703 IF( med_diag%ZI_LLOSS%dgsave ) THEN 3704 fdzmi22d(ji,jj) = fdzmi22d(ji,jj) + (fdzmi2 * fthk) 3705 ENDIF 3706 IF( med_diag%ZE_LLOSS%dgsave ) THEN 3707 fdzme22d(ji,jj) = fdzme22d(ji,jj) + (fdzme2 * fthk) 3708 ENDIF 3709 IF( med_diag%ZI_MES_N%dgsave ) THEN 3710 zimesn2d(ji,jj) = zimesn2d(ji,jj) + & 3711 (xphi * (fgmipn + fgmid) * fthk) 3712 ENDIF 3713 IF( med_diag%ZI_MES_D%dgsave ) THEN 3714 zimesd2d(ji,jj) = zimesd2d(ji,jj) + & 3715 ((1. - xbetan) * finmi * fthk) 3716 ENDIF 3717 IF( med_diag%ZI_MES_C%dgsave ) THEN 3718 zimesc2d(ji,jj) = zimesc2d(ji,jj) + & 3719 (xphi * ((xthetapn * fgmipn) + fgmidc) * fthk) 3720 ENDIF 3721 IF( med_diag%ZI_MESDC%dgsave ) THEN 3722 zimesdc2d(ji,jj) = zimesdc2d(ji,jj) + & 3723 ((1. - xbetac) * ficmi * fthk) 3724 ENDIF 3725 IF( med_diag%ZI_EXCR%dgsave ) THEN 3726 ziexcr2d(ji,jj) = ziexcr2d(ji,jj) + (fmiexcr * fthk) 3727 ENDIF 3728 IF( med_diag%ZI_RESP%dgsave ) THEN 3729 ziresp2d(ji,jj) = ziresp2d(ji,jj) + (fmiresp * fthk) 3730 ENDIF 3731 IF( med_diag%ZI_GROW%dgsave ) THEN 3732 zigrow2d(ji,jj) = zigrow2d(ji,jj) + (fmigrow * fthk) 3733 ENDIF 3734 IF( med_diag%ZE_MES_N%dgsave ) THEN 3735 zemesn2d(ji,jj) = zemesn2d(ji,jj) + & 3736 (xphi * (fgmepn + fgmepd + fgmezmi + fgmed) * fthk) 3737 ENDIF 3738 IF( med_diag%ZE_MES_D%dgsave ) THEN 3739 zemesd2d(ji,jj) = zemesd2d(ji,jj) + & 3740 ((1. - xbetan) * finme * fthk) 3741 ENDIF 3742 IF( med_diag%ZE_MES_C%dgsave ) THEN 3743 zemesc2d(ji,jj) = zemesc2d(ji,jj) + & 3744 (xphi * ((xthetapn * fgmepn) + (xthetapd * fgmepd) + & 3745 (xthetazmi * fgmezmi) + fgmedc) * fthk) 3746 ENDIF 3747 IF( med_diag%ZE_MESDC%dgsave ) THEN 3748 zemesdc2d(ji,jj) = zemesdc2d(ji,jj) + & 3749 ((1. - xbetac) * ficme * fthk) 3750 ENDIF 3751 IF( med_diag%ZE_EXCR%dgsave ) THEN 3752 zeexcr2d(ji,jj) = zeexcr2d(ji,jj) + (fmeexcr * fthk) 3753 ENDIF 3754 IF( med_diag%ZE_RESP%dgsave ) THEN 3755 zeresp2d(ji,jj) = zeresp2d(ji,jj) + (fmeresp * fthk) 3756 ENDIF 3757 IF( med_diag%ZE_GROW%dgsave ) THEN 3758 zegrow2d(ji,jj) = zegrow2d(ji,jj) + (fmegrow * fthk) 3759 ENDIF 3760 IF( med_diag%MDETC%dgsave ) THEN 3761 mdetc2d(ji,jj) = mdetc2d(ji,jj) + (fddc * fthk) 3762 ENDIF 3763 IF( med_diag%GMIDC%dgsave ) THEN 3764 gmidc2d(ji,jj) = gmidc2d(ji,jj) + (fgmidc * fthk) 3765 ENDIF 3766 IF( med_diag%GMEDC%dgsave ) THEN 3767 gmedc2d(ji,jj) = gmedc2d(ji,jj) + (fgmedc * fthk) 3768 ENDIF 3769 # endif 3770 !! 3771 !! 3772 !! 3773 !! 3774 !! 3775 !! ** 3D diagnostics 3776 IF( med_diag%TPP3%dgsave ) THEN 3777 tpp3d(ji,jj,jk) = (fprn + fprd) * zphn 3778 !CALL iom_put( "TPP3" , tpp3d ) 3779 ENDIF 3780 3781 IF( med_diag%REMIN3N%dgsave ) THEN 3782 remin3dn(ji,jj,jk) = fregen + (freminn * fthk) !! remineralisation 3783 !CALL iom_put( "REMIN3N" , remin3dn ) 3784 ENDIF 3785 IF( med_diag%PH3%dgsave ) THEN 3786 CALL iom_put( "PH3" , f3_pH ) 3787 ENDIF 3788 IF( med_diag%OM_CAL3%dgsave ) THEN 3789 CALL iom_put( "OM_CAL3" , f3_omcal ) 3790 ENDIF 3791 !! 3792 !! 3793 !! ** Without using iom_use 3794 ELSE IF( ln_diatrc ) THEN 3060 3795 !!---------------------------------------------------------------------- 3061 3796 !! Prepare 2D diagnostics … … 3065 3800 !! IF (lwp) write (*,*) '*******!MEDUSA DIAADD!*******',kt 3066 3801 !! endif 3067 trc2d(ji,jj,1) = trc2d(ji,jj,1) + ftot_n!! nitrogen inventory3068 trc2d(ji,jj,2) = trc2d(ji,jj,2) + ftot_si!! silicon inventory3069 trc2d(ji,jj,3) = trc2d(ji,jj,3) + ftot_fe!! iron inventory3802 trc2d(ji,jj,1) = ftot_n(ji,jj) !! nitrogen inventory 3803 trc2d(ji,jj,2) = ftot_si(ji,jj) !! silicon inventory 3804 trc2d(ji,jj,3) = ftot_fe(ji,jj) !! iron inventory 3070 3805 trc2d(ji,jj,4) = trc2d(ji,jj,4) + (fprn * zphn * fthk) !! non-diatom production 3071 3806 trc2d(ji,jj,5) = trc2d(ji,jj,5) + (fdpn * fthk) !! non-diatom non-grazing losses … … 3097 3832 trc2d(ji,jj,31) = trc2d(ji,jj,31) + (fsld2 * zphd * fthk) !! diatom Si limitation term 3098 3833 trc2d(ji,jj,32) = trc2d(ji,jj,32) + (fsld * zphd * fthk) !! diatom Si uptake limitation term 3099 if (jk.eq.i0100) trc2d(ji,jj,33) = fslownflux 3100 if (jk.eq.i0200) trc2d(ji,jj,34) = fslownflux 3101 if (jk.eq.i0500) trc2d(ji,jj,35) = fslownflux 3102 if (jk.eq.i1000) trc2d(ji,jj,36) = fslownflux 3834 if (jk.eq.i0100) trc2d(ji,jj,33) = fslownflux(ji,jj) !! slow detritus flux at 100 m 3835 if (jk.eq.i0200) trc2d(ji,jj,34) = fslownflux(ji,jj) !! slow detritus flux at 200 m 3836 if (jk.eq.i0500) trc2d(ji,jj,35) = fslownflux(ji,jj) !! slow detritus flux at 500 m 3837 if (jk.eq.i1000) trc2d(ji,jj,36) = fslownflux(ji,jj) !! slow detritus flux at 1000 m 3103 3838 trc2d(ji,jj,37) = trc2d(ji,jj,37) + fregen !! non-fast N full column regeneration 3104 3839 trc2d(ji,jj,38) = trc2d(ji,jj,38) + fregensi !! non-fast Si full column regeneration … … 3144 3879 !! if (jk.eq.1) trc2d(ji,jj,75) = real(iters) 3145 3880 !! diagnostic fields 76 to 80 calculated below 3146 trc2d(ji,jj,81) = trc2d(ji,jj,81) + fprn_ml 3147 trc2d(ji,jj,82) = trc2d(ji,jj,82) + fprd_ml 3881 trc2d(ji,jj,81) = trc2d(ji,jj,81) + fprn_ml(ji,jj) !! mixed layer non-diatom production 3882 trc2d(ji,jj,82) = trc2d(ji,jj,82) + fprd_ml(ji,jj) !! mixed layer diatom production 3148 3883 # if defined key_gulf_finland 3149 3884 if (jk.eq.1) trc2d(ji,jj,83) = real(ibio_switch) !! Gulf of Finland check … … 3152 3887 # endif 3153 3888 trc2d(ji,jj,84) = fccd(ji,jj) !! last model level above calcite CCD depth 3154 if (jk.eq.1) trc2d(ji,jj,85) = xFree 3155 if (jk.eq.i0200) trc2d(ji,jj,86) = xFree 3156 if (jk.eq.i0200) trc2d(ji,jj,87) = xFree 3157 if (jk.eq.i0500) trc2d(ji,jj,88) = xFree 3158 if (jk.eq.i1000) trc2d(ji,jj,89) = xFree 3889 if (jk.eq.1) trc2d(ji,jj,85) = xFree(ji,jj) !! surface "free" iron 3890 if (jk.eq.i0200) trc2d(ji,jj,86) = xFree(ji,jj) !! "free" iron at 100 m 3891 if (jk.eq.i0200) trc2d(ji,jj,87) = xFree(ji,jj) !! "free" iron at 200 m 3892 if (jk.eq.i0500) trc2d(ji,jj,88) = xFree(ji,jj) !! "free" iron at 500 m 3893 if (jk.eq.i1000) trc2d(ji,jj,89) = xFree(ji,jj) !! "free" iron at 1000 m 3159 3894 !! AXY (27/06/12): extract "euphotic depth" 3160 3895 if (jk.eq.1) trc2d(ji,jj,90) = xze(ji,jj) 3161 3896 !! 3162 ftot_pn(ji,jj) = ftot_pn(ji,jj) + (zphn * fthk) !! vertical integral non-diatom phytoplankton3163 ftot_pd(ji,jj) = ftot_pd(ji,jj) + (zphd * fthk) !! vertical integral diatom phytoplankton3164 ftot_zmi(ji,jj) = ftot_zmi(ji,jj) + (zzmi * fthk) !! vertical integral microzooplankton3165 ftot_zme(ji,jj) = ftot_zme(ji,jj) + (zzme * fthk) !! vertical integral mesozooplankton3166 ftot_det(ji,jj) = ftot_det(ji,jj) + (zdet * fthk) !! vertical integral slow detritus, nitrogen3167 ftot_dtc(ji,jj) = ftot_dtc(ji,jj) + (zdtc * fthk) !! vertical integral slow detritus, carbon3168 3897 # if defined key_roam 3169 3898 !! ROAM provisionally has access to a further 20 2D diagnostics … … 3217 3946 trc2d(ji,jj,140) = trc2d(ji,jj,140) + (f_riv_loc_alk * fthk) 3218 3947 trc2d(ji,jj,141) = trc2d(ji,jj,141) + (fslowc * fthk) !! slow sinking detritus C production 3219 if (jk.eq.i0100) trc2d(ji,jj,142) = fslowcflux 3220 if (jk.eq.i0200) trc2d(ji,jj,143) = fslowcflux 3221 if (jk.eq.i0500) trc2d(ji,jj,144) = fslowcflux 3222 if (jk.eq.i1000) trc2d(ji,jj,145) = fslowcflux 3223 trc2d(ji,jj,146) = trc2d(ji,jj,146) + ftot_c 3224 trc2d(ji,jj,147) = trc2d(ji,jj,147) + ftot_a 3225 trc2d(ji,jj,148) = trc2d(ji,jj,148) + ftot_o2 3948 if (jk.eq.i0100) trc2d(ji,jj,142) = fslowcflux(ji,jj) !! slow detritus flux at 100 m 3949 if (jk.eq.i0200) trc2d(ji,jj,143) = fslowcflux(ji,jj) !! slow detritus flux at 200 m 3950 if (jk.eq.i0500) trc2d(ji,jj,144) = fslowcflux(ji,jj) !! slow detritus flux at 500 m 3951 if (jk.eq.i1000) trc2d(ji,jj,145) = fslowcflux(ji,jj) !! slow detritus flux at 1000 m 3952 trc2d(ji,jj,146) = trc2d(ji,jj,146) + ftot_c(ji,jj) !! carbon inventory 3953 trc2d(ji,jj,147) = trc2d(ji,jj,147) + ftot_a(ji,jj) !! alkalinity inventory 3954 trc2d(ji,jj,148) = trc2d(ji,jj,148) + ftot_o2(ji,jj) !! oxygen inventory 3226 3955 if (jk.eq.(mbathy(ji,jj)-1)) then 3227 3956 trc2d(ji,jj,149) = f_benout_lyso_ca(ji,jj) 3228 3957 endif 3229 trc2d(ji,jj,150) = trc2d(ji,jj,150) + (fcomm_resp * fthk)!! community respiration3958 trc2d(ji,jj,150) = fcomm_resp(ji,jj) * fthk !! community respiration 3230 3959 !! 3231 3960 !! AXY (14/02/14): a Valentines Day gift to BASIN - a shedload of new … … 3291 4020 !! 3292 4021 !! extract fields at surface 3293 if (jk .eq. 1) then 3294 trc2d(ji,jj,172) = zchn !! Pn chlorophyll 3295 trc2d(ji,jj,173) = zphn !! Pn biomass 3296 trc2d(ji,jj,174) = fjln !! Pn J-term 3297 trc2d(ji,jj,175) = (fprn * zphn) !! Pn PP 3298 trc2d(ji,jj,176) = zchd !! Pd chlorophyll 3299 trc2d(ji,jj,177) = zphd !! Pd biomass 3300 trc2d(ji,jj,178) = fjld !! Pd J-term 3301 trc2d(ji,jj,179) = xpar(ji,jj,jk) !! Pd PP 3302 trc2d(ji,jj,180) = loc_T !! local temperature 3303 endif 3304 !! 3305 !! extract fields at 50m (actually 44-50m) 3306 if (jk .eq. 18) then 3307 trc2d(ji,jj,181) = zchn !! Pn chlorophyll 3308 trc2d(ji,jj,182) = zphn !! Pn biomass 3309 trc2d(ji,jj,183) = fjln !! Pn J-term 3310 trc2d(ji,jj,184) = (fprn * zphn) !! Pn PP 3311 trc2d(ji,jj,185) = zchd !! Pd chlorophyll 3312 trc2d(ji,jj,186) = zphd !! Pd biomass 3313 trc2d(ji,jj,187) = fjld !! Pd J-term 3314 trc2d(ji,jj,188) = xpar(ji,jj,jk) !! Pd PP 3315 trc2d(ji,jj,189) = loc_T !! local temperature 3316 endif 3317 !! 3318 !! extract fields at 100m 3319 if (jk .eq. i0100) then 3320 trc2d(ji,jj,190) = zchn !! Pn chlorophyll 3321 trc2d(ji,jj,191) = zphn !! Pn biomass 3322 trc2d(ji,jj,192) = fjln !! Pn J-term 3323 trc2d(ji,jj,193) = (fprn * zphn) !! Pn PP 3324 trc2d(ji,jj,194) = zchd !! Pd chlorophyll 3325 trc2d(ji,jj,195) = zphd !! Pd biomass 3326 trc2d(ji,jj,196) = fjld !! Pd J-term 3327 trc2d(ji,jj,197) = xpar(ji,jj,jk) !! Pd PP 3328 trc2d(ji,jj,198) = loc_T !! local temperature 3329 endif 4022 !! if (jk .eq. 1) then 4023 !! trc2d(ji,jj,172) = zchn !! Pn chlorophyll 4024 !! trc2d(ji,jj,173) = zphn !! Pn biomass 4025 !! trc2d(ji,jj,174) = fjln !! Pn J-term 4026 !! trc2d(ji,jj,175) = (fprn * zphn) !! Pn PP 4027 !! trc2d(ji,jj,176) = zchd !! Pd chlorophyll 4028 !! trc2d(ji,jj,177) = zphd !! Pd biomass 4029 !! trc2d(ji,jj,178) = fjld !! Pd J-term 4030 !! trc2d(ji,jj,179) = xpar(ji,jj,jk) !! Pd PP 4031 !! trc2d(ji,jj,180) = loc_T !! local temperature 4032 !! endif 4033 !! !! 4034 !! !! extract fields at 50m (actually 44-50m) 4035 !! if (jk .eq. 18) then 4036 !! trc2d(ji,jj,181) = zchn !! Pn chlorophyll 4037 !! trc2d(ji,jj,182) = zphn !! Pn biomass 4038 !! trc2d(ji,jj,183) = fjln !! Pn J-term 4039 !! trc2d(ji,jj,184) = (fprn * zphn) !! Pn PP 4040 !! trc2d(ji,jj,185) = zchd !! Pd chlorophyll 4041 !! trc2d(ji,jj,186) = zphd !! Pd biomass 4042 !! trc2d(ji,jj,187) = fjld !! Pd J-term 4043 !! trc2d(ji,jj,188) = xpar(ji,jj,jk) !! Pd PP 4044 !! trc2d(ji,jj,189) = loc_T !! local temperature 4045 !! endif 4046 !! !! 4047 !! !! extract fields at 100m 4048 !! if (jk .eq. i0100) then 4049 !! trc2d(ji,jj,190) = zchn !! Pn chlorophyll 4050 !! trc2d(ji,jj,191) = zphn !! Pn biomass 4051 !! trc2d(ji,jj,192) = fjln !! Pn J-term 4052 !! trc2d(ji,jj,193) = (fprn * zphn) !! Pn PP 4053 !! trc2d(ji,jj,194) = zchd !! Pd chlorophyll 4054 !! trc2d(ji,jj,195) = zphd !! Pd biomass 4055 !! trc2d(ji,jj,196) = fjld !! Pd J-term 4056 !! trc2d(ji,jj,197) = xpar(ji,jj,jk) !! Pd PP 4057 !! trc2d(ji,jj,198) = loc_T !! local temperature 4058 !! endif 4059 !! 3330 4060 !! extract relevant BASIN fields at 150m 3331 4061 if (jk .eq. i0150) then 3332 !!trc2d(ji,jj,172) = trc2d(ji,jj,4) !! Pn PP3333 !!trc2d(ji,jj,173) = trc2d(ji,jj,151) !! Pn linear loss3334 !!trc2d(ji,jj,174) = trc2d(ji,jj,5) !! Pn non-linear loss3335 !!trc2d(ji,jj,175) = trc2d(ji,jj,11) !! Pn grazing to Zmi3336 !!trc2d(ji,jj,176) = trc2d(ji,jj,14) !! Pn grazing to Zme3337 !!trc2d(ji,jj,177) = trc2d(ji,jj,6) !! Pd PP3338 !!trc2d(ji,jj,178) = trc2d(ji,jj,152) !! Pd linear loss3339 !!trc2d(ji,jj,179) = trc2d(ji,jj,7) !! Pd non-linear loss3340 !!trc2d(ji,jj,180) = trc2d(ji,jj,15) !! Pd grazing to Zme3341 !!trc2d(ji,jj,181) = trc2d(ji,jj,12) !! Zmi grazing on D3342 !!trc2d(ji,jj,182) = trc2d(ji,jj,170) !! Zmi grazing on Dc3343 !!trc2d(ji,jj,183) = trc2d(ji,jj,155) !! Zmi messy feeding loss to N3344 !!trc2d(ji,jj,184) = trc2d(ji,jj,156) !! Zmi messy feeding loss to D3345 !!trc2d(ji,jj,185) = trc2d(ji,jj,157) !! Zmi messy feeding loss to DIC3346 !!trc2d(ji,jj,186) = trc2d(ji,jj,158) !! Zmi messy feeding loss to Dc3347 !!trc2d(ji,jj,187) = trc2d(ji,jj,159) !! Zmi excretion3348 !!trc2d(ji,jj,188) = trc2d(ji,jj,160) !! Zmi respiration3349 !!trc2d(ji,jj,189) = trc2d(ji,jj,161) !! Zmi growth3350 !!trc2d(ji,jj,190) = trc2d(ji,jj,153) !! Zmi linear loss3351 !!trc2d(ji,jj,191) = trc2d(ji,jj,13) !! Zmi non-linear loss3352 !!trc2d(ji,jj,192) = trc2d(ji,jj,16) !! Zmi grazing to Zme3353 !!trc2d(ji,jj,193) = trc2d(ji,jj,17) !! Zme grazing on D3354 !!trc2d(ji,jj,194) = trc2d(ji,jj,171) !! Zme grazing on Dc3355 !!trc2d(ji,jj,195) = trc2d(ji,jj,162) !! Zme messy feeding loss to N3356 !!trc2d(ji,jj,196) = trc2d(ji,jj,163) !! Zme messy feeding loss to D3357 !!trc2d(ji,jj,197) = trc2d(ji,jj,164) !! Zme messy feeding loss to DIC3358 !!trc2d(ji,jj,198) = trc2d(ji,jj,165) !! Zme messy feeding loss to Dc4062 trc2d(ji,jj,172) = trc2d(ji,jj,4) !! Pn PP 4063 trc2d(ji,jj,173) = trc2d(ji,jj,151) !! Pn linear loss 4064 trc2d(ji,jj,174) = trc2d(ji,jj,5) !! Pn non-linear loss 4065 trc2d(ji,jj,175) = trc2d(ji,jj,11) !! Pn grazing to Zmi 4066 trc2d(ji,jj,176) = trc2d(ji,jj,14) !! Pn grazing to Zme 4067 trc2d(ji,jj,177) = trc2d(ji,jj,6) !! Pd PP 4068 trc2d(ji,jj,178) = trc2d(ji,jj,152) !! Pd linear loss 4069 trc2d(ji,jj,179) = trc2d(ji,jj,7) !! Pd non-linear loss 4070 trc2d(ji,jj,180) = trc2d(ji,jj,15) !! Pd grazing to Zme 4071 trc2d(ji,jj,181) = trc2d(ji,jj,12) !! Zmi grazing on D 4072 trc2d(ji,jj,182) = trc2d(ji,jj,170) !! Zmi grazing on Dc 4073 trc2d(ji,jj,183) = trc2d(ji,jj,155) !! Zmi messy feeding loss to N 4074 trc2d(ji,jj,184) = trc2d(ji,jj,156) !! Zmi messy feeding loss to D 4075 trc2d(ji,jj,185) = trc2d(ji,jj,157) !! Zmi messy feeding loss to DIC 4076 trc2d(ji,jj,186) = trc2d(ji,jj,158) !! Zmi messy feeding loss to Dc 4077 trc2d(ji,jj,187) = trc2d(ji,jj,159) !! Zmi excretion 4078 trc2d(ji,jj,188) = trc2d(ji,jj,160) !! Zmi respiration 4079 trc2d(ji,jj,189) = trc2d(ji,jj,161) !! Zmi growth 4080 trc2d(ji,jj,190) = trc2d(ji,jj,153) !! Zmi linear loss 4081 trc2d(ji,jj,191) = trc2d(ji,jj,13) !! Zmi non-linear loss 4082 trc2d(ji,jj,192) = trc2d(ji,jj,16) !! Zmi grazing to Zme 4083 trc2d(ji,jj,193) = trc2d(ji,jj,17) !! Zme grazing on D 4084 trc2d(ji,jj,194) = trc2d(ji,jj,171) !! Zme grazing on Dc 4085 trc2d(ji,jj,195) = trc2d(ji,jj,162) !! Zme messy feeding loss to N 4086 trc2d(ji,jj,196) = trc2d(ji,jj,163) !! Zme messy feeding loss to D 4087 trc2d(ji,jj,197) = trc2d(ji,jj,164) !! Zme messy feeding loss to DIC 4088 trc2d(ji,jj,198) = trc2d(ji,jj,165) !! Zme messy feeding loss to Dc 3359 4089 trc2d(ji,jj,199) = trc2d(ji,jj,166) !! Zme excretion 3360 4090 trc2d(ji,jj,200) = trc2d(ji,jj,167) !! Zme respiration … … 3371 4101 trc2d(ji,jj,211) = trc2d(ji,jj,67) !! Fast detritus remineralisation, C 3372 4102 trc2d(ji,jj,212) = trc2d(ji,jj,150) !! Community respiration 3373 trc2d(ji,jj,213) = fslownflux 3374 trc2d(ji,jj,214) = fslowcflux 4103 trc2d(ji,jj,213) = fslownflux(ji,jj) !! Slow detritus N flux at 150 m 4104 trc2d(ji,jj,214) = fslowcflux(ji,jj) !! Slow detritus C flux at 150 m 3375 4105 trc2d(ji,jj,215) = ffastn(ji,jj) !! Fast detritus N flux at 150 m 3376 4106 trc2d(ji,jj,216) = ffastc(ji,jj) !! Fast detritus C flux at 150 m … … 3400 4130 !! 3401 4131 trc3d(ji,jj,jk,1) = ((fprn + fprd) * zphn) !! primary production 3402 trc3d(ji,jj,jk,2) = fslownflux + ffastn(ji,jj) !! detrital flux4132 trc3d(ji,jj,jk,2) = fslownflux(ji,jj) + ffastn(ji,jj) !! detrital flux 3403 4133 trc3d(ji,jj,jk,3) = fregen + (freminn * fthk) !! remineralisation 3404 4134 # if defined key_roam … … 3414 4144 END DO 3415 4145 END DO 4146 !! 4147 IF( lk_iomput .AND. .NOT. ln_diatrc ) THEN 4148 !! first - 2D diag implemented 4149 !! on every K level 4150 !!----------------------------------------- 4151 !! -- 4152 !!second - 2d specific k level diags 4153 !! 4154 !!----------------------------------------- 4155 IF (jk.eq.1) THEN 4156 IF( med_diag%MED_QSR%dgsave ) THEN 4157 CALL iom_put( "MED_QSR" , qsr ) ! 4158 ENDIF 4159 IF( med_diag%MED_XPAR%dgsave ) THEN 4160 CALL iom_put( "MED_XPAR" , xpar ) ! 4161 ENDIF 4162 IF( med_diag%OCAL_CCD%dgsave ) THEN 4163 CALL iom_put( "OCAL_CCD" , ocal_ccd ) ! 4164 ENDIF 4165 IF( med_diag%FE_0000%dgsave ) THEN 4166 CALL iom_put( "FE_0000" , xFree ) ! 4167 ENDIF 4168 IF( med_diag%MED_XZE%dgsave ) THEN 4169 CALL iom_put( "MED_XZE" , xze ) ! 4170 ENDIF 4171 # if defined key_roam 4172 IF( med_diag%WIND%dgsave ) THEN 4173 CALL iom_put( "WIND" , wndm ) 4174 ENDIF 4175 IF( med_diag%ATM_PCO2%dgsave ) THEN 4176 CALL iom_put( "ATM_PCO2" , f_pco2a2d ) 4177 CALL wrk_dealloc( jpi, jpj, f_pco2a2d ) 4178 ENDIF 4179 IF( med_diag%OCN_PH%dgsave ) THEN 4180 zw2d(:,:) = f3_pH(:,:,jk) 4181 CALL iom_put( "OCN_PH" , zw2d ) 4182 ENDIF 4183 IF( med_diag%OCN_PCO2%dgsave ) THEN 4184 CALL iom_put( "OCN_PCO2" , f_pco2w2d ) 4185 CALL wrk_dealloc( jpi, jpj, f_pco2w2d ) 4186 ENDIF 4187 IF( med_diag%OCNH2CO3%dgsave ) THEN 4188 zw2d(:,:) = f3_h2co3(:,:,jk) 4189 CALL iom_put( "OCNH2CO3" , zw2d ) 4190 ENDIF 4191 IF( med_diag%OCN_HCO3%dgsave ) THEN 4192 zw2d(:,:) = f3_hco3(:,:,jk) 4193 CALL iom_put( "OCN_HCO3" , zw2d ) 4194 ENDIF 4195 IF( med_diag%OCN_CO3%dgsave ) THEN 4196 zw2d(:,:) = f3_co3(:,:,jk) 4197 CALL iom_put( "OCN_CO3" , zw2d ) 4198 ENDIF 4199 IF( med_diag%CO2FLUX%dgsave ) THEN 4200 CALL iom_put( "CO2FLUX" , f_co2flux2d ) 4201 CALL wrk_dealloc( jpi, jpj, f_co2flux2d ) 4202 ENDIF 4203 IF( med_diag%OM_CAL%dgsave ) THEN 4204 CALL iom_put( "OM_CAL" , f_omcal ) 4205 ENDIF 4206 IF( med_diag%OM_ARG%dgsave ) THEN 4207 CALL iom_put( "OM_ARG" , f_omarg ) 4208 ENDIF 4209 IF( med_diag%TCO2%dgsave ) THEN 4210 CALL iom_put( "TCO2" , f_TDIC2d ) 4211 CALL wrk_dealloc( jpi, jpj, f_TDIC2d ) 4212 ENDIF 4213 IF( med_diag%TALK%dgsave ) THEN 4214 CALL iom_put( "TALK" , f_TALK2d ) 4215 CALL wrk_dealloc( jpi, jpj, f_TALK2d ) 4216 ENDIF 4217 IF( med_diag%KW660%dgsave ) THEN 4218 CALL iom_put( "KW660" , f_kw6602d ) 4219 CALL wrk_dealloc( jpi, jpj, f_kw6602d ) 4220 ENDIF 4221 IF( med_diag%ATM_PP0%dgsave ) THEN 4222 CALL iom_put( "ATM_PP0" , f_pp02d ) 4223 CALL wrk_dealloc( jpi, jpj, f_pp02d ) 4224 ENDIF 4225 IF( med_diag%O2FLUX%dgsave ) THEN 4226 CALL iom_put( "O2FLUX" , f_o2flux2d ) 4227 CALL wrk_dealloc( jpi, jpj, f_o2flux2d ) 4228 ENDIF 4229 IF( med_diag%O2SAT%dgsave ) THEN 4230 CALL iom_put( "O2SAT" , f_o2sat2d ) 4231 CALL wrk_dealloc( jpi, jpj, f_o2sat2d ) 4232 ENDIF 4233 IF( med_diag%CAL_CCD%dgsave ) THEN 4234 CALL iom_put( "CAL_CCD" , f2_ccd_cal ) 4235 ENDIF 4236 IF( med_diag%ARG_CCD%dgsave ) THEN 4237 CALL iom_put( "ARG_CCD" , f2_ccd_arg ) 4238 ENDIF 4239 IF (jdms .eq. 1) THEN 4240 IF( med_diag%DMS_SURF%dgsave ) THEN 4241 CALL iom_put( "DMS_SURF" , dms_surf2d ) 4242 CALL wrk_dealloc( jpi, jpj, dms_surf2d ) 4243 ENDIF 4244 IF( med_diag%DMS_ANDR%dgsave ) THEN 4245 CALL iom_put( "DMS_ANDR" , dms_andr2d ) 4246 CALL wrk_dealloc( jpi, jpj, dms_andr2d ) 4247 ENDIF 4248 IF( med_diag%DMS_SIMO%dgsave ) THEN 4249 CALL iom_put( "DMS_SIMO" , dms_simo2d ) 4250 CALL wrk_dealloc( jpi, jpj, dms_simo2d ) 4251 ENDIF 4252 IF( med_diag%DMS_ARAN%dgsave ) THEN 4253 CALL iom_put( "DMS_ARAN" , dms_aran2d ) 4254 CALL wrk_dealloc( jpi, jpj, dms_aran2d ) 4255 ENDIF 4256 IF( med_diag%DMS_HALL%dgsave ) THEN 4257 CALL iom_put( "DMS_HALL" , dms_hall2d ) 4258 CALL wrk_dealloc( jpi, jpj, dms_hall2d ) 4259 ENDIF 4260 ENDIF 4261 # endif 4262 ELSE IF (jk.eq.i0100) THEN 4263 IF( med_diag%SDT__100%dgsave ) THEN 4264 CALL iom_put( "SDT__100" , fslownflux ) 4265 ENDIF 4266 IF( med_diag%REG__100%dgsave ) THEN 4267 CALL iom_put( "REG__100" , fregen2d ) 4268 ENDIF 4269 IF( med_diag%FDT__100%dgsave ) THEN 4270 CALL iom_put( "FDT__100" , ffastn ) 4271 ENDIF 4272 IF( med_diag%RG__100F%dgsave ) THEN 4273 CALL iom_put( "RG__100F" , fregenfast ) 4274 ENDIF 4275 IF( med_diag%FDS__100%dgsave ) THEN 4276 CALL iom_put( "FDS__100" , ffastsi ) 4277 ENDIF 4278 IF( med_diag%RGS_100F%dgsave ) THEN 4279 CALL iom_put( "RGS_100F" , fregenfastsi ) 4280 ENDIF 4281 IF( med_diag%FE_0100%dgsave ) THEN 4282 CALL iom_put( "FE_0100" , xFree ) 4283 ENDIF 4284 # if defined key_roam 4285 IF( med_diag%RR_0100%dgsave ) THEN 4286 CALL iom_put( "RR_0100" , ffastca2d ) 4287 ENDIF 4288 IF( med_diag%SDC__100%dgsave ) THEN 4289 CALL iom_put( "SDC__100" , fslowcflux ) 4290 ENDIF 4291 ELSE IF (jk.eq.i0150) THEN 4292 IF( med_diag%BASSIN_01%dgsave ) THEN 4293 CALL iom_put( "BASSIN_01" , fprn2d ) 4294 ENDIF 4295 IF( med_diag%BASSIN_02%dgsave ) THEN 4296 CALL iom_put( "BASSIN_02" , fdpn22d ) 4297 ENDIF 4298 IF( med_diag%BASSIN_03%dgsave ) THEN 4299 CALL iom_put( "BASSIN_03" , fdpn2d ) 4300 ENDIF 4301 IF( med_diag%BASSIN_04%dgsave ) THEN 4302 CALL iom_put( "BASSIN_04" , fgmipn2d ) 4303 ENDIF 4304 IF( med_diag%BASSIN_05%dgsave ) THEN 4305 CALL iom_put( "BASSIN_05" , fgmepn2d ) 4306 ENDIF 4307 IF( med_diag%BASSIN_06%dgsave ) THEN 4308 CALL iom_put( "BASSIN_06" , fprd2d ) 4309 ENDIF 4310 IF( med_diag%BASSIN_07%dgsave ) THEN 4311 CALL iom_put( "BASSIN_07" , fdpd22d ) 4312 ENDIF 4313 IF( med_diag%BASSIN_08%dgsave ) THEN 4314 CALL iom_put( "BASSIN_08" , fdpd2d ) 4315 ENDIF 4316 IF( med_diag%BASSIN_09%dgsave ) THEN 4317 CALL iom_put( "BASSIN_09" , fgmepd2d ) 4318 ENDIF 4319 IF( med_diag%BASSIN_10%dgsave ) THEN 4320 CALL iom_put( "BASSIN_10" , fgmid2d ) 4321 ENDIF 4322 IF( med_diag%BASSIN_11%dgsave ) THEN 4323 CALL iom_put( "BASSIN_11" , gmidc2d ) 4324 ENDIF 4325 IF( med_diag%BASSIN_12%dgsave ) THEN 4326 CALL iom_put( "BASSIN_12" , zimesn2d ) 4327 ENDIF 4328 IF( med_diag%BASSIN_13%dgsave ) THEN 4329 CALL iom_put( "BASSIN_13" , zimesd2d ) 4330 ENDIF 4331 IF( med_diag%BASSIN_14%dgsave ) THEN 4332 CALL iom_put( "BASSIN_14" , zimesc2d ) 4333 ENDIF 4334 IF( med_diag%BASSIN_15%dgsave ) THEN 4335 CALL iom_put( "BASSIN_15" , zimesdc2d ) 4336 ENDIF 4337 IF( med_diag%BASSIN_16%dgsave ) THEN 4338 CALL iom_put( "BASSIN_16" , ziexcr2d ) 4339 ENDIF 4340 IF( med_diag%BASSIN_17%dgsave ) THEN 4341 CALL iom_put( "BASSIN_17" , ziresp2d ) 4342 ENDIF 4343 IF( med_diag%BASSIN_18%dgsave ) THEN 4344 CALL iom_put( "BASSIN_18" , zigrow2d ) 4345 ENDIF 4346 IF( med_diag%BASSIN_19%dgsave ) THEN 4347 CALL iom_put( "BASSIN_19" , fdzmi22d ) 4348 ENDIF 4349 IF( med_diag%BASSIN_20%dgsave ) THEN 4350 CALL iom_put( "BASSIN_20" , fdzmi2d ) 4351 ENDIF 4352 IF( med_diag%BASSIN_21%dgsave ) THEN 4353 CALL iom_put( "BASSIN_21" , fgmezmi2d ) 4354 ENDIF 4355 IF( med_diag%BASSIN_22%dgsave ) THEN 4356 CALL iom_put( "BASSIN_22" , fgmed2d ) 4357 ENDIF 4358 IF( med_diag%BASSIN_23%dgsave ) THEN 4359 CALL iom_put( "BASSIN_23" , gmedc2d ) 4360 ENDIF 4361 IF( med_diag%BASSIN_24%dgsave ) THEN 4362 CALL iom_put( "BASSIN_24" , zemesn2d ) 4363 ENDIF 4364 IF( med_diag%BASSIN_25%dgsave ) THEN 4365 CALL iom_put( "BASSIN_25" , zemesd2d ) 4366 ENDIF 4367 IF( med_diag%BASSIN_26%dgsave ) THEN 4368 CALL iom_put( "BASSIN_26" , zemesc2d ) 4369 ENDIF 4370 IF( med_diag%BASSIN_27%dgsave ) THEN 4371 CALL iom_put( "BASSIN_27" , zemesdc2d ) 4372 ENDIF 4373 IF( med_diag%BASSIN_28%dgsave ) THEN 4374 CALL iom_put( "BASSIN_28" , zeexcr2d ) 4375 ENDIF 4376 IF( med_diag%BASSIN_29%dgsave ) THEN 4377 CALL iom_put( "BASSIN_29" , zeresp2d ) 4378 ENDIF 4379 IF( med_diag%BASSIN_30%dgsave ) THEN 4380 CALL iom_put( "BASSIN_30" , zegrow2d ) 4381 ENDIF 4382 IF( med_diag%BASSIN_31%dgsave ) THEN 4383 CALL iom_put( "BASSIN_30" , fdzme22d ) 4384 ENDIF 4385 IF( med_diag%BASSIN_32%dgsave ) THEN 4386 CALL iom_put( "BASSIN_32" , fdzme2d ) 4387 ENDIF 4388 IF( med_diag%BASSIN_33%dgsave ) THEN 4389 CALL iom_put( "BASSIN_33" , fslown2d ) 4390 ENDIF 4391 IF( med_diag%BASSIN_34%dgsave ) THEN 4392 CALL iom_put( "BASSIN_34" , fdd2d ) 4393 ENDIF 4394 IF( med_diag%BASSIN_35%dgsave ) THEN 4395 CALL iom_put( "BASSIN_35" , fslowc2d ) 4396 ENDIF 4397 IF( med_diag%BASSIN_36%dgsave ) THEN 4398 CALL iom_put( "BASSIN_36" , mdetc2d ) 4399 ENDIF 4400 IF( med_diag%BASSIN_37%dgsave ) THEN 4401 CALL iom_put( "BASSIN_37" , ftempn2d ) 4402 ENDIF 4403 IF( med_diag%BASSIN_38%dgsave ) THEN 4404 CALL iom_put( "BASSIN_38" , freminn2d ) 4405 ENDIF 4406 IF( med_diag%BASSIN_39%dgsave ) THEN 4407 CALL iom_put( "BASSIN_39" , ftempc2d ) 4408 ENDIF 4409 IF( med_diag%BASSIN_40%dgsave ) THEN 4410 CALL iom_put( "BASSIN_40" , freminc2d ) 4411 ENDIF 4412 IF( med_diag%BASSIN_41%dgsave ) THEN 4413 CALL iom_put( "BASSIN_41" , fcomm_resp ) 4414 ENDIF 4415 IF( med_diag%BASSIN_42%dgsave ) THEN 4416 CALL iom_put( "BASSIN_42" , fslownflux ) 4417 ENDIF 4418 IF( med_diag%BASSIN_43%dgsave ) THEN 4419 CALL iom_put( "BASSIN_43" , fslowcflux ) 4420 ENDIF 4421 IF( med_diag%BASSIN_44%dgsave ) THEN 4422 CALL iom_put( "BASSIN_44" , ffastn ) 4423 ENDIF 4424 IF( med_diag%BASSIN_45%dgsave ) THEN 4425 CALL iom_put( "BASSIN_45" , ffastc ) 4426 ENDIF 4427 # endif 4428 ELSE IF (jk.eq.i0200) THEN 4429 IF( med_diag%SDT__200%dgsave ) THEN 4430 CALL iom_put( "SDT__200" , fslownflux ) 4431 ENDIF 4432 IF( med_diag%REG__200%dgsave ) THEN 4433 CALL iom_put( "REG__200" , fregen2d ) 4434 ENDIF 4435 IF( med_diag%FDT__200%dgsave ) THEN 4436 CALL iom_put( "FDT__200" , ffastn ) 4437 ENDIF 4438 IF( med_diag%RG__200F%dgsave ) THEN 4439 CALL iom_put( "RG__200F" , fregenfast ) 4440 ENDIF 4441 IF( med_diag%FDS__200%dgsave ) THEN 4442 CALL iom_put( "FDS__200" , ffastsi ) 4443 ENDIF 4444 IF( med_diag%RGS_200F%dgsave ) THEN 4445 CALL iom_put( "RGS_200F" , fregenfastsi ) 4446 ENDIF 4447 IF( med_diag%FE_0200%dgsave ) THEN 4448 CALL iom_put( "FE_0200" , xFree ) 4449 ENDIF 4450 # if defined key_roam 4451 IF( med_diag%SDC__200%dgsave ) THEN 4452 CALL iom_put( "SDC__200" , fslowcflux ) 4453 ENDIF 4454 # endif 4455 ELSE IF (jk.eq.i0500) THEN 4456 IF( med_diag%SDT__500%dgsave ) THEN 4457 CALL iom_put( "SDT__500" , fregen2d ) 4458 ENDIF 4459 IF( med_diag%REG__500%dgsave ) THEN 4460 CALL iom_put( "REG__500" , fregen2d ) 4461 ENDIF 4462 IF( med_diag%FDT__500%dgsave ) THEN 4463 CALL iom_put( "FDT__500" , ffastn ) 4464 ENDIF 4465 IF( med_diag%RG__500F%dgsave ) THEN 4466 CALL iom_put( "RG__500F" , fregenfast ) 4467 ENDIF 4468 IF( med_diag%FDS__500%dgsave ) THEN 4469 CALL iom_put( "FDS__500" , ffastsi ) 4470 ENDIF 4471 IF( med_diag%RGS_500F%dgsave ) THEN 4472 CALL iom_put( "RGS_500F" , fregenfastsi ) 4473 ENDIF 4474 IF( med_diag%FE_0500%dgsave ) THEN 4475 CALL iom_put( "FE_0500" , xFree ) 4476 ENDIF 4477 # if defined key_roam 4478 IF( med_diag%RR_0500%dgsave ) THEN 4479 CALL iom_put( "RR_0500" , ffastca2d ) 4480 ENDIF 4481 IF( med_diag%SDC__500%dgsave ) THEN 4482 CALL iom_put( "SDC__500" , fslowcflux ) 4483 ENDIF 4484 # endif 4485 ELSE IF (jk.eq.i1000) THEN 4486 IF( med_diag%SDT_1000%dgsave ) THEN 4487 CALL iom_put( "SDT_1000" , fslownflux ) 4488 ENDIF 4489 IF( med_diag%REG__1000%dgsave ) THEN 4490 CALL iom_put( "REG__1000" , fregen2d ) 4491 ENDIF 4492 IF( med_diag%FDT__1000%dgsave ) THEN 4493 CALL iom_put( "FDT__1000" , ffastn ) 4494 ENDIF 4495 IF( med_diag%RG__1000F%dgsave ) THEN 4496 CALL iom_put( "RG__1000F" , fregenfast ) 4497 ENDIF 4498 IF( med_diag%FDS__1000%dgsave ) THEN 4499 CALL iom_put( "FDS__1000" , ffastsi ) 4500 ENDIF 4501 IF( med_diag%RGS1000F%dgsave ) THEN 4502 CALL iom_put( "RGS1000F" , fregenfastsi ) 4503 ENDIF 4504 IF( med_diag%FE_1000%dgsave ) THEN 4505 CALL iom_put( "FE_1000" , xFree ) 4506 ENDIF 4507 # if defined key_roam 4508 IF( med_diag%RR_1000%dgsave ) THEN 4509 CALL iom_put( "RR_1000" , ffastca2d ) 4510 CALL wrk_dealloc( jpi, jpj, ffastca2d ) 4511 ENDIF 4512 IF( med_diag%SDC__1000%dgsave ) THEN 4513 CALL iom_put( "SDC__1000" , fslowcflux ) 4514 ENDIF 4515 # endif 4516 ELSE IF (jk.eq.(mbathy(ji,jj)-1)) THEN 4517 IF( med_diag%SEAFLRN%dgsave ) THEN 4518 CALL iom_put( "SEAFLRN" , fsedn ) 4519 ENDIF 4520 IF( med_diag%SEAFLRSI%dgsave ) THEN 4521 CALL iom_put( "SEAFLRSI" , fsedsi ) 4522 ENDIF 4523 IF( med_diag%SEAFLRFE%dgsave ) THEN 4524 CALL iom_put( "SEAFLRFE" , fsedfe ) 4525 ENDIF 4526 IF( med_diag%SEAFLRC%dgsave ) THEN 4527 CALL iom_put( "SEAFLRC" , fsedc ) 4528 ENDIF 4529 IF( med_diag%SEAFLRCA%dgsave ) THEN 4530 CALL iom_put( "SEAFLRCA" , fsedca ) 4531 ENDIF 4532 # if defined key_roam 4533 IF( med_diag%IBEN_N%dgsave ) THEN 4534 zw2d(:,:) = f_sbenin_n(:,:) + f_fbenin_n(:,:) 4535 CALL iom_put( "IBEN_N" , zw2d ) 4536 ENDIF 4537 IF( med_diag%IBEN_FE%dgsave ) THEN 4538 zw2d(:,:) = f_sbenin_fe(:,:) + f_fbenin_fe(:,:) 4539 CALL iom_put( "IBEN_FE" , zw2d ) 4540 ENDIF 4541 IF( med_diag%IBEN_C%dgsave ) THEN 4542 zw2d(:,:) = f_sbenin_c(:,:) + f_fbenin_c(:,:) 4543 CALL iom_put( "IBEN_C" , zw2d ) 4544 ENDIF 4545 IF( med_diag%IBEN_SI%dgsave ) THEN 4546 CALL iom_put( "IBEN_SI" , f_fbenin_si ) 4547 ENDIF 4548 IF( med_diag%IBEN_CA%dgsave ) THEN 4549 CALL iom_put( "IBEN_CA" , f_fbenin_ca ) 4550 ENDIF 4551 IF( med_diag%OBEN_N%dgsave ) THEN 4552 CALL iom_put( "OBEN_N" , f_benout_n ) 4553 ENDIF 4554 IF( med_diag%OBEN_FE%dgsave ) THEN 4555 CALL iom_put( "OBEN_FE" , f_benout_fe ) 4556 ENDIF 4557 IF( med_diag%OBEN_C%dgsave ) THEN 4558 CALL iom_put( "OBEN_C" , f_benout_c ) 4559 ENDIF 4560 IF( med_diag%OBEN_SI%dgsave ) THEN 4561 CALL iom_put( "OBEN_SI" , f_benout_si ) 4562 ENDIF 4563 IF( med_diag%OBEN_CA%dgsave ) THEN 4564 CALL iom_put( "OBEN_CA" , f_benout_ca ) 4565 ENDIF 4566 IF( med_diag%SFR_OCAL%dgsave ) THEN 4567 zw2d(:,:) = f3_omcal(:,:,jk) 4568 CALL iom_put( "SFR_OCAL" , zw2d ) 4569 ENDIF 4570 IF( med_diag%SFR_OARG%dgsave ) THEN 4571 zw2d(:,:) = f3_omarg(:,:,jk) 4572 CALL iom_put( "SFR_OARG" , zw2d ) 4573 ENDIF 4574 IF( med_diag%LYSO_CA%dgsave ) THEN 4575 CALL iom_put( "LYSO_CA" , f_benout_lyso_ca ) 4576 ENDIF 4577 # endif 4578 ENDIF 4579 !! to do on every k loop : 4580 IF( med_diag%DETFLUX3%dgsave ) THEN 4581 detflux3d(:,:,jk) = fslownflux(:,:) + ffastn(:,:) !! detrital flux 4582 !CALL iom_put( "DETFLUX3" , ftot_n ) 4583 ENDIF 4584 ENDIF 3416 4585 !! CLOSE vertical loop 3417 4586 END DO … … 3448 4617 zn_sed_ca(:,:) = za_sed_ca(:,:) 3449 4618 endif 3450 DO jj = 2,jpjm1 3451 DO ji = 2,jpim1 3452 trc2d(ji,jj,131) = za_sed_n(ji,jj) 3453 trc2d(ji,jj,132) = za_sed_fe(ji,jj) 3454 trc2d(ji,jj,133) = za_sed_c(ji,jj) 3455 trc2d(ji,jj,134) = za_sed_si(ji,jj) 3456 trc2d(ji,jj,135) = za_sed_ca(ji,jj) 4619 IF( ln_diatrc ) THEN 4620 DO jj = 2,jpjm1 4621 DO ji = 2,jpim1 4622 trc2d(ji,jj,131) = za_sed_n(ji,jj) 4623 trc2d(ji,jj,132) = za_sed_fe(ji,jj) 4624 trc2d(ji,jj,133) = za_sed_c(ji,jj) 4625 trc2d(ji,jj,134) = za_sed_si(ji,jj) 4626 trc2d(ji,jj,135) = za_sed_ca(ji,jj) 4627 ENDDO 3457 4628 ENDDO 3458 ENDDO 3459 !! AXY (07/07/15): temporary hijacking 4629 !! AXY (07/07/15): temporary hijacking 3460 4630 # if defined key_roam 3461 trc2d(:,:,126) = zn_dms_chn(:,:) 3462 trc2d(:,:,127) = zn_dms_chd(:,:) 3463 trc2d(:,:,128) = zn_dms_mld(:,:) 3464 trc2d(:,:,129) = zn_dms_qsr(:,:) 3465 trc2d(:,:,130) = zn_dms_din(:,:) 3466 # endif 3467 4631 !! trc2d(:,:,126) = zn_dms_chn(:,:) 4632 !! trc2d(:,:,127) = zn_dms_chd(:,:) 4633 !! trc2d(:,:,128) = zn_dms_mld(:,:) 4634 !! trc2d(:,:,129) = zn_dms_qsr(:,:) 4635 !! trc2d(:,:,130) = zn_dms_din(:,:) 4636 # endif 4637 ENDIF 4638 !! 3468 4639 if (ibenthic.eq.2) then 3469 4640 !! The code below (in this if ... then ... endif loop) is … … 3615 4786 END DO 3616 4787 END DO 3617 4788 3618 4789 # if defined key_roam 3619 4790 # if defined key_axy_nancheck … … 3681 4852 END DO 3682 4853 3683 # if defined key_axy_nodiag 3684 !!---------------------------------------------------------------------- 3685 !! Blank diagnostics as a NaN-trap 3686 !!---------------------------------------------------------------------- 3687 !! 3688 !! blank 2D diagnostic array 3689 trc2d(:,:,:) = 0.e0 3690 !! 3691 !! blank 3D diagnostic array 3692 trc3d(:,:,:,:) = 0.e0 3693 # endif 3694 3695 # if defined key_iomput 4854 ELSE IF( lk_iomput .AND. .NOT. ln_diatrc ) THEN 4855 !!!---------------------------------------------------------------------- 4856 !! Add very last diag calculations 4857 !!!---------------------------------------------------------------------- 4858 DO jj = 2,jpjm1 4859 DO ji = 2,jpim1 4860 !! 4861 IF( med_diag%PN_JLIM%dgsave ) THEN 4862 fjln2d(ji,jj) = fjln2d(ji,jj) / MAX(ftot_pn(ji,jj), rsmall) 4863 ENDIF 4864 IF( med_diag%PN_NLIM%dgsave ) THEN 4865 fnln2d(ji,jj) = fnln2d(ji,jj) / MAX(ftot_pn(ji,jj), rsmall) 4866 ENDIF 4867 IF( med_diag%PN_FELIM%dgsave ) THEN 4868 ffln2d(ji,jj) = ffln2d(ji,jj) / MAX(ftot_pn(ji,jj), rsmall) 4869 ENDIF 4870 IF( med_diag%PD_JLIM%dgsave ) THEN 4871 fjld2d(ji,jj) = fjld2d(ji,jj) / MAX(ftot_pd(ji,jj), rsmall) 4872 ENDIF 4873 IF( med_diag%PD_NLIM%dgsave ) THEN 4874 fnld2d(ji,jj) = fnld2d(ji,jj) / MAX(ftot_pd(ji,jj), rsmall) 4875 ENDIF 4876 IF( med_diag%PD_FELIM%dgsave ) THEN 4877 ffld2d(ji,jj) = ffld2d(ji,jj) / MAX(ftot_pd(ji,jj), rsmall) 4878 ENDIF 4879 IF( med_diag%PD_SILIM%dgsave ) THEN 4880 fsld2d2(ji,jj) = fsld2d2(ji,jj) / MAX(ftot_pd(ji,jj), rsmall) 4881 ENDIF 4882 IF( med_diag%PDSILIM2%dgsave ) THEN 4883 fsld2d(ji,jj) = fsld2d(ji,jj) / MAX(ftot_pd(ji,jj), rsmall) 4884 ENDIF 4885 END DO 4886 END DO 3696 4887 !!---------------------------------------------------------------------- 3697 4888 !! Add in XML diagnostics stuff … … 3699 4890 !! 3700 4891 !! ** 2D diagnostics 3701 DO jn=1,jp_medusa_2d 3702 CALL iom_put(TRIM(ctrc2d(jn)), trc2d(:,:,jn)) 3703 END DO 3704 !! AXY (17/02/14): don't think I need this if I modify the above for all diagnostics 3705 !! # if defined key_roam 3706 !! DO jn=91,jp_medusa_2d 3707 !! CALL iom_put(TRIM(ctrc2d(jn)), trc2d(:,:,jn)) 3708 !! END DO 3709 !! # endif 4892 IF ( med_diag%INVTN%dgsave ) THEN 4893 CALL iom_put( "INVTN" , ftot_n ) 4894 ENDIF 4895 IF ( med_diag%INVTSI") THEN 4896 CALL iom_put( "INVTSI" , ftot_si ) 4897 ENDIF 4898 IF ( med_diag%INVTFE%dgsave ) THEN 4899 CALL iom_put( "INVTFE" , ftot_fe ) 4900 ENDIF 4901 IF ( med_diag%ML_PRN%dgsave ) THEN 4902 CALL iom_put( "ML_PRN" , fprn_ml ) 4903 ENDIF 4904 IF ( med_diag%ML_PRD%dgsave ) THEN 4905 CALL iom_put( "ML_PRD" , fprd_ml ) 4906 ENDIF 4907 IF ( med_diag%OCAL_LVL%dgsave ) THEN 4908 CALL iom_put( "OCAL_LVL" , fccd ) 4909 ENDIF 4910 IF ( med_diag%PN_JLIM%dgsave ) THEN 4911 CALL iom_put( "PN_JLIM" , fjln2d ) 4912 CALL wrk_dealloc( jpi, jpj, fjln2d ) 4913 ENDIF 4914 IF ( med_diag%PN_NLIM%dgsave ) THEN 4915 CALL iom_put( "PN_NLIM" , fnln2d ) 4916 CALL wrk_dealloc( jpi, jpj, fnln2d ) 4917 ENDIF 4918 IF ( med_diag%PN_FELIM%dgsave ) THEN 4919 CALL iom_put( "PN_FELIM" , ffln2d ) 4920 CALL wrk_dealloc( jpi, jpj, ffln2d ) 4921 ENDIF 4922 IF ( med_diag%PD_JLIM%dgsave ) THEN 4923 CALL iom_put( "PD_JLIM" , fjld2d ) 4924 CALL wrk_dealloc( jpi, jpj, fjld2d ) 4925 ENDIF 4926 IF ( med_diag%PD_NLIM%dgsave ) THEN 4927 CALL iom_put( "PD_NLIM" , fnld2d ) 4928 CALL wrk_dealloc( jpi, jpj, fnld2d ) 4929 ENDIF 4930 IF ( med_diag%PD_FELIM%dgsave ) THEN 4931 CALL iom_put( "PD_FELIM" , ffld2d ) 4932 CALL wrk_dealloc( jpi, jpj, ffld2d ) 4933 ENDIF 4934 IF ( med_diag%PD_SILIM%dgsave ) THEN 4935 CALL iom_put( "PD_SILIM" , fsld2d2 ) 4936 CALL wrk_dealloc( jpi, jpj, fsld2d2 ) 4937 ENDIF 4938 IF ( med_diag%PDSILIM2%dgsave ) THEN 4939 CALL iom_put( "PDSILIM2" , fsld2d ) 4940 CALL wrk_dealloc( jpi, jpj, fsld2d ) 4941 ENDIF 4942 IF ( med_diag%INTFLX_N%dgsave ) THEN 4943 CALL iom_put( "INTFLX_N" , fflx_n ) 4944 ENDIF 4945 IF ( med_diag%INTFLX_SI%dgsave ) THEN 4946 CALL iom_put( "INTFLX_SI" , fflx_si ) 4947 ENDIF 4948 IF ( med_diag%INTFLX_FE%dgsave ) THEN 4949 CALL iom_put( "INTFLX_FE" , fflx_fe ) 4950 ENDIF 4951 IF ( med_diag%INT_PN%dgsave ) THEN 4952 CALL iom_put( "INT_PN" , ftot_pn ) 4953 ENDIF 4954 IF ( med_diag%INT_PD%dgsave ) THEN 4955 CALL iom_put( "INT_PD" , ftot_pd ) 4956 ENDIF 4957 IF ( med_diag%INT_ZMI%dgsave ) THEN 4958 CALL iom_put( "INT_ZMI" , ftot_zmi ) 4959 ENDIF 4960 IF ( med_diag%INT_ZME%dgsave ) THEN 4961 CALL iom_put( "INT_ZME" , ftot_zme ) 4962 ENDIF 4963 IF ( med_diag%INT_DET%dgsave ) THEN 4964 CALL iom_put( "INT_DET" , ftot_det ) 4965 ENDIF 4966 IF ( med_diag%INT_DTC%dgsave ) THEN 4967 CALL iom_put( "INT_DTC" , ftot_dtc ) 4968 ENDIF 4969 IF ( med_diag%BEN_N%dgsave ) THEN 4970 CALL iom_put( "BEN_N" , za_sed_n ) 4971 ENDIF 4972 IF ( med_diag%BEN_FE%dgsave ) THEN 4973 CALL iom_put( "BEN_FE" , za_sed_fe ) 4974 ENDIF 4975 IF ( med_diag%BEN_C%dgsave ) THEN 4976 CALL iom_put( "BEN_C" , za_sed_c ) 4977 ENDIF 4978 IF ( med_diag%BEN_SI%dgsave ) THEN 4979 CALL iom_put( "BEN_SI" , za_sed_si ) 4980 ENDIF 4981 IF ( med_diag%BEN_CA%dgsave ) THEN 4982 CALL iom_put( "BEN_CA" , za_sed_ca ) 4983 ENDIF 4984 IF ( med_diag%RUNOFF%dgsave ) THEN 4985 CALL iom_put( "RUNOFF" , f_runoff ) 4986 ENDIF 4987 # if defined key_roam 4988 IF ( med_diag%N_PROD%dgsave ) THEN 4989 CALL iom_put( "N_PROD" , fnit_prod ) 4990 ENDIF 4991 IF ( med_diag%N_CONS%dgsave ) THEN 4992 CALL iom_put( "N_CONS" , fnit_cons ) 4993 ENDIF 4994 IF ( med_diag%C_PROD%dgsave ) THEN 4995 CALL iom_put( "C_PROD" , fcar_prod ) 4996 ENDIF 4997 IF ( med_diag%C_CONS%dgsave ) THEN 4998 CALL iom_put( "C_CONS" , fcar_cons ) 4999 ENDIF 5000 IF ( med_diag%O2_PROD%dgsave ) THEN 5001 CALL iom_put( "O2_PROD" , foxy_prod ) 5002 ENDIF 5003 IF ( med_diag%O2_CONS%dgsave ) THEN 5004 CALL iom_put( "O2_CONS" , foxy_cons ) 5005 ENDIF 5006 IF ( med_diag%O2_ANOX%dgsave ) THEN 5007 CALL iom_put( "O2_ANOX" , foxy_anox ) 5008 ENDIF 5009 IF ( med_diag%INVTC%dgsave ) THEN 5010 CALL iom_put( "INVTC" , ftot_c ) 5011 ENDIF 5012 IF ( med_diag%INVTALK%dgsave ) THEN 5013 CALL iom_put( "INVTALK" , ftot_a ) 5014 ENDIF 5015 IF ( med_diag%INVTO2%dgsave ) THEN 5016 CALL iom_put( "INVTO2" , ftot_o2 ) 5017 ENDIF 5018 IF ( med_diag%COM_RESP%dgsave ) THEN 5019 CALL iom_put( "COM_RESP" , fcomm_resp ) 5020 ENDIF 5021 # endif 5022 !! 5023 !! diagnostic filled in the i-j-k main loop 5024 !!-------------------------------------------- 5025 IF ( med_diag%PRN%dgsave ) THEN 5026 CALL iom_put( "PRN" , fprn2d ) 5027 CALL wrk_dealloc( jpi, jpj, fprn2d ) 5028 ENDIF 5029 IF ( med_diag%MPN%dgsave ) THEN 5030 CALL iom_put( "MPN" ,fdpn2d ) 5031 CALL wrk_dealloc( jpi, jpj, fdpn2d ) 5032 ENDIF 5033 IF ( med_diag%PRD%dgsave ) THEN 5034 CALL iom_put( "PRD" ,fprd2d ) 5035 CALL wrk_dealloc( jpi, jpj, fprd2d ) 5036 ENDIF 5037 IF( med_diag%MPD%dgsave ) THEN 5038 CALL iom_put( "MPD" , fdpd2d ) 5039 CALL wrk_dealloc( jpi, jpj, fdpd2d ) 5040 ENDIF 5041 ! IF( med_diag%DSED%dgsave ) THEN 5042 ! CALL iom_put( "DSED" , ftot_n ) 5043 ! ENDIF 5044 IF( med_diag%OPAL%dgsave ) THEN 5045 CALL iom_put( "OPAL" , fprds2d ) 5046 CALL wrk_dealloc( jpi, jpj, fprds2d ) 5047 ENDIF 5048 IF( med_diag%OPALDISS%dgsave ) THEN 5049 CALL iom_put( "OPALDISS" , fsdiss2d ) 5050 CALL wrk_dealloc( jpi, jpj, fsdiss2d ) 5051 ENDIF 5052 IF( med_diag%GMIPn%dgsave ) THEN 5053 CALL iom_put( "GMIPn" , fgmipn2d ) 5054 CALL wrk_dealloc( jpi, jpj, fgmipn2d ) 5055 ENDIF 5056 IF( med_diag%GMID%dgsave ) THEN 5057 CALL iom_put( "GMID" , fgmid2d ) 5058 CALL wrk_dealloc( jpi, jpj, fgmid2d ) 5059 ENDIF 5060 IF( med_diag%MZMI%dgsave ) THEN 5061 CALL iom_put( "MZMI" , fdzmi2d ) 5062 CALL wrk_dealloc( jpi, jpj, fdzmi2d ) 5063 ENDIF 5064 IF( med_diag%GMEPN%dgsave ) THEN 5065 CALL iom_put( "GMEPN" , fgmepn2d ) 5066 CALL wrk_dealloc( jpi, jpj, fgmepn2d ) 5067 ENDIF 5068 IF( med_diag%GMEPD%dgsave ) THEN 5069 CALL iom_put( "GMEPD" , fgmepd2d ) 5070 CALL wrk_dealloc( jpi, jpj, fgmepd2d ) 5071 ENDIF 5072 IF( med_diag%GMEZMI%dgsave ) THEN 5073 CALL iom_put( "GMEZMI" , fgmezmi2d ) 5074 CALL wrk_dealloc( jpi, jpj, fgmezmi2d ) 5075 ENDIF 5076 IF( med_diag%GMED%dgsave ) THEN 5077 CALL iom_put( "GMED" , fgmed2d ) 5078 CALL wrk_dealloc( jpi, jpj, fgmed2d ) 5079 ENDIF 5080 IF( med_diag%MZME%dgsave ) THEN 5081 CALL iom_put( "MZME" , fdzme2d ) 5082 CALL wrk_dealloc( jpi, jpj, fdzme2d ) 5083 ENDIF 5084 ! IF( med_diag%DEXP%dgsave ) THEN 5085 ! CALL iom_put( "DEXP" , ftot_n ) 5086 ! ENDIF 5087 IF( med_diag%DETN%dgsave ) THEN 5088 CALL iom_put( "DETN" , fslown2d ) 5089 CALL wrk_dealloc( jpi, jpj, fslown2d ) 5090 ENDIF 5091 IF( med_diag%MDET%dgsave ) THEN 5092 CALL iom_put( "MDET" , fdd2d ) 5093 CALL wrk_dealloc( jpi, jpj, fdd2d ) 5094 ENDIF 5095 IF( med_diag%AEOLIAN%dgsave ) THEN 5096 CALL iom_put( "AEOLIAN" , ffetop2d ) 5097 CALL wrk_dealloc( jpi, jpj, ffetop2d ) 5098 ENDIF 5099 IF( med_diag%BENTHIC%dgsave ) THEN 5100 CALL iom_put( "BENTHIC" , ffebot2d ) 5101 CALL wrk_dealloc( jpi, jpj, ffebot2d ) 5102 ENDIF 5103 IF( med_diag%SCAVENGE%dgsave ) THEN 5104 CALL iom_put( "SCAVENGE" , ffescav2d ) 5105 CALL wrk_dealloc( jpi, jpj, ffescav2d ) 5106 ENDIF 5107 !! 5108 IF( med_diag%TOTREG_N%dgsave ) THEN 5109 CALL iom_put( "TOTREG_N" , fregen2d ) 5110 CALL wrk_dealloc( jpi, jpj, fregen2d ) 5111 ENDIF 5112 IF( med_diag%TOTRG_SI%dgsave ) THEN 5113 CALL iom_put( "TOTRG_SI" , fregensi2d ) 5114 CALL wrk_dealloc( jpi, jpj, fregensi2d ) 5115 ENDIF 5116 !! 5117 IF( med_diag%FASTN%dgsave ) THEN 5118 CALL iom_put( "FASTN" , ftempn2d ) 5119 CALL wrk_dealloc( jpi, jpj, ftempn2d ) 5120 ENDIF 5121 IF( med_diag%FASTSI%dgsave ) THEN 5122 CALL iom_put( "FASTSI" , ftempsi2d ) 5123 CALL wrk_dealloc( jpi, jpj, ftempsi2d ) 5124 ENDIF 5125 IF( med_diag%FASTFE%dgsave ) THEN 5126 CALL iom_put( "FASTFE" , ftempfe2d ) 5127 CALL wrk_dealloc( jpi, jpj, ftempfe2d ) 5128 ENDIF 5129 IF( med_diag%FASTC%dgsave ) THEN 5130 CALL iom_put( "FASTC" , ftempc2d ) 5131 CALL wrk_dealloc( jpi, jpj, ftempc2d ) 5132 ENDIF 5133 IF( med_diag%FASTCA%dgsave ) THEN 5134 CALL iom_put( "FASTCA" , ftempca2d ) 5135 CALL wrk_dealloc( jpi, jpj, ftempca2d ) 5136 ENDIF 5137 !! 5138 IF( med_diag%REMINN%dgsave ) THEN 5139 CALL iom_put( "REMINN" , freminn2d ) 5140 CALL wrk_dealloc( jpi, jpj, freminn2d ) 5141 ENDIF 5142 IF( med_diag%REMINSI%dgsave ) THEN 5143 CALL iom_put( "REMINSI" , freminsi2d ) 5144 CALL wrk_dealloc( jpi, jpj, freminsi2d ) 5145 ENDIF 5146 IF( med_diag%REMINFE%dgsave ) THEN 5147 CALL iom_put( "REMINFE" , freminfe2d ) 5148 CALL wrk_dealloc( jpi, jpj, freminfe2d ) 5149 ENDIF 5150 IF( med_diag%REMINC%dgsave ) THEN 5151 CALL iom_put( "REMINC" , freminc2d ) 5152 CALL wrk_dealloc( jpi, jpj, freminc2d ) 5153 ENDIF 5154 IF( med_diag%REMINCA%dgsave ) THEN 5155 CALL iom_put( "REMINCA" , freminca2d ) 5156 CALL wrk_dealloc( jpi, jpj, freminca2d ) 5157 ENDIF 5158 !! 5159 !! 5160 !! 5161 !! 5162 !! 5163 !! 5164 !! 5165 !! 5166 !! 5167 # if defined key_roam 5168 !! 5169 !! 5170 IF( med_diag%RIV_N%dgsave ) THEN 5171 CALL iom_put( "RIV_N" , rivn2d ) 5172 CALL wrk_dealloc( jpi, jpj, rivn2d ) 5173 ENDIF 5174 IF( med_diag%RIV_SI%dgsave ) THEN 5175 CALL iom_put( "RIV_SI" , rivsi2d ) 5176 CALL wrk_dealloc( jpi, jpj, rivsi2d ) 5177 ENDIF 5178 IF( med_diag%RIV_C%dgsave ) THEN 5179 CALL iom_put( "RIV_C" , rivc2d ) 5180 CALL wrk_dealloc( jpi, jpj, rivc2d ) 5181 ENDIF 5182 IF( med_diag%RIV_ALK%dgsave ) THEN 5183 CALL iom_put( "RIV_ALK" , rivalk2d ) 5184 CALL wrk_dealloc( jpi, jpj, rivalk2d ) 5185 ENDIF 5186 IF( med_diag%DETC%dgsave ) THEN 5187 CALL iom_put( "DETC" , fslowc2d ) 5188 CALL wrk_dealloc( jpi, jpj, fslowc2d ) 5189 ENDIF 5190 !! 5191 !! 5192 !! 5193 IF( med_diag%PN_LLOSS%dgsave ) THEN 5194 CALL iom_put( "PN_LLOSS" , fdpn22d ) 5195 CALL wrk_dealloc( jpi, jpj, fdpn22d ) 5196 ENDIF 5197 IF( med_diag%PD_LLOSS%dgsave ) THEN 5198 CALL iom_put( "PD_LLOSS" , fdpd22d ) 5199 CALL wrk_dealloc( jpi, jpj, fdpd22d ) 5200 ENDIF 5201 IF( med_diag%ZI_LLOSS%dgsave ) THEN 5202 CALL iom_put( "ZI_LLOSS" , fdzmi22d ) 5203 CALL wrk_dealloc( jpi, jpj, fdzmi22d ) 5204 ENDIF 5205 IF( med_diag%ZE_LLOSS%dgsave ) THEN 5206 CALL iom_put( "ZE_LLOSS" , fdzme22d ) 5207 CALL wrk_dealloc( jpi, jpj, fdzme22d ) 5208 ENDIF 5209 IF( med_diag%ZI_MES_N%dgsave ) THEN 5210 CALL iom_put( "ZI_MES_N" , zimesn2d ) 5211 CALL wrk_dealloc( jpi, jpj, zimesn2d ) 5212 ENDIF 5213 IF( med_diag%ZI_MES_D%dgsave ) THEN 5214 CALL iom_put( "ZI_MES_D" , zimesd2d ) 5215 CALL wrk_dealloc( jpi, jpj, zimesd2d ) 5216 ENDIF 5217 IF( med_diag%ZI_MES_C%dgsave ) THEN 5218 CALL iom_put( "ZI_MES_C" , zimesc2d ) 5219 CALL wrk_dealloc( jpi, jpj, zimesc2d ) 5220 ENDIF 5221 IF( med_diag%ZI_MESDC%dgsave ) THEN 5222 CALL iom_put( "ZI_MESDC" ,zimesdc2d ) 5223 CALL wrk_dealloc( jpi, jpj, zimesdc2d ) 5224 ENDIF 5225 IF( med_diag%ZI_EXCR%dgsave ) THEN 5226 CALL iom_put( "ZI_EXCR" , ziexcr2d ) 5227 CALL wrk_dealloc( jpi, jpj, ziexcr2d ) 5228 ENDIF 5229 IF( med_diag%ZI_RESP%dgsave ) THEN 5230 CALL iom_put( "ZI_RESP" , ziresp2d ) 5231 CALL wrk_dealloc( jpi, jpj, ziresp2d ) 5232 ENDIF 5233 IF( med_diag%ZI_GROW%dgsave ) THEN 5234 CALL iom_put( "ZI_GROW" , zigrow2d ) 5235 CALL wrk_dealloc( jpi, jpj, zigrow2d ) 5236 ENDIF 5237 IF( med_diag%ZE_MES_N%dgsave ) THEN 5238 CALL iom_put( "ZE_MES_N" , zemesn2d ) 5239 CALL wrk_dealloc( jpi, jpj, zemesn2d ) 5240 ENDIF 5241 IF( med_diag%ZE_MES_D%dgsave ) THEN 5242 CALL iom_put( "ZE_MES_D" , zemesd2d ) 5243 CALL wrk_dealloc( jpi, jpj, zemesd2d ) 5244 ENDIF 5245 IF( med_diag%ZE_MES_C%dgsave ) THEN 5246 CALL iom_put( "ZE_MES_C" , zemesc2d ) 5247 CALL wrk_dealloc( jpi, jpj, zemesc2d ) 5248 ENDIF 5249 IF( med_diag%ZE_MESDC%dgsave ) THEN 5250 CALL iom_put( "ZE_MESDC" , zemesdc2d ) 5251 CALL wrk_dealloc( jpi, jpj, zemesdc2d ) 5252 ENDIF 5253 IF( med_diag%ZE_EXCR%dgsave ) THEN 5254 CALL iom_put( "ZE_EXCR" , zeexcr2d ) 5255 CALL wrk_dealloc( jpi, jpj, zeexcr2d ) 5256 ENDIF 5257 IF( med_diag%ZE_RESP%dgsave ) THEN 5258 CALL iom_put( "ZE_RESP" , zeresp2d ) 5259 CALL wrk_dealloc( jpi, jpj, zeresp2d ) 5260 ENDIF 5261 IF( med_diag%ZE_GROW%dgsave ) THEN 5262 CALL iom_put( "ZE_GROW" , zegrow2d ) 5263 CALL wrk_dealloc( jpi, jpj, zegrow2d ) 5264 ENDIF 5265 IF( med_diag%MDETC%dgsave ) THEN 5266 CALL iom_put( "MDETC" , mdetc2d ) 5267 CALL wrk_dealloc( jpi, jpj, mdetc2d ) 5268 ENDIF 5269 IF( med_diag%GMIDC%dgsave ) THEN 5270 CALL iom_put( "GMIDC" , gmidc2d ) 5271 CALL wrk_dealloc( jpi, jpj, gmidc2d ) 5272 ENDIF 5273 IF( med_diag%GMEDC%dgsave ) THEN 5274 CALL iom_put( "GMEDC" , gmedc2d ) 5275 CALL wrk_dealloc( jpi, jpj, gmedc2d ) 5276 ENDIF 5277 # endif 5278 !! 3710 5279 !! 3711 5280 !! ** 3D diagnostics 3712 DO jn=1,jp_medusa_3d 3713 CALL iom_put(TRIM(ctrc3d(jn)), trc3d(:,:,:,jn)) 3714 END DO 3715 !! AXY (17/02/14): don't think I need this if I modify the above for all diagnostics 3716 !! # if defined key_roam 3717 !! CALL iom_put(TRIM(ctrc3d(5)), trc3d(:,:,:,5)) 3718 !! # endif 3719 # endif 3720 ENDIF ! end of ln_diatrc option 5281 IF( med_diag%TPP3%dgsave ) THEN 5282 CALL iom_put( "TPP3" , tpp3d ) 5283 CALL wrk_dealloc( jpi, jpj, jpk, tpp3d ) 5284 ENDIF 5285 IF( med_diag%DETFLUX3%dgsave ) THEN 5286 CALL iom_put( "DETFLUX3" , detflux3d ) 5287 CALL wrk_dealloc( jpi, jpj, jpk, detflux3d ) 5288 ENDIF 5289 IF( med_diag%REMIN3N%dgsave ) THEN 5290 CALL iom_put( "REMIN3N" , remin3dn ) 5291 CALL wrk_dealloc( jpi, jpj, jpk, remin3dn ) 5292 ENDIF 5293 # if defined key_roam 5294 IF( med_diag%PH3%dgsave ) THEN 5295 CALL iom_put( "PH3" , f3_pH ) 5296 ENDIF 5297 IF( med_diag%OM_CAL3%dgsave ) THEN 5298 CALL iom_put( "OM_CAL3" , f3_omcal ) 5299 ENDIF 5300 # endif 5301 5302 CALL wrk_dealloc( jpi, jpj, zw2d ) 5303 5304 ENDIF ! end of ln_diatrc option 3721 5305 3722 5306 # if defined key_trc_diabio -
branches/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM/NEMO/TOP_SRC/MEDUSA/trcnam_medusa.F90
r5841 r5931 22 22 USE sms_medusa ! sms trends 23 23 USE iom ! I/O manager 24 USE trc_nam_dia ! JPALM 13-11-2015 -- if iom_use for diag 24 25 25 26 !! AXY (04/02/14): necessary to find NaNs on HECTOR … … 1169 1170 END SUBROUTINE trc_nam_medusa 1170 1171 1172 SUBROUTINE trc_nam_iom_medusa 1173 !!--------------------------------------------------------------------- 1174 !! *** ROUTINE trc_nam_iom_medusa *** 1175 !! 1176 !! ** Purpose : read all diag requested in iodef file through iom_use 1177 !! So it is done only once 1178 !! ** All diagnostic MEDUSA could asked are registered in 1179 !! the med_diag type with a boolean value 1180 !! So if required, one diagnostic will be true. 1181 !! 1182 !!--------------------------------------------------------------------- 1183 !! 1184 !! 1185 !!---------------------------------------------------------------------- 1186 !! Variable conventions 1187 !!---------------------------------------------------------------------- 1188 !! 1189 IF iom_use("INVTN") THEN 1190 med_diag%INVTN%dgsave = .TRUE. 1191 ELSE 1192 med_diag%INVTN%dgsave = .FALSE. 1193 ENDIF 1194 IF iom_use("INVTSI") THEN 1195 med_diag%INVTSI%dgsave = .TRUE. 1196 ELSE 1197 med_diag%INVTSI%dgsave = .FALSE. 1198 ENDIF 1199 IF iom_use("INVTFE") THEN 1200 med_diag%INVTFE%dgsave = .TRUE. 1201 ELSE 1202 med_diag%INVTFE%dgsave = .FALSE. 1203 ENDIF 1204 IF iom_use("PRN") THEN 1205 med_diag%PRN%dgsave = .TRUE. 1206 ELSE 1207 med_diag%PRN%dgsave = .FALSE. 1208 ENDIF 1209 IF iom_use("MPN") THEN 1210 med_diag%MPN%dgsave = .TRUE. 1211 ELSE 1212 med_diag%MPN%dgsave = .FALSE. 1213 ENDIF 1214 IF iom_use("PRD") THEN 1215 med_diag%PRD%dgsave = .TRUE. 1216 ELSE 1217 med_diag%PRD%dgsave = .FALSE. 1218 ENDIF 1219 IF iom_use("MPD") THEN 1220 med_diag%MPD%dgsave = .TRUE. 1221 ELSE 1222 med_diag%MPD%dgsave = .FALSE. 1223 ENDIF 1224 IF iom_use("DSED") THEN 1225 med_diag%DSED%dgsave = .TRUE. 1226 ELSE 1227 med_diag%DSED%dgsave = .FALSE. 1228 ENDIF 1229 IF iom_use("OPAL") THEN 1230 med_diag%OPAL%dgsave = .TRUE. 1231 ELSE 1232 med_diag%OPAL%dgsave = .FALSE. 1233 ENDIF 1234 IF iom_use("OPALDISS") THEN 1235 med_diag%OPALDISS%dgsave = .TRUE. 1236 ELSE 1237 med_diag%OPALDISS%dgsave = .FALSE. 1238 ENDIF 1239 IF iom_use("GMIPn") THEN 1240 med_diag%GMIPn%dgsave = .TRUE. 1241 ELSE 1242 med_diag%GMIPn%dgsave = .FALSE. 1243 ENDIF 1244 IF iom_use("GMID") THEN 1245 med_diag%GMID%dgsave = .TRUE. 1246 ELSE 1247 med_diag%GMID%dgsave = .FALSE. 1248 ENDIF 1249 IF iom_use("MZMI") THEN 1250 med_diag%MZMI%dgsave = .TRUE. 1251 ELSE 1252 med_diag%MZMI%dgsave = .FALSE. 1253 ENDIF 1254 IF iom_use("GMEPN") THEN 1255 med_diag%GMEPN%dgsave = .TRUE. 1256 ELSE 1257 med_diag%GMEPN%dgsave = .FALSE. 1258 ENDIF 1259 IF iom_use("GMEPD") THEN 1260 med_diag%GMEPD%dgsave = .TRUE. 1261 ELSE 1262 med_diag%GMEPD%dgsave = .FALSE. 1263 ENDIF 1264 IF iom_use("GMEZMI") THEN 1265 med_diag%GMEZMI%dgsave = .TRUE. 1266 ELSE 1267 med_diag%GMEZMI%dgsave = .FALSE. 1268 ENDIF 1269 IF iom_use("GMED") THEN 1270 med_diag%GMED%dgsave = .TRUE. 1271 ELSE 1272 med_diag%GMED%dgsave = .FALSE. 1273 ENDIF 1274 IF iom_use("MZME") THEN 1275 med_diag%MZME%dgsave = .TRUE. 1276 ELSE 1277 med_diag%MZME%dgsave = .FALSE. 1278 ENDIF 1279 IF iom_use("DEXP") THEN 1280 med_diag%DEXP%dgsave = .TRUE. 1281 ELSE 1282 med_diag%DEXP%dgsave = .FALSE. 1283 ENDIF 1284 IF iom_use("DETN") THEN 1285 med_diag%DETN%dgsave = .TRUE. 1286 ELSE 1287 med_diag%DETN%dgsave = .FALSE. 1288 ENDIF 1289 IF iom_use("MDET") THEN 1290 med_diag%MDET%dgsave = .TRUE. 1291 ELSE 1292 med_diag%MDET%dgsave = .FALSE. 1293 ENDIF 1294 IF iom_use("AEOLIAN") THEN 1295 med_diag%AEOLIAN%dgsave = .TRUE. 1296 ELSE 1297 med_diag%AEOLIAN%dgsave = .FALSE. 1298 ENDIF 1299 IF iom_use("BENTHIC") THEN 1300 med_diag%BENTHIC%dgsave = .TRUE. 1301 ELSE 1302 med_diag%BENTHIC%dgsave = .FALSE. 1303 ENDIF 1304 IF iom_use("SCAVENGE") THEN 1305 med_diag%SCAVENGE%dgsave = .TRUE. 1306 ELSE 1307 med_diag%SCAVENGE%dgsave = .FALSE. 1308 ENDIF 1309 IF iom_use("PN_JLIM") THEN 1310 med_diag%PN_JLIM%dgsave = .TRUE. 1311 ELSE 1312 med_diag%PN_JLIM%dgsave = .FALSE. 1313 ENDIF 1314 IF iom_use("PN_NLIM") THEN 1315 med_diag%PN_NLIM%dgsave = .TRUE. 1316 ELSE 1317 med_diag%PN_NLIM%dgsave = .FALSE. 1318 ENDIF 1319 IF iom_use("PN_FELIM") THEN 1320 med_diag%PN_FELIM%dgsave = .TRUE. 1321 ELSE 1322 med_diag%PN_FELIM%dgsave = .FALSE. 1323 ENDIF 1324 IF iom_use("PD_JLIM") THEN 1325 med_diag%PD_JLIM%dgsave = .TRUE. 1326 ELSE 1327 med_diag%PD_JLIM%dgsave = .FALSE. 1328 ENDIF 1329 IF iom_use("PD_NLIM") THEN 1330 med_diag%PD_NLIM%dgsave = .TRUE. 1331 ELSE 1332 med_diag%PD_NLIM%dgsave = .FALSE. 1333 ENDIF 1334 IF iom_use("PD_FELIM") THEN 1335 med_diag%PD_FELIM%dgsave = .TRUE. 1336 ELSE 1337 med_diag%PD_FELIM%dgsave = .FALSE. 1338 ENDIF 1339 IF iom_use("PD_SILIM") THEN 1340 med_diag%PD_SILIM%dgsave = .TRUE. 1341 ELSE 1342 med_diag%PD_SILIM%dgsave = .FALSE. 1343 ENDIF 1344 IF iom_use("PDSILIM2") THEN 1345 med_diag%PDSILIM2%dgsave = .TRUE. 1346 ELSE 1347 med_diag%PDSILIM2%dgsave = .FALSE. 1348 ENDIF 1349 IF iom_use("SDT__100") THEN 1350 med_diag%SDT__100%dgsave = .TRUE. 1351 ELSE 1352 med_diag%SDT__100%dgsave = .FALSE. 1353 ENDIF 1354 IF iom_use("SDT__200") THEN 1355 med_diag%SDT__200%dgsave = .TRUE. 1356 ELSE 1357 med_diag%SDT__200%dgsave = .FALSE. 1358 ENDIF 1359 IF iom_use("SDT__500") THEN 1360 med_diag%SDT__500%dgsave = .TRUE. 1361 ELSE 1362 med_diag%SDT__500%dgsave = .FALSE. 1363 ENDIF 1364 IF iom_use("SDT_1000") THEN 1365 med_diag%SDT_1000%dgsave = .TRUE. 1366 ELSE 1367 med_diag%SDT_1000%dgsave = .FALSE. 1368 ENDIF 1369 IF iom_use("TOTREG_N") THEN 1370 med_diag%TOTREG_N%dgsave = .TRUE. 1371 ELSE 1372 med_diag%TOTREG_N%dgsave = .FALSE. 1373 ENDIF 1374 IF iom_use("TOTRG_SI") THEN 1375 med_diag%TOTRG_SI%dgsave = .TRUE. 1376 ELSE 1377 med_diag%TOTRG_SI%dgsave = .FALSE. 1378 ENDIF 1379 IF iom_use("REG__100") THEN 1380 med_diag%REG__100%dgsave = .TRUE. 1381 ELSE 1382 med_diag%REG__100%dgsave = .FALSE. 1383 ENDIF 1384 IF iom_use("REG__200") THEN 1385 med_diag%REG__200%dgsave = .TRUE. 1386 ELSE 1387 med_diag%REG__200%dgsave = .FALSE. 1388 ENDIF 1389 IF iom_use("REG__500") THEN 1390 med_diag%REG__500%dgsave = .TRUE. 1391 ELSE 1392 med_diag%REG__500%dgsave = .FALSE. 1393 ENDIF 1394 IF iom_use("REG_1000") THEN 1395 med_diag%REG_1000%dgsave = .TRUE. 1396 ELSE 1397 med_diag%REG_1000%dgsave = .FALSE. 1398 ENDIF 1399 IF iom_use("FASTN") THEN 1400 med_diag%FASTN%dgsave = .TRUE. 1401 ELSE 1402 med_diag%FASTN%dgsave = .FALSE. 1403 ENDIF 1404 IF iom_use("FASTSI") THEN 1405 med_diag%FASTSI%dgsave = .TRUE. 1406 ELSE 1407 med_diag%FASTSI%dgsave = .FALSE. 1408 ENDIF 1409 IF iom_use("FASTFE") THEN 1410 med_diag%FASTFE%dgsave = .TRUE. 1411 ELSE 1412 med_diag%FASTFE%dgsave = .FALSE. 1413 ENDIF 1414 IF iom_use("FASTC") THEN 1415 med_diag%FASTC%dgsave = .TRUE. 1416 ELSE 1417 med_diag%FASTC%dgsave = .FALSE. 1418 ENDIF 1419 IF iom_use("FASTCA") THEN 1420 med_diag%FASTCA%dgsave = .TRUE. 1421 ELSE 1422 med_diag%FASTCA%dgsave = .FALSE. 1423 ENDIF 1424 IF iom_use("FDT__100") THEN 1425 med_diag%FDT__100%dgsave = .TRUE. 1426 ELSE 1427 med_diag%FDT__100%dgsave = .FALSE. 1428 ENDIF 1429 IF iom_use("FDT__200") THEN 1430 med_diag%FDT__200%dgsave = .TRUE. 1431 ELSE 1432 med_diag%FDT__200%dgsave = .FALSE. 1433 ENDIF 1434 IF iom_use("FDT__500") THEN 1435 med_diag%FDT__500%dgsave = .TRUE. 1436 ELSE 1437 med_diag%FDT__500%dgsave = .FALSE. 1438 ENDIF 1439 IF iom_use("FDT_1000") THEN 1440 med_diag%FDT_1000%dgsave = .TRUE. 1441 ELSE 1442 med_diag%FDT_1000%dgsave = .FALSE. 1443 ENDIF 1444 IF iom_use("RG__100F") THEN 1445 med_diag%RG__100F%dgsave = .TRUE. 1446 ELSE 1447 med_diag%RG__100F%dgsave = .FALSE. 1448 ENDIF 1449 IF iom_use("RG__200F") THEN 1450 med_diag%RG__200F%dgsave = .TRUE. 1451 ELSE 1452 med_diag%RG__200F%dgsave = .FALSE. 1453 ENDIF 1454 IF iom_use("RG__500F") THEN 1455 med_diag%RG__500F%dgsave = .TRUE. 1456 ELSE 1457 med_diag%RG__500F%dgsave = .FALSE. 1458 ENDIF 1459 IF iom_use("RG_1000F") THEN 1460 med_diag%RG_1000F%dgsave = .TRUE. 1461 ELSE 1462 med_diag%RG_1000F%dgsave = .FALSE. 1463 ENDIF 1464 IF iom_use("FDS__100") THEN 1465 med_diag%FDS__100%dgsave = .TRUE. 1466 ELSE 1467 med_diag%FDS__100%dgsave = .FALSE. 1468 ENDIF 1469 IF iom_use("FDS__200") THEN 1470 med_diag%FDS__200%dgsave = .TRUE. 1471 ELSE 1472 med_diag%FDS__200%dgsave = .FALSE. 1473 ENDIF 1474 IF iom_use("FDS__500") THEN 1475 med_diag%FDS__500%dgsave = .TRUE. 1476 ELSE 1477 med_diag%FDS__500%dgsave = .FALSE. 1478 ENDIF 1479 IF iom_use("FDS_1000") THEN 1480 med_diag%FDS_1000%dgsave = .TRUE. 1481 ELSE 1482 med_diag%FDS_1000%dgsave = .FALSE. 1483 ENDIF 1484 IF iom_use("RGS_100F") THEN 1485 med_diag%RGS_100F%dgsave = .TRUE. 1486 ELSE 1487 med_diag%RGS_100F%dgsave = .FALSE. 1488 ENDIF 1489 IF iom_use("RGS_200F") THEN 1490 med_diag%RGS_200F%dgsave = .TRUE. 1491 ELSE 1492 med_diag%RGS_200F%dgsave = .FALSE. 1493 ENDIF 1494 IF iom_use("RGS_500F") THEN 1495 med_diag%RGS_500F%dgsave = .TRUE. 1496 ELSE 1497 med_diag%RGS_500F%dgsave = .FALSE. 1498 ENDIF 1499 IF iom_use("RGS1000F") THEN 1500 med_diag%RGS1000F%dgsave = .TRUE. 1501 ELSE 1502 med_diag%RGS1000F%dgsave = .FALSE. 1503 ENDIF 1504 IF iom_use("REMINN") THEN 1505 med_diag%REMINN%dgsave = .TRUE. 1506 ELSE 1507 med_diag%REMINN%dgsave = .FALSE. 1508 ENDIF 1509 IF iom_use("REMINSI") THEN 1510 med_diag%REMINSI%dgsave = .TRUE. 1511 ELSE 1512 med_diag%REMINSI%dgsave = .FALSE. 1513 ENDIF 1514 IF iom_use("REMINFE") THEN 1515 med_diag%REMINFE%dgsave = .TRUE. 1516 ELSE 1517 med_diag%REMINFE%dgsave = .FALSE. 1518 ENDIF 1519 IF iom_use("REMINC") THEN 1520 med_diag%REMINC%dgsave = .TRUE. 1521 ELSE 1522 med_diag%REMINC%dgsave = .FALSE. 1523 ENDIF 1524 IF iom_use("REMINCA") THEN 1525 med_diag%REMINCA%dgsave = .TRUE. 1526 ELSE 1527 med_diag%REMINCA%dgsave = .FALSE. 1528 ENDIF 1529 IF iom_use("SEAFLRN") THEN 1530 med_diag%SEAFLRN%dgsave = .TRUE. 1531 ELSE 1532 med_diag%SEAFLRN%dgsave = .FALSE. 1533 ENDIF 1534 IF iom_use("SEAFLRSI") THEN 1535 med_diag%SEAFLRSI%dgsave = .TRUE. 1536 ELSE 1537 med_diag%SEAFLRSI%dgsave = .FALSE. 1538 ENDIF 1539 IF iom_use("SEAFLRFE") THEN 1540 med_diag%SEAFLRFE%dgsave = .TRUE. 1541 ELSE 1542 med_diag%SEAFLRFE%dgsave = .FALSE. 1543 ENDIF 1544 IF iom_use("SEAFLRC") THEN 1545 med_diag%SEAFLRC%dgsave = .TRUE. 1546 ELSE 1547 med_diag%SEAFLRC%dgsave = .FALSE. 1548 ENDIF 1549 IF iom_use("SEAFLRCA") THEN 1550 med_diag%SEAFLRCA%dgsave = .TRUE. 1551 ELSE 1552 med_diag%SEAFLRCA%dgsave = .FALSE. 1553 ENDIF 1554 IF iom_use("MED_QSR") THEN 1555 med_diag%MED_QSR%dgsave = .TRUE. 1556 ELSE 1557 med_diag%MED_QSR%dgsave = .FALSE. 1558 ENDIF 1559 IF iom_use("MED_XPAR") THEN 1560 med_diag%MED_XPAR%dgsave = .TRUE. 1561 ELSE 1562 med_diag%MED_XPAR%dgsave = .FALSE. 1563 ENDIF 1564 IF iom_use("INTFLX_N") THEN 1565 med_diag%INTFLX_N%dgsave = .TRUE. 1566 ELSE 1567 med_diag%INTFLX_N%dgsave = .FALSE. 1568 ENDIF 1569 IF iom_use("INTFLX_SI") THEN 1570 med_diag%INTFLX_SI%dgsave = .TRUE. 1571 ELSE 1572 med_diag%INTFLX_SI%dgsave = .FALSE. 1573 ENDIF 1574 IF iom_use("INTFLX_FE") THEN 1575 med_diag%INTFLX_FE%dgsave = .TRUE. 1576 ELSE 1577 med_diag%INTFLX_FE%dgsave = .FALSE. 1578 ENDIF 1579 IF iom_use("INT_PN") THEN 1580 med_diag%INT_PN%dgsave = .TRUE. 1581 ELSE 1582 med_diag%INT_PN%dgsave = .FALSE. 1583 ENDIF 1584 IF iom_use("INT_PD") THEN 1585 med_diag%INT_PD%dgsave = .TRUE. 1586 ELSE 1587 med_diag%INT_PD%dgsave = .FALSE. 1588 ENDIF 1589 IF iom_use("ML_PRN") THEN 1590 med_diag%ML_PRN%dgsave = .TRUE. 1591 ELSE 1592 med_diag%ML_PRN%dgsave = .FALSE. 1593 ENDIF 1594 IF iom_use("ML_PRD") THEN 1595 med_diag%ML_PRD%dgsave = .TRUE. 1596 ELSE 1597 med_diag%ML_PRD%dgsave = .FALSE. 1598 ENDIF 1599 IF iom_use("OCAL_CCD") THEN 1600 med_diag%OCAL_CCD%dgsave = .TRUE. 1601 ELSE 1602 med_diag%OCAL_CCD%dgsave = .FALSE. 1603 ENDIF 1604 IF iom_use("OCAL_LVL") THEN 1605 med_diag%OCAL_LVL%dgsave = .TRUE. 1606 ELSE 1607 med_diag%OCAL_LVL%dgsave = .FALSE. 1608 ENDIF 1609 IF iom_use("FE_0000") THEN 1610 med_diag%FE_0000%dgsave = .TRUE. 1611 ELSE 1612 med_diag%FE_0000%dgsave = .FALSE. 1613 ENDIF 1614 IF iom_use("FE_0100") THEN 1615 med_diag%FE_0100%dgsave = .TRUE. 1616 ELSE 1617 med_diag%FE_0100%dgsave = .FALSE. 1618 ENDIF 1619 IF iom_use("FE_0200") THEN 1620 med_diag%FE_0200%dgsave = .TRUE. 1621 ELSE 1622 med_diag%FE_0200%dgsave = .FALSE. 1623 ENDIF 1624 IF iom_use("FE_0500") THEN 1625 med_diag%FE_0500%dgsave = .TRUE. 1626 ELSE 1627 med_diag%FE_0500%dgsave = .FALSE. 1628 ENDIF 1629 IF iom_use("FE_1000") THEN 1630 med_diag%FE_1000%dgsave = .TRUE. 1631 ELSE 1632 med_diag%FE_1000%dgsave = .FALSE. 1633 ENDIF 1634 IF iom_use("MED_XZE") THEN 1635 med_diag%MED_XZE%dgsave = .TRUE. 1636 ELSE 1637 med_diag%MED_XZE%dgsave = .FALSE. 1638 ENDIF 1639 IF iom_use("WIND") THEN 1640 med_diag%WIND%dgsave = .TRUE. 1641 ELSE 1642 med_diag%WIND%dgsave = .FALSE. 1643 ENDIF 1644 IF iom_use("ATM_PCO2") THEN 1645 med_diag%ATM_PCO2%dgsave = .TRUE. 1646 ELSE 1647 med_diag%ATM_PCO2%dgsave = .FALSE. 1648 ENDIF 1649 IF iom_use("OCN_PH") THEN 1650 med_diag%OCN_PH%dgsave = .TRUE. 1651 ELSE 1652 med_diag%OCN_PH%dgsave = .FALSE. 1653 ENDIF 1654 IF iom_use("OCN_PCO2") THEN 1655 med_diag%OCN_PCO2%dgsave = .TRUE. 1656 ELSE 1657 med_diag%OCN_PCO2%dgsave = .FALSE. 1658 ENDIF 1659 IF iom_use("OCNH2CO3") THEN 1660 med_diag%OCNH2CO3%dgsave = .TRUE. 1661 ELSE 1662 med_diag%OCNH2CO3%dgsave = .FALSE. 1663 ENDIF 1664 IF iom_use("OCN_HCO3") THEN 1665 med_diag%OCN_HCO3%dgsave = .TRUE. 1666 ELSE 1667 med_diag%OCN_HCO3%dgsave = .FALSE. 1668 ENDIF 1669 IF iom_use("OCN_CO3") THEN 1670 med_diag%OCN_CO3%dgsave = .TRUE. 1671 ELSE 1672 med_diag%OCN_CO3%dgsave = .FALSE. 1673 ENDIF 1674 IF iom_use("CO2FLUX") THEN 1675 med_diag%CO2FLUX%dgsave = .TRUE. 1676 ELSE 1677 med_diag%CO2FLUX%dgsave = .FALSE. 1678 ENDIF 1679 IF iom_use("OM_CAL") THEN 1680 med_diag%OM_CAL%dgsave = .TRUE. 1681 ELSE 1682 med_diag%OM_CAL%dgsave = .FALSE. 1683 ENDIF 1684 IF iom_use("OM_ARG") THEN 1685 med_diag%OM_ARG%dgsave = .TRUE. 1686 ELSE 1687 med_diag%OM_ARG%dgsave = .FALSE. 1688 ENDIF 1689 IF iom_use("TCO2") THEN 1690 med_diag%TCO2%dgsave = .TRUE. 1691 ELSE 1692 med_diag%TCO2%dgsave = .FALSE. 1693 ENDIF 1694 IF iom_use("TALK") THEN 1695 med_diag%TALK%dgsave = .TRUE. 1696 ELSE 1697 med_diag%TALK%dgsave = .FALSE. 1698 ENDIF 1699 IF iom_use("KW660") THEN 1700 med_diag%KW660%dgsave = .TRUE. 1701 ELSE 1702 med_diag%KW660%dgsave = .FALSE. 1703 ENDIF 1704 IF iom_use("ATM_PP0") THEN 1705 med_diag%ATM_PP0%dgsave = .TRUE. 1706 ELSE 1707 med_diag%ATM_PP0%dgsave = .FALSE. 1708 ENDIF 1709 IF iom_use("O2FLUX") THEN 1710 med_diag%O2FLUX%dgsave = .TRUE. 1711 ELSE 1712 med_diag%O2FLUX%dgsave = .FALSE. 1713 ENDIF 1714 IF iom_use("O2SAT") THEN 1715 med_diag%O2SAT%dgsave = .TRUE. 1716 ELSE 1717 med_diag%O2SAT%dgsave = .FALSE. 1718 ENDIF 1719 IF iom_use("CAL_CCD") THEN 1720 med_diag%CAL_CCD%dgsave = .TRUE. 1721 ELSE 1722 med_diag%CAL_CCD%dgsave = .FALSE. 1723 ENDIF 1724 IF iom_use("ARG_CCD") THEN 1725 med_diag%ARG_CCD%dgsave = .TRUE. 1726 ELSE 1727 med_diag%ARG_CCD%dgsave = .FALSE. 1728 ENDIF 1729 IF iom_use("SFR_OCAL") THEN 1730 med_diag%SFR_OCAL%dgsave = .TRUE. 1731 ELSE 1732 med_diag%SFR_OCAL%dgsave = .FALSE. 1733 ENDIF 1734 IF iom_use("SFR_OARG") THEN 1735 med_diag%SFR_OARG%dgsave = .TRUE. 1736 ELSE 1737 med_diag%SFR_OARG%dgsave = .FALSE. 1738 ENDIF 1739 IF iom_use("N_PROD") THEN 1740 med_diag%N_PROD%dgsave = .TRUE. 1741 ELSE 1742 med_diag%N_PROD%dgsave = .FALSE. 1743 ENDIF 1744 IF iom_use("N_CONS") THEN 1745 med_diag%N_CONS%dgsave = .TRUE. 1746 ELSE 1747 med_diag%N_CONS%dgsave = .FALSE. 1748 ENDIF 1749 IF iom_use("C_PROD") THEN 1750 med_diag%C_PROD%dgsave = .TRUE. 1751 ELSE 1752 med_diag%C_PROD%dgsave = .FALSE. 1753 ENDIF 1754 IF iom_use("C_CONS") THEN 1755 med_diag%C_CONS%dgsave = .TRUE. 1756 ELSE 1757 med_diag%C_CONS%dgsave = .FALSE. 1758 ENDIF 1759 IF iom_use("O2_PROD") THEN 1760 med_diag%O2_PROD%dgsave = .TRUE. 1761 ELSE 1762 med_diag%O2_PROD%dgsave = .FALSE. 1763 ENDIF 1764 IF iom_use("O2_CONS") THEN 1765 med_diag%O2_CONS%dgsave = .TRUE. 1766 ELSE 1767 med_diag%O2_CONS%dgsave = .FALSE. 1768 ENDIF 1769 IF iom_use("O2_ANOX") THEN 1770 med_diag%O2_ANOX%dgsave = .TRUE. 1771 ELSE 1772 med_diag%O2_ANOX%dgsave = .FALSE. 1773 ENDIF 1774 IF iom_use("RR_0100") THEN 1775 med_diag%RR_0100%dgsave = .TRUE. 1776 ELSE 1777 med_diag%RR_0100%dgsave = .FALSE. 1778 ENDIF 1779 IF iom_use("RR_0500") THEN 1780 med_diag%RR_0500%dgsave = .TRUE. 1781 ELSE 1782 med_diag%RR_0500%dgsave = .FALSE. 1783 ENDIF 1784 IF iom_use("RR_1000") THEN 1785 med_diag%RR_1000%dgsave = .TRUE. 1786 ELSE 1787 med_diag%RR_1000%dgsave = .FALSE. 1788 ENDIF 1789 IF iom_use("IBEN_N") THEN 1790 med_diag%IBEN_N%dgsave = .TRUE. 1791 ELSE 1792 med_diag%IBEN_N%dgsave = .FALSE. 1793 ENDIF 1794 IF iom_use("IBEN_FE") THEN 1795 med_diag%IBEN_FE%dgsave = .TRUE. 1796 ELSE 1797 med_diag%IBEN_FE%dgsave = .FALSE. 1798 ENDIF 1799 IF iom_use("IBEN_C") THEN 1800 med_diag%IBEN_C%dgsave = .TRUE. 1801 ELSE 1802 med_diag%IBEN_C%dgsave = .FALSE. 1803 ENDIF 1804 IF iom_use("IBEN_SI") THEN 1805 med_diag%IBEN_SI%dgsave = .TRUE. 1806 ELSE 1807 med_diag%IBEN_SI%dgsave = .FALSE. 1808 ENDIF 1809 IF iom_use("IBEN_CA") THEN 1810 med_diag%IBEN_CA%dgsave = .TRUE. 1811 ELSE 1812 med_diag%IBEN_CA%dgsave = .FALSE. 1813 ENDIF 1814 IF iom_use("OBEN_N") THEN 1815 med_diag%OBEN_N%dgsave = .TRUE. 1816 ELSE 1817 med_diag%OBEN_N%dgsave = .FALSE. 1818 ENDIF 1819 IF iom_use("OBEN_FE") THEN 1820 med_diag%OBEN_FE%dgsave = .TRUE. 1821 ELSE 1822 med_diag%OBEN_FE%dgsave = .FALSE. 1823 ENDIF 1824 IF iom_use("OBEN_C") THEN 1825 med_diag%OBEN_C%dgsave = .TRUE. 1826 ELSE 1827 med_diag%OBEN_C%dgsave = .FALSE. 1828 ENDIF 1829 IF iom_use("OBEN_SI") THEN 1830 med_diag%OBEN_SI%dgsave = .TRUE. 1831 ELSE 1832 med_diag%OBEN_SI%dgsave = .FALSE. 1833 ENDIF 1834 IF iom_use("OBEN_CA") THEN 1835 med_diag%OBEN_CA%dgsave = .TRUE. 1836 ELSE 1837 med_diag%OBEN_CA%dgsave = .FALSE. 1838 ENDIF 1839 IF iom_use("BEN_N") THEN 1840 med_diag%BEN_N%dgsave = .TRUE. 1841 ELSE 1842 med_diag%BEN_N%dgsave = .FALSE. 1843 ENDIF 1844 IF iom_use("BEN_FE") THEN 1845 med_diag%BEN_FE%dgsave = .TRUE. 1846 ELSE 1847 med_diag%BEN_FE%dgsave = .FALSE. 1848 ENDIF 1849 IF iom_use("BEN_C") THEN 1850 med_diag%BEN_C%dgsave = .TRUE. 1851 ELSE 1852 med_diag%BEN_C%dgsave = .FALSE. 1853 ENDIF 1854 IF iom_use("BEN_SI") THEN 1855 med_diag%BEN_SI%dgsave = .TRUE. 1856 ELSE 1857 med_diag%BEN_SI%dgsave = .FALSE. 1858 ENDIF 1859 IF iom_use("BEN_CA") THEN 1860 med_diag%BEN_CA%dgsave = .TRUE. 1861 ELSE 1862 med_diag%BEN_CA%dgsave = .FALSE. 1863 ENDIF 1864 IF iom_use("RUNOFF") THEN 1865 med_diag%RUNOFF%dgsave = .TRUE. 1866 ELSE 1867 med_diag%RUNOFF%dgsave = .FALSE. 1868 ENDIF 1869 IF iom_use("RIV_N") THEN 1870 med_diag%RIV_N%dgsave = .TRUE. 1871 ELSE 1872 med_diag%RIV_N%dgsave = .FALSE. 1873 ENDIF 1874 IF iom_use("RIV_SI") THEN 1875 med_diag%RIV_SI%dgsave = .TRUE. 1876 ELSE 1877 med_diag%RIV_SI%dgsave = .FALSE. 1878 ENDIF 1879 IF iom_use("RIV_C") THEN 1880 med_diag%RIV_C%dgsave = .TRUE. 1881 ELSE 1882 med_diag%RIV_C%dgsave = .FALSE. 1883 ENDIF 1884 IF iom_use("RIV_ALK") THEN 1885 med_diag%RIV_ALK%dgsave = .TRUE. 1886 ELSE 1887 med_diag%RIV_ALK%dgsave = .FALSE. 1888 ENDIF 1889 IF iom_use("DETC") THEN 1890 med_diag%DETC%dgsave = .TRUE. 1891 ELSE 1892 med_diag%DETC%dgsave = .FALSE. 1893 ENDIF 1894 IF iom_use("SDC__100") THEN 1895 med_diag%SDC__100%dgsave = .TRUE. 1896 ELSE 1897 med_diag%SDC__100%dgsave = .FALSE. 1898 ENDIF 1899 IF iom_use("SDC__200") THEN 1900 med_diag%SDC__200%dgsave = .TRUE. 1901 ELSE 1902 med_diag%SDC__200%dgsave = .FALSE. 1903 ENDIF 1904 IF iom_use("SDC__500") THEN 1905 med_diag%SDC__500%dgsave = .TRUE. 1906 ELSE 1907 med_diag%SDC__500%dgsave = .FALSE. 1908 ENDIF 1909 IF iom_use("SDC_1000") THEN 1910 med_diag%SDC_1000%dgsave = .TRUE. 1911 ELSE 1912 med_diag%SDC_1000%dgsave = .FALSE. 1913 ENDIF 1914 IF iom_use("INVTC") THEN 1915 med_diag%INVTC%dgsave = .TRUE. 1916 ELSE 1917 med_diag%INVTC%dgsave = .FALSE. 1918 ENDIF 1919 IF iom_use("INVTALK") THEN 1920 med_diag%INVTALK%dgsave = .TRUE. 1921 ELSE 1922 med_diag%INVTALK%dgsave = .FALSE. 1923 ENDIF 1924 IF iom_use("INVTO2") THEN 1925 med_diag%INVTO2%dgsave = .TRUE. 1926 ELSE 1927 med_diag%INVTO2%dgsave = .FALSE. 1928 ENDIF 1929 IF iom_use("LYSO_CA") THEN 1930 med_diag%LYSO_CA%dgsave = .TRUE. 1931 ELSE 1932 med_diag%LYSO_CA%dgsave = .FALSE. 1933 ENDIF 1934 IF iom_use("COM_RESP") THEN 1935 med_diag%COM_RESP%dgsave = .TRUE. 1936 ELSE 1937 med_diag%COM_RESP%dgsave = .FALSE. 1938 ENDIF 1939 IF iom_use("PN_LLOSS") THEN 1940 med_diag%PN_LLOSS%dgsave = .TRUE. 1941 ELSE 1942 med_diag%PN_LLOSS%dgsave = .FALSE. 1943 ENDIF 1944 IF iom_use("PD_LLOSS") THEN 1945 med_diag%PD_LLOSS%dgsave = .TRUE. 1946 ELSE 1947 med_diag%PD_LLOSS%dgsave = .FALSE. 1948 ENDIF 1949 IF iom_use("ZI_LLOSS") THEN 1950 med_diag%ZI_LLOSS%dgsave = .TRUE. 1951 ELSE 1952 med_diag%ZI_LLOSS%dgsave = .FALSE. 1953 ENDIF 1954 IF iom_use("ZE_LLOSS") THEN 1955 med_diag%ZE_LLOSS%dgsave = .TRUE. 1956 ELSE 1957 med_diag%ZE_LLOSS%dgsave = .FALSE. 1958 ENDIF 1959 IF iom_use("ZI_MES_N") THEN 1960 med_diag%ZI_MES_N%dgsave = .TRUE. 1961 ELSE 1962 med_diag%ZI_MES_N%dgsave = .FALSE. 1963 ENDIF 1964 IF iom_use("ZI_MES_D") THEN 1965 med_diag%ZI_MES_D%dgsave = .TRUE. 1966 ELSE 1967 med_diag%ZI_MES_D%dgsave = .FALSE. 1968 ENDIF 1969 IF iom_use("ZI_MES_C") THEN 1970 med_diag%ZI_MES_C%dgsave = .TRUE. 1971 ELSE 1972 med_diag%ZI_MES_C%dgsave = .FALSE. 1973 ENDIF 1974 IF iom_use("ZI_MESDC") THEN 1975 med_diag%ZI_MESDC%dgsave = .TRUE. 1976 ELSE 1977 med_diag%ZI_MESDC%dgsave = .FALSE. 1978 ENDIF 1979 IF iom_use("ZI_EXCR") THEN 1980 med_diag%ZI_EXCR%dgsave = .TRUE. 1981 ELSE 1982 med_diag%ZI_EXCR%dgsave = .FALSE. 1983 ENDIF 1984 IF iom_use("ZI_RESP") THEN 1985 med_diag%ZI_RESP%dgsave = .TRUE. 1986 ELSE 1987 med_diag%ZI_RESP%dgsave = .FALSE. 1988 ENDIF 1989 IF iom_use("ZI_GROW") THEN 1990 med_diag%ZI_GROW%dgsave = .TRUE. 1991 ELSE 1992 med_diag%ZI_GROW%dgsave = .FALSE. 1993 ENDIF 1994 IF iom_use("ZE_MES_N") THEN 1995 med_diag%ZE_MES_N%dgsave = .TRUE. 1996 ELSE 1997 med_diag%ZE_MES_N%dgsave = .FALSE. 1998 ENDIF 1999 IF iom_use("ZE_MES_D") THEN 2000 med_diag%ZE_MES_D%dgsave = .TRUE. 2001 ELSE 2002 med_diag%ZE_MES_D%dgsave = .FALSE. 2003 ENDIF 2004 IF iom_use("ZE_MES_C") THEN 2005 med_diag%ZE_MES_C%dgsave = .TRUE. 2006 ELSE 2007 med_diag%ZE_MES_C%dgsave = .FALSE. 2008 ENDIF 2009 IF iom_use("ZE_MESDC") THEN 2010 med_diag%ZE_MESDC%dgsave = .TRUE. 2011 ELSE 2012 med_diag%ZE_MESDC%dgsave = .FALSE. 2013 ENDIF 2014 IF iom_use("ZE_EXCR") THEN 2015 med_diag%ZE_EXCR%dgsave = .TRUE. 2016 ELSE 2017 med_diag%ZE_EXCR%dgsave = .FALSE. 2018 ENDIF 2019 IF iom_use("ZE_RESP") THEN 2020 med_diag%ZE_RESP%dgsave = .TRUE. 2021 ELSE 2022 med_diag%ZE_RESP%dgsave = .FALSE. 2023 ENDIF 2024 IF iom_use("ZE_GROW") THEN 2025 med_diag%ZE_GROW%dgsave = .TRUE. 2026 ELSE 2027 med_diag%ZE_GROW%dgsave = .FALSE. 2028 ENDIF 2029 IF iom_use("MDETC") THEN 2030 med_diag%MDETC%dgsave = .TRUE. 2031 ELSE 2032 med_diag%MDETC%dgsave = .FALSE. 2033 ENDIF 2034 IF iom_use("GMIDC") THEN 2035 med_diag%GMIDC%dgsave = .TRUE. 2036 ELSE 2037 med_diag%GMIDC%dgsave = .FALSE. 2038 ENDIF 2039 IF iom_use("GMEDC") THEN 2040 med_diag%GMEDC%dgsave = .TRUE. 2041 ELSE 2042 med_diag%GMEDC%dgsave = .FALSE. 2043 ENDIF 2044 IF iom_use("BASIN_01") THEN 2045 med_diag%BASIN_01%dgsave = .TRUE. 2046 ELSE 2047 med_diag%BASIN_01%dgsave = .FALSE. 2048 ENDIF 2049 IF iom_use("BASIN_02") THEN 2050 med_diag%BASIN_02%dgsave = .TRUE. 2051 ELSE 2052 med_diag%BASIN_02%dgsave = .FALSE. 2053 ENDIF 2054 IF iom_use("BASIN_03") THEN 2055 med_diag%BASIN_03%dgsave = .TRUE. 2056 ELSE 2057 med_diag%BASIN_03%dgsave = .FALSE. 2058 ENDIF 2059 IF iom_use("BASIN_04") THEN 2060 med_diag%BASIN_04%dgsave = .TRUE. 2061 ELSE 2062 med_diag%BASIN_04%dgsave = .FALSE. 2063 ENDIF 2064 IF iom_use("BASIN_05") THEN 2065 med_diag%BASIN_05%dgsave = .TRUE. 2066 ELSE 2067 med_diag%BASIN_05%dgsave = .FALSE. 2068 ENDIF 2069 IF iom_use("BASIN_06") THEN 2070 med_diag%BASIN_06%dgsave = .TRUE. 2071 ELSE 2072 med_diag%BASIN_06%dgsave = .FALSE. 2073 ENDIF 2074 IF iom_use("BASIN_07") THEN 2075 med_diag%BASIN_07%dgsave = .TRUE. 2076 ELSE 2077 med_diag%BASIN_07%dgsave = .FALSE. 2078 ENDIF 2079 IF iom_use("BASIN_08") THEN 2080 med_diag%BASIN_08%dgsave = .TRUE. 2081 ELSE 2082 med_diag%BASIN_08%dgsave = .FALSE. 2083 ENDIF 2084 IF iom_use("BASIN_09") THEN 2085 med_diag%BASIN_09%dgsave = .TRUE. 2086 ELSE 2087 med_diag%BASIN_09%dgsave = .FALSE. 2088 ENDIF 2089 IF iom_use("BASIN_10") THEN 2090 med_diag%BASIN_10%dgsave = .TRUE. 2091 ELSE 2092 med_diag%BASIN_10%dgsave = .FALSE. 2093 ENDIF 2094 IF iom_use("BASIN_11") THEN 2095 med_diag%BASIN_11%dgsave = .TRUE. 2096 ELSE 2097 med_diag%BASIN_11%dgsave = .FALSE. 2098 ENDIF 2099 IF iom_use("BASIN_12") THEN 2100 med_diag%BASIN_12%dgsave = .TRUE. 2101 ELSE 2102 med_diag%BASIN_12%dgsave = .FALSE. 2103 ENDIF 2104 IF iom_use("BASIN_13") THEN 2105 med_diag%BASIN_13%dgsave = .TRUE. 2106 ELSE 2107 med_diag%BASIN_13%dgsave = .FALSE. 2108 ENDIF 2109 IF iom_use("BASIN_14") THEN 2110 med_diag%BASIN_14%dgsave = .TRUE. 2111 ELSE 2112 med_diag%BASIN_14%dgsave = .FALSE. 2113 ENDIF 2114 IF iom_use("BASIN_15") THEN 2115 med_diag%BASIN_15%dgsave = .TRUE. 2116 ELSE 2117 med_diag%BASIN_15%dgsave = .FALSE. 2118 ENDIF 2119 IF iom_use("BASIN_16") THEN 2120 med_diag%BASIN_16%dgsave = .TRUE. 2121 ELSE 2122 med_diag%BASIN_16%dgsave = .FALSE. 2123 ENDIF 2124 IF iom_use("BASIN_17") THEN 2125 med_diag%BASIN_17%dgsave = .TRUE. 2126 ELSE 2127 med_diag%BASIN_17%dgsave = .FALSE. 2128 ENDIF 2129 IF iom_use("BASIN_18") THEN 2130 med_diag%BASIN_18%dgsave = .TRUE. 2131 ELSE 2132 med_diag%BASIN_18%dgsave = .FALSE. 2133 ENDIF 2134 IF iom_use("BASIN_19") THEN 2135 med_diag%BASIN_19%dgsave = .TRUE. 2136 ELSE 2137 med_diag%BASIN_19%dgsave = .FALSE. 2138 ENDIF 2139 IF iom_use("BASIN_20") THEN 2140 med_diag%BASIN_20%dgsave = .TRUE. 2141 ELSE 2142 med_diag%BASIN_20%dgsave = .FALSE. 2143 ENDIF 2144 IF iom_use("BASIN_21") THEN 2145 med_diag%BASIN_21%dgsave = .TRUE. 2146 ELSE 2147 med_diag%BASIN_21%dgsave = .FALSE. 2148 ENDIF 2149 IF iom_use("BASIN_22") THEN 2150 med_diag%BASIN_22%dgsave = .TRUE. 2151 ELSE 2152 med_diag%BASIN_22%dgsave = .FALSE. 2153 ENDIF 2154 IF iom_use("BASIN_23") THEN 2155 med_diag%BASIN_23%dgsave = .TRUE. 2156 ELSE 2157 med_diag%BASIN_23%dgsave = .FALSE. 2158 ENDIF 2159 IF iom_use("BASIN_24") THEN 2160 med_diag%BASIN_24%dgsave = .TRUE. 2161 ELSE 2162 med_diag%BASIN_24%dgsave = .FALSE. 2163 ENDIF 2164 IF iom_use("BASIN_25") THEN 2165 med_diag%BASIN_25%dgsave = .TRUE. 2166 ELSE 2167 med_diag%BASIN_25%dgsave = .FALSE. 2168 ENDIF 2169 IF iom_use("BASIN_26") THEN 2170 med_diag%BASIN_26%dgsave = .TRUE. 2171 ELSE 2172 med_diag%BASIN_26%dgsave = .FALSE. 2173 ENDIF 2174 IF iom_use("BASIN_27") THEN 2175 med_diag%BASIN_27%dgsave = .TRUE. 2176 ELSE 2177 med_diag%BASIN_27%dgsave = .FALSE. 2178 ENDIF 2179 IF iom_use("BASIN_28") THEN 2180 med_diag%BASIN_28%dgsave = .TRUE. 2181 ELSE 2182 med_diag%BASIN_28%dgsave = .FALSE. 2183 ENDIF 2184 IF iom_use("BASIN_29") THEN 2185 med_diag%BASIN_29%dgsave = .TRUE. 2186 ELSE 2187 med_diag%BASIN_29%dgsave = .FALSE. 2188 ENDIF 2189 IF iom_use("BASIN_30") THEN 2190 med_diag%BASIN_30%dgsave = .TRUE. 2191 ELSE 2192 med_diag%BASIN_30%dgsave = .FALSE. 2193 ENDIF 2194 IF iom_use("BASIN_31") THEN 2195 med_diag%BASIN_31%dgsave = .TRUE. 2196 ELSE 2197 med_diag%BASIN_31%dgsave = .FALSE. 2198 ENDIF 2199 IF iom_use("BASIN_32") THEN 2200 med_diag%BASIN_32%dgsave = .TRUE. 2201 ELSE 2202 med_diag%BASIN_32%dgsave = .FALSE. 2203 ENDIF 2204 IF iom_use("BASIN_33") THEN 2205 med_diag%BASIN_33%dgsave = .TRUE. 2206 ELSE 2207 med_diag%BASIN_33%dgsave = .FALSE. 2208 ENDIF 2209 IF iom_use("BASIN_34") THEN 2210 med_diag%BASIN_34%dgsave = .TRUE. 2211 ELSE 2212 med_diag%BASIN_34%dgsave = .FALSE. 2213 ENDIF 2214 IF iom_use("BASIN_35") THEN 2215 med_diag%BASIN_35%dgsave = .TRUE. 2216 ELSE 2217 med_diag%BASIN_35%dgsave = .FALSE. 2218 ENDIF 2219 IF iom_use("BASIN_36") THEN 2220 med_diag%BASIN_36%dgsave = .TRUE. 2221 ELSE 2222 med_diag%BASIN_36%dgsave = .FALSE. 2223 ENDIF 2224 IF iom_use("BASIN_37") THEN 2225 med_diag%BASIN_37%dgsave = .TRUE. 2226 ELSE 2227 med_diag%BASIN_37%dgsave = .FALSE. 2228 ENDIF 2229 IF iom_use("BASIN_38") THEN 2230 med_diag%BASIN_38%dgsave = .TRUE. 2231 ELSE 2232 med_diag%BASIN_38%dgsave = .FALSE. 2233 ENDIF 2234 IF iom_use("BASIN_39") THEN 2235 med_diag%BASIN_39%dgsave = .TRUE. 2236 ELSE 2237 med_diag%BASIN_39%dgsave = .FALSE. 2238 ENDIF 2239 IF iom_use("BASIN_40") THEN 2240 med_diag%BASIN_40%dgsave = .TRUE. 2241 ELSE 2242 med_diag%BASIN_40%dgsave = .FALSE. 2243 ENDIF 2244 IF iom_use("BASIN_41") THEN 2245 med_diag%BASIN_41%dgsave = .TRUE. 2246 ELSE 2247 med_diag%BASIN_41%dgsave = .FALSE. 2248 ENDIF 2249 IF iom_use("BASIN_42") THEN 2250 med_diag%BASIN_42%dgsave = .TRUE. 2251 ELSE 2252 med_diag%BASIN_42%dgsave = .FALSE. 2253 ENDIF 2254 IF iom_use("BASIN_43") THEN 2255 med_diag%BASIN_43%dgsave = .TRUE. 2256 ELSE 2257 med_diag%BASIN_43%dgsave = .FALSE. 2258 ENDIF 2259 IF iom_use("BASIN_44") THEN 2260 med_diag%BASIN_44%dgsave = .TRUE. 2261 ELSE 2262 med_diag%BASIN_44%dgsave = .FALSE. 2263 ENDIF 2264 IF iom_use("BASIN_45") THEN 2265 med_diag%BASIN_45%dgsave = .TRUE. 2266 ELSE 2267 med_diag%BASIN_45%dgsave = .FALSE. 2268 ENDIF 2269 IF iom_use("INT_ZMI") THEN 2270 med_diag%INT_ZMI%dgsave = .TRUE. 2271 ELSE 2272 med_diag%INT_ZMI%dgsave = .FALSE. 2273 ENDIF 2274 IF iom_use("INT_ZME") THEN 2275 med_diag%INT_ZME%dgsave = .TRUE. 2276 ELSE 2277 med_diag%INT_ZME%dgsave = .FALSE. 2278 ENDIF 2279 IF iom_use("INT_DET") THEN 2280 med_diag%INT_DET%dgsave = .TRUE. 2281 ELSE 2282 med_diag%INT_DET%dgsave = .FALSE. 2283 ENDIF 2284 IF iom_use("INT_DTC") THEN 2285 med_diag%INT_DTC%dgsave = .TRUE. 2286 ELSE 2287 med_diag%INT_DTC%dgsave = .FALSE. 2288 ENDIF 2289 IF iom_use("DMS_SURF") THEN 2290 med_diag%DMS_SURF%dgsave = .TRUE. 2291 ELSE 2292 med_diag%DMS_SURF%dgsave = .FALSE. 2293 ENDIF 2294 IF iom_use("DMS_ANDR") THEN 2295 med_diag%DMS_ANDR%dgsave = .TRUE. 2296 ELSE 2297 med_diag%DMS_ANDR%dgsave = .FALSE. 2298 ENDIF 2299 IF iom_use("DMS_SIMO") THEN 2300 med_diag%DMS_SIMO%dgsave = .TRUE. 2301 ELSE 2302 med_diag%DMS_SIMO%dgsave = .FALSE. 2303 ENDIF 2304 IF iom_use("DMS_ARAN") THEN 2305 med_diag%DMS_ARAN%dgsave = .TRUE. 2306 ELSE 2307 med_diag%DMS_ARAN%dgsave = .FALSE. 2308 ENDIF 2309 IF iom_use("DMS_HALL") THEN 2310 med_diag%DMS_HALL%dgsave = .TRUE. 2311 ELSE 2312 med_diag%DMS_HALL%dgsave = .FALSE. 2313 ENDIF 2314 IF iom_use("TPP3") THEN 2315 med_diag%TPP3%dgsave = .TRUE. 2316 ELSE 2317 med_diag%TPP3%dgsave = .FALSE. 2318 ENDIF 2319 IF iom_use("DETFLUX3") THEN 2320 med_diag%DETFLUX3%dgsave = .TRUE. 2321 ELSE 2322 med_diag%DETFLUX3%dgsave = .FALSE. 2323 ENDIF 2324 IF iom_use("REMIN3N") THEN 2325 med_diag%REMIN3N%dgsave = .TRUE. 2326 ELSE 2327 med_diag%REMIN3N%dgsave = .FALSE. 2328 ENDIF 2329 IF iom_use("PH3") THEN 2330 med_diag%PH3%dgsave = .TRUE. 2331 ELSE 2332 med_diag%PH3%dgsave = .FALSE. 2333 ENDIF 2334 IF iom_use("OM_CAL3") THEN 2335 med_diag%OM_CAL3%dgsave = .TRUE. 2336 ELSE 2337 med_diag%OM_CAL3%dgsave = .FALSE. 2338 ENDIF 2339 !! 2340 !! 2341 END SUBROUTINE trc_nam_iom_medusa 2342 1171 2343 #else 1172 2344 !!---------------------------------------------------------------------- -
branches/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM/NEMO/TOP_SRC/MEDUSA/trcsed_medusa.F90
r5841 r5931 23 23 !! AXY (10/02/09) 24 24 USE iom 25 USE trc_nam_dia ! JPALM 13-11-2015 -- if iom_use for diag 26 USE trc_nam_iom_medusa ! JPALM 13-11-2015 -- if iom_use for diag 25 27 26 28 USE lbclnk … … 90 92 91 93 CHARACTER (len=25) :: charout 94 95 !! JPALM - 26-11-2015 -add iom_use for diagnostic 96 REAL(wp), POINTER, DIMENSION(:,: ) :: zw2d 92 97 !!--------------------------------------------------------------------- 93 98 !! 99 IF( lk_iomput) THEN 100 IF( med_diag%DSED%dgsave ) THEN 101 CALL wrk_alloc( jpi, jpj, zw2d ) 102 zw2d(:,:) = 0.0 !! 103 ENDIF 104 ENDIF 105 94 106 !! AXY (10/02/09) 95 107 jnt = 1 … … 165 177 trbio(ji,jj,jk,8) = ztra 166 178 # endif 167 IF( ln_diatrc ) & 168 & trc2d(ji,jj,8) = trc2d(ji,jj,8) + ztra * fse3t(ji,jj,jk) * 86400. 179 IF (lk_iomput .AND. .NOT. ln_diatrc) THEN 180 IF( med_diag%DSED%dgsave ) THEN 181 zw2d(ji,jj) = zw2d(ji,jj) + ztra * fse3t(ji,jj,jk) * 86400 182 ENDIF 183 ELSE IF( ln_diatrc ) THEN 184 trc2d(ji,jj,8) = trc2d(ji,jj,8) + ztra * fse3t(ji,jj,jk) * 86400 185 ENDIF 186 187 . 169 188 END DO 170 189 END DO … … 175 194 # endif 176 195 IF( ln_diatrc ) CALL lbc_lnk( trc2d(:,:,8), 'T', 1. ) ! Lateral boundary conditions on trc2d 177 # if defined key_iomput 178 CALL iom_put( "DSED",trc2d(:,:,8) ) 179 # endif 180 196 !! 197 IF (lk_iomput .AND. .NOT. ln_diatrc) THEN 198 IF( med_diag%DSED%dgsave ) THEN 199 CALL iom_put( "DSED" , zw2d) 200 CALL wrk_dealloc( jpi, jpj, zw2d ) 201 ENDIF 202 ELSE IF (lk_iomput .AND. ln_diatrc) THEN 203 CALL iom_put( "DSED",trc2d(:,:,8) ) 204 ENDIF 205 !! 181 206 # if defined key_roam 182 207 -
branches/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM/NEMO/TOP_SRC/trc.F90
r5733 r5931 104 104 END TYPE DIAG 105 105 106 #if defined key_medusa && defined key_iomput 107 TYPE, PUBLIC :: BDIAG 108 LOGICAL :: dgsave 109 END TYPE BDIAG 110 111 TYPE, PUBLIC :: DIAG_IOM 112 TYPE(BDIAG) INVTN, INVTSI, INVTFE, PRN, MPN, PRD, MPD, DSED, OPAL, OPALDISS, GMIPn, & 113 GMID, MZMI, GMEPN, GMEPD, GMEZMI, GMED, MZME, DEXP, DETN, MDET, AEOLIAN, BENTHIC, & 114 SCAVENGE, PN_JLIM, PN_NLIM, PN_FELIM, PD_JLIM, PD_NLIM, PD_FELIM, PD_SILIM, & 115 PDSILIM2, SDT__100, SDT__200, SDT__500, SDT_1000, TOTREG_N, TOTRG_SI, REG__100, & 116 REG__200, REG__500, REG_1000, FASTN, FASTSI, FASTFE, FASTC, FASTCA, FDT__100, & 117 FDT__200, FDT__500, FDT_1000, RG__100F, RG__200F, RG__500F, RG_1000F, FDS__100, & 118 FDS__200, FDS__500, FDS_1000, RGS_100F, RGS_200F, RGS_500F, RGS1000F, REMINN, & 119 REMINSI, REMINFE, REMINC, REMINCA, SEAFLRN, SEAFLRSI, SEAFLRFE, SEAFLRC, SEAFLRCA, & 120 MED_QSR, MED_XPAR, INTFLX_N, INTFLX_SI, INTFLX_FE, INT_PN, INT_PD, ML_PRN, ML_PRD, & 121 OCAL_CCD, OCAL_LVL, FE_0000, FE_0100, FE_0200, FE_0500, FE_1000, MED_XZE, WIND, & 122 ATM_PCO2, OCN_PH, OCN_PCO2, OCNH2CO3, OCN_HCO3, OCN_CO3, CO2FLUX, OM_CAL, OM_ARG, & 123 TCO2, TALK, KW660, ATM_PP0, O2FLUX, O2SAT, CAL_CCD, ARG_CCD, SFR_OCAL, SFR_OARG, & 124 N_PROD, N_CONS, C_PROD, C_CONS, O2_PROD, O2_CONS, O2_ANOX, RR_0100, RR_0500, & 125 RR_1000, IBEN_N, IBEN_FE, IBEN_C, IBEN_SI, IBEN_CA, OBEN_N, OBEN_FE, OBEN_C, & 126 OBEN_SI, OBEN_CA, BEN_N, BEN_FE, BEN_C, BEN_SI, BEN_CA, RUNOFF, RIV_N, RIV_SI, & 127 RIV_C, RIV_ALK, DETC, SDC__100, SDC__200, SDC__500, SDC_1000, INVTC, INVTALK, & 128 INVTO2, LYSO_CA, COM_RESP, PN_LLOSS, PD_LLOSS, ZI_LLOSS, ZE_LLOSS, ZI_MES_N, & 129 ZI_MES_D, ZI_MES_C, ZI_MESDC, ZI_EXCR, ZI_RESP, ZI_GROW, ZE_MES_N, ZE_MES_D, & 130 ZE_MES_C, ZE_MESDC, ZE_EXCR, ZE_RESP, ZE_GROW, MDETC, GMIDC, GMEDC, & 131 BASIN_01, BASIN_02, BASIN_03, BASIN_04, BASIN_05, BASIN_06, BASIN_07, BASIN_08, & 132 BASIN_09, BASIN_10, BASIN_11, BASIN_12, BASIN_13, BASIN_14, BASIN_15, BASIN_16, & 133 BASIN_17, BASIN_18, BASIN_19, BASIN_20, BASIN_21, BASIN_22, BASIN_23, BASIN_24, & 134 BASIN_25, BASIN_26, BASIN_27, BASIN_28, BASIN_29, BASIN_30, BASIN_31, BASIN_32, & 135 BASIN_33, BASIN_34, BASIN_35, BASIN_36, BASIN_37, BASIN_38, BASIN_39, BASIN_40, & 136 BASIN_41, BASIN_42, BASIN_43, BASIN_44, BASIN_45, & 137 INT_ZMI, INT_ZME, INT_DET, INT_DTC, DMS_SURF, DMS_ANDR, DMS_SIMO, DMS_ARAN, & 138 DMS_HALL, & 139 TPP3, DETFLUX3, REMIN3N, PH3, OM_CAL3 140 !! list of all MEDUSA diagnostics that could be called by iom_use 141 END TYPE DIAG_IOM 142 # endif 143 106 144 !! information for inputs 107 145 !! -------------------------------------------------- -
branches/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM/NEMO/TOP_SRC/trcnam.F90
r5841 r5931 434 434 !! ( (PISCES, CFC, MY_TRC ) 435 435 !!--------------------------------------------------------------------- 436 #if defined key_medusa && defined key_iomput 437 TYPE(DIAG_IOM), PUBLIC :: med_diag ! define which diagnostics are asked in outputs 438 #endif 436 439 INTEGER :: ierr 437 440 #if defined key_trdmxl_trc || defined key_trdtrc … … 482 485 !! to : 483 486 !! 484 IF ( ( ln_diatrc .AND. .NOT. lk_iomput ) .OR. ( ln_diatrc .AND. lk_medusa ) )THEN487 IF ( ln_diatrc ) THEN 485 488 ALLOCATE( trc2d(jpi,jpj,jpdia2d), trc3d(jpi,jpj,jpk,jpdia3d), & 486 489 & ctrc2d(jpdia2d), ctrc2l(jpdia2d), ctrc2u(jpdia2d) , & … … 491 494 trc3d(:,:,:,:) = 0._wp ; ctrc3d(:) = ' ' ; ctrc3l(:) = ' ' ; ctrc3u(:) = ' ' 492 495 ! 496 ELSE IF ( lk_iomput .AND. lk_medusa ) THEN 497 CALL trc_nam_iom_medusa 493 498 ENDIF 494 499
Note: See TracChangeset
for help on using the changeset viewer.