Changeset 5931 for branches/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM/NEMO/TOP_SRC/MEDUSA/trcbio_medusa.F90
- Timestamp:
- 2015-11-26T17:28:18+01:00 (8 years ago)
- File:
-
- 1 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
Note: See TracChangeset
for help on using the changeset viewer.