Changeset 5931


Ignore:
Timestamp:
2015-11-26T17:28:18+01:00 (5 years ago)
Author:
jpalmier
Message:

JPALM —26-11-2015 — Update MEDUSA diagnostics with iom_use

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  
    1818   !!  -   !  2015-06  (A. Yool)              Update to include MOCSY 
    1919   !!  -   !  2015-07  (A. Yool)              Update for rolling averages 
     20   !!  -   !  2015-10  (J. Palm)              Update for diag outputs through iom_use   
    2021   !!---------------------------------------------------------------------- 
    2122   !! 
     
    6869# if defined key_iomput 
    6970      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 
    7073# endif 
    7174# if defined key_roam 
     
    165168      !! 
    166169      !! 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 
    169174      !! AXY (03/02/11): add in Liebig terms 
    170175      REAL(wp) ::    fpnlim, fpdlim 
     
    173178      INTEGER  ::    ieppley 
    174179      !! AXY (01/03/10): add in mixed layer PP diagnostics 
    175       REAL(wp) ::    fprn_ml,fprd_ml 
     180      REAL(wp), DIMENSION(jpi,jpj) ::  fprn_ml,fprd_ml 
    176181      !! 
    177182      !! nutrient limiting factors 
     
    184189      !! iron cycle; includes parameters for Parekh et al. (2005) iron scheme 
    185190      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 
    187193      REAL(wp) ::    xb_coef_tmp, xb2M4ac           !! iron-ligand parameters 
    188194      REAL(wp) ::    xmaxFeF,fdeltaFe               !! max Fe' parameters 
     
    208214      !! mortality/Remineralisation (defunct parameter "fz" removed) 
    209215      REAL(wp) ::    fdpn,fdpd,fdpds,fdzmi,fdzme,fdd 
     216      REAL(wp), DIMENSION(jpi,jpj)  ::    fdpn2d,fdpd2d 
    210217# if defined key_roam 
    211218      REAL(wp) ::    fddc 
    212219# endif 
    213220      REAL(wp) ::    fdpn2,fdpd2,fdpds2,fdzmi2,fdzme2 
    214       REAL(wp) ::    fslown, fslownflux 
    215       REAL(wp) ::    fslowc, fslowcflux 
     221      REAL(wp) ::    fslown, fslowc 
     222      REAL(wp), DIMENSION(jpi,jpj) ::    fslownflux, fslowcflux 
    216223      REAL(wp) ::    fregen,fregensi 
    217224      REAL(wp), DIMENSION(jpi,jpj) ::    fregenfast,fregenfastsi 
     
    229236      REAL(wp) ::    fheren,fheresi,fherefe,fherec,fhereca 
    230237      REAL(wp) ::    fprotf 
    231       REAL(wp) ::    fsedn,fsedsi,fsedfe,fsedc,fsedca 
     238      REAL(wp), DIMENSION(jpi,jpj) ::    fsedn,fsedsi,fsedfe,fsedc,fsedca 
    232239      REAL(wp), DIMENSION(jpi,jpj) ::    fccd 
    233240      REAL(wp) ::    fccd_dep 
     
    249256      !! 
    250257      !! water column nutrient and flux integrals 
    251       REAL(wp) ::    ftot_n,ftot_si,ftot_fe 
     258      REAL(wp), DIMENSION(jpi,jpj) ::    ftot_n,ftot_si,ftot_fe 
    252259      REAL(wp), DIMENSION(jpi,jpj) ::    fflx_n,fflx_si,fflx_fe 
    253260      REAL(wp), DIMENSION(jpi,jpj) ::    fifd_n,fifd_si,fifd_fe 
    254261      REAL(wp), DIMENSION(jpi,jpj) ::    fofd_n,fofd_si,fofd_fe 
    255262# if defined key_roam 
    256       REAL(wp) ::    ftot_c,ftot_a,ftot_o2 
     263      REAL(wp), DIMENSION(jpi,jpj) ::    ftot_c,ftot_a,ftot_o2 
    257264      REAL(wp), DIMENSION(jpi,jpj) ::    fflx_c,fflx_a,fflx_o2 
    258265      REAL(wp), DIMENSION(jpi,jpj) ::    fifd_c,fifd_a,fifd_o2 
     
    301308      !! carbon, alkalinity production and consumption 
    302309      REAL(wp) ::    fc_prod, fc_cons, fa_prod, fa_cons 
    303       REAL(wp) ::    fcomm_resp 
     310      REAL(wp), DIMENSION(jpi,jpj) ::    fcomm_resp 
    304311      REAL(wp), DIMENSION(jpi,jpj) ::    fcar_prod, fcar_cons 
    305312      !! 
     
    331338      !! horizontal grid location 
    332339      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 
    334362      !!--------------------------------------------------------------------- 
    335363 
     
    435463      fflx_a(:,:)  = 0.0        !! alkalinity flux total 
    436464      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 
    437468      fifd_c(:,:)  = 0.0        !! carbon     fast detritus production 
    438469      fifd_a(:,:)  = 0.0        !! alkalinity fast detritus production 
     
    453484      foxy_anox(:,:) = 0.0      !! unrealised oxygen consumption 
    454485# endif 
     486      ftot_n(:,:)   = 0.0       !! N inventory  
     487      ftot_si(:,:)  = 0.0       !! Si inventory 
     488      ftot_fe(:,:)  = 0.0       !! Fe inventory 
    455489      ftot_pn(:,:)  = 0.0       !! integrated non-diatom phytoplankton 
    456490      ftot_pd(:,:)  = 0.0       !! integrated diatom     phytoplankton 
     
    487521      f_riv_c(:,:)   = 0.0      !! riverine C   input  
    488522      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      !! 
    490872# if defined key_axy_nancheck 
    491873      DO jn = 1,jptra 
     
    6651047                     f3_omarg(ji,jj,jk) = f_omarg(ji,jj) 
    6661048                     !! 
     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                     !! 
    6671080                     !! CCD calculation: calcite 
    6681081                     if (i2_omcal(ji,jj) .eq. 0 .and. f_omcal(ji,jj) .lt. 1.0) then 
     
    8741287 
    8751288               !! 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 
    8791302# 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 
    8851315# endif 
    8861316               CALL flush(numout) 
     
    10561486                        dms_surf = dms_hall 
    10571487                     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 
    10581508                  ENDIF 
    10591509                  !! End DMS Loop 
     
    13561806               endif 
    13571807               !! 
    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                
    13611821               !!---------------------------------------------------------------------- 
    13621822               !! More chlorophyll calculations 
     
    16752135               !! "free" iron concentration (and convert to mmol Fe / m3) 
    16762136               xFeF        = (xFeT - xFeL) * 1.e-3 
    1677                xFree       = xFeF / (zfer + tiny(zfer)) 
     2137               xFree(ji,jj)= xFeF / (zfer + tiny(zfer)) 
    16782138               !! 
    16792139               !! scavenging of iron (multiple schemes); I'm only really happy with the  
     
    19822442                  IF (lwp) write (numout,*) 'ffetop(',jk,')  = ', ffetop 
    19832443                  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) 
    19852445                  IF (lwp) write (numout,*) 'ffescav(',jk,') = ', ffescav 
    19862446               endif 
     
    20152475               !! standard depths in the diagnostic outputs; needs to be 
    20162476               !! adjusted from per second to per day because of parameter vsed 
    2017                fslownflux = zdet * vsed * 86400. 
     2477               fslownflux(ji,jj) = zdet * vsed * 86400. 
    20182478# if defined key_roam 
    20192479               !! 
     
    20282488               !! standard depths in the diagnostic outputs; needs to be 
    20292489               !! adjusted from per second to per day because of parameter vsed 
    2030                fslowcflux = zdtc * vsed * 86400. 
     2490               fslowcflux(ji,jj) = zdtc * vsed * 86400. 
    20312491# endif 
    20322492 
     
    25413001                     f_fbenin_c(ji,jj)  = ffastc(ji,jj)             !! fast C -> benthic C                       (mol/m2) 
    25423002                  endif 
    2543                   fsedc    = ffastc(ji,jj)                          !! record seafloor C                         (mol/m2) 
     3003                  fsedc(ji,jj)   = ffastc(ji,jj)                          !! record seafloor C                         (mol/m2) 
    25443004                  ffastc(ji,jj)  = 0.0 
    25453005                  !! 
     
    25533013                     f_fbenin_n(ji,jj)  = ffastn(ji,jj)             !! fast N -> benthic N                       (mol/m2) 
    25543014                  endif 
    2555                   fsedn    = ffastn(ji,jj)                          !! record seafloor N                         (mol/m2) 
     3015                  fsedn(ji,jj)   = ffastn(ji,jj)                          !! record seafloor N                         (mol/m2) 
    25563016                  ffastn(ji,jj)  = 0.0 
    25573017                  !! 
     
    25643024                     f_fbenin_fe(ji,jj) = ffastfe(ji,jj)            !! fast Fe -> benthic Fe                     (mol/m2) 
    25653025                  endif 
    2566                   fsedfe   = ffastfe(ji,jj)                         !! record seafloor Fe                        (mol/m2) 
     3026                  fsedfe(ji,jj)  = ffastfe(ji,jj)                         !! record seafloor Fe                        (mol/m2) 
    25673027                  ffastfe(ji,jj) = 0.0 
    25683028                  !! 
     
    25733033                     f_fbenin_si(ji,jj) = ffastsi(ji,jj)            !! fast Si -> benthic Si                     (mol/m2) 
    25743034                  endif 
    2575                   fsedsi   = ffastsi(ji,jj)                         !! record seafloor Si                        (mol/m2) 
     3035                  fsedsi(ji,jj)   = ffastsi(ji,jj)                         !! record seafloor Si                        (mol/m2) 
    25763036                  ffastsi(ji,jj) = 0.0 
    25773037                  !! 
     
    25823042                     f_fbenin_ca(ji,jj) = ffastca(ji,jj)            !! fast Ca -> benthic Ca                     (mol/m2) 
    25833043                  endif 
    2584                   fsedca   = ffastca(ji,jj)                         !! record seafloor Ca                        (mol/m2) 
     3044                  fsedca(ji,jj)   = ffastca(ji,jj)                         !! record seafloor Ca                        (mol/m2) 
    25853045                  ffastca(ji,jj) = 0.0 
    25863046               endif 
     
    27793239               !! 
    27803240               !! community respiration (does not include CaCO3 terms - obviously!) 
    2781                fcomm_resp = fc_prod 
     3241               fcomm_resp(ji,jj) = fcomm_resp(ji,jj) + fc_prod 
    27823242               !! 
    27833243               !! CaCO3 
     
    30573517# endif 
    30583518 
    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 
    30603795                  !!---------------------------------------------------------------------- 
    30613796                  !! Prepare 2D diagnostics 
     
    30653800                  !!    IF (lwp) write (*,*) '*******!MEDUSA DIAADD!*******',kt 
    30663801                  !! endif      
    3067                   trc2d(ji,jj,1)  = trc2d(ji,jj,1)  + ftot_n                   !! nitrogen inventory 
    3068                   trc2d(ji,jj,2)  = trc2d(ji,jj,2)  + ftot_si                  !! silicon  inventory 
    3069                   trc2d(ji,jj,3)  = trc2d(ji,jj,3)  + ftot_fe                  !! iron     inventory 
     3802                  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 
    30703805                  trc2d(ji,jj,4)  = trc2d(ji,jj,4)  + (fprn  * zphn * fthk)    !! non-diatom production 
    30713806                  trc2d(ji,jj,5)  = trc2d(ji,jj,5)  + (fdpn         * fthk)    !! non-diatom non-grazing losses 
     
    30973832                  trc2d(ji,jj,31) = trc2d(ji,jj,31) + (fsld2 * zphd * fthk)    !! diatom     Si limitation term  
    30983833                  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                !! slow detritus flux at  100 m 
    3100                   if (jk.eq.i0200) trc2d(ji,jj,34) = fslownflux                !! slow detritus flux at  200 m 
    3101                   if (jk.eq.i0500) trc2d(ji,jj,35) = fslownflux                !! slow detritus flux at  500 m 
    3102                   if (jk.eq.i1000) trc2d(ji,jj,36) = fslownflux                !! slow detritus flux at 1000 m 
     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 
    31033838                  trc2d(ji,jj,37) = trc2d(ji,jj,37) + fregen                   !! non-fast N  full column regeneration 
    31043839                  trc2d(ji,jj,38) = trc2d(ji,jj,38) + fregensi                 !! non-fast Si full column regeneration 
     
    31443879                  !! if (jk.eq.1)  trc2d(ji,jj,75) = real(iters) 
    31453880                  !! diagnostic fields 76 to 80 calculated below 
    3146                   trc2d(ji,jj,81) = trc2d(ji,jj,81) + fprn_ml                  !! mixed layer non-diatom production 
    3147                   trc2d(ji,jj,82) = trc2d(ji,jj,82) + fprd_ml                  !! mixed layer     diatom production 
     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 
    31483883# if defined key_gulf_finland 
    31493884                  if (jk.eq.1)  trc2d(ji,jj,83) = real(ibio_switch)            !! Gulf of Finland check 
     
    31523887# endif 
    31533888                  trc2d(ji,jj,84) = fccd(ji,jj)                                !! last model level above calcite CCD depth 
    3154                   if (jk.eq.1)     trc2d(ji,jj,85) = xFree                     !! surface "free" iron 
    3155                   if (jk.eq.i0200) trc2d(ji,jj,86) = xFree                     !! "free" iron at  100 m 
    3156                   if (jk.eq.i0200) trc2d(ji,jj,87) = xFree                     !! "free" iron at  200 m 
    3157                   if (jk.eq.i0500) trc2d(ji,jj,88) = xFree                     !! "free" iron at  500 m 
    3158                   if (jk.eq.i1000) trc2d(ji,jj,89) = xFree                     !! "free" iron at 1000 m 
     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 
    31593894                  !! AXY (27/06/12): extract "euphotic depth" 
    31603895                  if (jk.eq.1)     trc2d(ji,jj,90) = xze(ji,jj) 
    31613896                  !!  
    3162                   ftot_pn(ji,jj)  = ftot_pn(ji,jj)  + (zphn * fthk)            !! vertical integral non-diatom phytoplankton 
    3163                   ftot_pd(ji,jj)  = ftot_pd(ji,jj)  + (zphd * fthk)            !! vertical integral diatom phytoplankton 
    3164                   ftot_zmi(ji,jj) = ftot_zmi(ji,jj) + (zzmi * fthk)            !! vertical integral microzooplankton 
    3165                   ftot_zme(ji,jj) = ftot_zme(ji,jj) + (zzme * fthk)            !! vertical integral mesozooplankton 
    3166                   ftot_det(ji,jj) = ftot_det(ji,jj) + (zdet * fthk)            !! vertical integral slow detritus, nitrogen 
    3167                   ftot_dtc(ji,jj) = ftot_dtc(ji,jj) + (zdtc * fthk)            !! vertical integral slow detritus, carbon 
    31683897# if defined key_roam 
    31693898                  !! ROAM provisionally has access to a further 20 2D diagnostics 
     
    32173946                  trc2d(ji,jj,140) = trc2d(ji,jj,140) + (f_riv_loc_alk * fthk) 
    32183947                  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               !! slow detritus flux at  100 m 
    3220                   if (jk.eq.i0200) trc2d(ji,jj,143) = fslowcflux               !! slow detritus flux at  200 m 
    3221                   if (jk.eq.i0500) trc2d(ji,jj,144) = fslowcflux               !! slow detritus flux at  500 m 
    3222                   if (jk.eq.i1000) trc2d(ji,jj,145) = fslowcflux               !! slow detritus flux at 1000 m 
    3223                   trc2d(ji,jj,146)  = trc2d(ji,jj,146)  + ftot_c               !! carbon     inventory 
    3224                   trc2d(ji,jj,147)  = trc2d(ji,jj,147)  + ftot_a               !! alkalinity inventory 
    3225                   trc2d(ji,jj,148)  = trc2d(ji,jj,148)  + ftot_o2              !! oxygen     inventory 
     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 
    32263955                  if (jk.eq.(mbathy(ji,jj)-1)) then 
    32273956                     trc2d(ji,jj,149) = f_benout_lyso_ca(ji,jj) 
    32283957                  endif 
    3229                   trc2d(ji,jj,150) = trc2d(ji,jj,150) + (fcomm_resp * fthk)    !! community respiration 
     3958                  trc2d(ji,jj,150) = fcomm_resp(ji,jj) * fthk                  !! community respiration 
    32303959        !! 
    32313960        !! AXY (14/02/14): a Valentines Day gift to BASIN - a shedload of new 
     
    32914020        !! 
    32924021        !! 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                 !! 
    33304060                  !! extract relevant BASIN fields at 150m 
    33314061                  if (jk .eq. i0150) then 
    3332                      !! trc2d(ji,jj,172) = trc2d(ji,jj,4)    !! Pn PP 
    3333                      !! trc2d(ji,jj,173) = trc2d(ji,jj,151)  !! Pn linear loss 
    3334                      !! trc2d(ji,jj,174) = trc2d(ji,jj,5)    !! Pn non-linear loss 
    3335                      !! trc2d(ji,jj,175) = trc2d(ji,jj,11)   !! Pn grazing to Zmi 
    3336                      !! trc2d(ji,jj,176) = trc2d(ji,jj,14)   !! Pn grazing to Zme 
    3337                      !! trc2d(ji,jj,177) = trc2d(ji,jj,6)    !! Pd PP 
    3338                      !! trc2d(ji,jj,178) = trc2d(ji,jj,152)  !! Pd linear loss 
    3339                      !! trc2d(ji,jj,179) = trc2d(ji,jj,7)    !! Pd non-linear loss 
    3340                      !! trc2d(ji,jj,180) = trc2d(ji,jj,15)   !! Pd grazing to Zme 
    3341                      !! trc2d(ji,jj,181) = trc2d(ji,jj,12)   !! Zmi grazing on D 
    3342                      !! trc2d(ji,jj,182) = trc2d(ji,jj,170)  !! Zmi grazing on Dc 
    3343                      !! trc2d(ji,jj,183) = trc2d(ji,jj,155)  !! Zmi messy feeding loss to N 
    3344                      !! trc2d(ji,jj,184) = trc2d(ji,jj,156)  !! Zmi messy feeding loss to D 
    3345                      !! trc2d(ji,jj,185) = trc2d(ji,jj,157)  !! Zmi messy feeding loss to DIC 
    3346                      !! trc2d(ji,jj,186) = trc2d(ji,jj,158)  !! Zmi messy feeding loss to Dc 
    3347                      !! trc2d(ji,jj,187) = trc2d(ji,jj,159)  !! Zmi excretion 
    3348                      !! trc2d(ji,jj,188) = trc2d(ji,jj,160)  !! Zmi respiration 
    3349                      !! trc2d(ji,jj,189) = trc2d(ji,jj,161)  !! Zmi growth 
    3350                      !! trc2d(ji,jj,190) = trc2d(ji,jj,153)  !! Zmi linear loss 
    3351                      !! trc2d(ji,jj,191) = trc2d(ji,jj,13)   !! Zmi non-linear loss 
    3352                      !! trc2d(ji,jj,192) = trc2d(ji,jj,16)   !! Zmi grazing to Zme 
    3353                      !! trc2d(ji,jj,193) = trc2d(ji,jj,17)   !! Zme grazing on D 
    3354                      !! trc2d(ji,jj,194) = trc2d(ji,jj,171)  !! Zme grazing on Dc 
    3355                      !! trc2d(ji,jj,195) = trc2d(ji,jj,162)  !! Zme messy feeding loss to N 
    3356                      !! trc2d(ji,jj,196) = trc2d(ji,jj,163)  !! Zme messy feeding loss to D 
    3357                      !! trc2d(ji,jj,197) = trc2d(ji,jj,164)  !! Zme messy feeding loss to DIC 
    3358                      !! trc2d(ji,jj,198) = trc2d(ji,jj,165)  !! Zme messy feeding loss to Dc 
     4062                     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 
    33594089                     trc2d(ji,jj,199) = trc2d(ji,jj,166)  !! Zme excretion 
    33604090                     trc2d(ji,jj,200) = trc2d(ji,jj,167)  !! Zme respiration 
     
    33714101                     trc2d(ji,jj,211) = trc2d(ji,jj,67)   !! Fast detritus remineralisation, C 
    33724102                     trc2d(ji,jj,212) = trc2d(ji,jj,150)  !! Community respiration 
    3373                      trc2d(ji,jj,213) = fslownflux        !! Slow detritus N flux at 150 m 
    3374                      trc2d(ji,jj,214) = fslowcflux        !! Slow detritus C flux at 150 m 
     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 
    33754105                     trc2d(ji,jj,215) = ffastn(ji,jj)     !! Fast detritus N flux at 150 m 
    33764106                     trc2d(ji,jj,216) = ffastc(ji,jj)     !! Fast detritus C flux at 150 m 
     
    34004130                  !! 
    34014131                  trc3d(ji,jj,jk,1)  = ((fprn + fprd) * zphn)     !! primary production   
    3402                   trc3d(ji,jj,jk,2)  = fslownflux + ffastn(ji,jj) !! detrital flux 
     4132                  trc3d(ji,jj,jk,2)  = fslownflux(ji,jj) + ffastn(ji,jj) !! detrital flux 
    34034133                  trc3d(ji,jj,jk,3)  = fregen + (freminn * fthk)  !! remineralisation 
    34044134# if defined key_roam 
     
    34144144         END DO 
    34154145         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 
    34164585      !! CLOSE vertical loop 
    34174586      END DO 
     
    34484617         zn_sed_ca(:,:) = za_sed_ca(:,:) 
    34494618      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 
    34574628         ENDDO 
    3458       ENDDO 
    3459       !! AXY (07/07/15): temporary hijacking 
     4629         !! AXY (07/07/15): temporary hijacking 
    34604630# 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      !! 
    34684639      if (ibenthic.eq.2) then 
    34694640         !! The code below (in this if ... then ... endif loop) is 
     
    36154786            END DO 
    36164787         END DO 
    3617  
     4788          
    36184789# if defined key_roam 
    36194790#  if defined key_axy_nancheck 
     
    36814852         END DO  
    36824853 
    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 
    36964887         !!---------------------------------------------------------------------- 
    36974888         !! Add in XML diagnostics stuff 
     
    36994890         !! 
    37004891         !! ** 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         !!           
    37105279         !! 
    37115280         !! ** 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 
    37215305 
    37225306# if defined key_trc_diabio 
  • branches/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM/NEMO/TOP_SRC/MEDUSA/trcnam_medusa.F90

    r5841 r5931  
    2222   USE sms_medusa      ! sms trends 
    2323   USE iom             ! I/O manager 
     24   USE trc_nam_dia     ! JPALM 13-11-2015 -- if iom_use for diag 
    2425 
    2526   !! AXY (04/02/14): necessary to find NaNs on HECTOR 
     
    11691170   END SUBROUTINE trc_nam_medusa 
    11701171    
     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    
    11712343#else 
    11722344   !!---------------------------------------------------------------------- 
  • branches/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM/NEMO/TOP_SRC/MEDUSA/trcsed_medusa.F90

    r5841 r5931  
    2323   !! AXY (10/02/09) 
    2424   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 
    2527 
    2628   USE lbclnk 
     
    9092 
    9193      CHARACTER (len=25) :: charout 
     94       
     95      !! JPALM - 26-11-2015 -add iom_use for diagnostic 
     96       REAL(wp), POINTER, DIMENSION(:,:  ) :: zw2d 
    9297      !!--------------------------------------------------------------------- 
    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       
    94106      !! AXY (10/02/09) 
    95107      jnt = 1 
     
    165177               trbio(ji,jj,jk,8) = ztra 
    166178# 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                  . 
    169188            END DO 
    170189         END DO 
     
    175194# endif 
    176195      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      !! 
    181206# if defined key_roam 
    182207 
  • branches/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM/NEMO/TOP_SRC/trc.F90

    r5733 r5931  
    104104   END TYPE DIAG 
    105105 
     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 
    106144   !! information for inputs 
    107145   !! -------------------------------------------------- 
  • branches/NERC/dev_r5518_NOC_MEDUSA_Stable/NEMOGCM/NEMO/TOP_SRC/trcnam.F90

    r5841 r5931  
    434434      !!                ( (PISCES, CFC, MY_TRC ) 
    435435      !!--------------------------------------------------------------------- 
     436#if defined key_medusa && defined key_iomput 
     437      TYPE(DIAG_IOM), PUBLIC :: med_diag  ! define which diagnostics are asked in outputs 
     438#endif       
    436439      INTEGER ::  ierr 
    437440#if defined key_trdmxl_trc  || defined key_trdtrc 
     
    482485!! to : 
    483486!! 
    484       IF( ( ln_diatrc .AND. .NOT. lk_iomput ) .OR. ( ln_diatrc .AND. lk_medusa ) ) THEN  
     487      IF ( ln_diatrc  ) THEN  
    485488         ALLOCATE( trc2d(jpi,jpj,jpdia2d), trc3d(jpi,jpj,jpk,jpdia3d),  & 
    486489           &       ctrc2d(jpdia2d), ctrc2l(jpdia2d), ctrc2u(jpdia2d) ,  &  
     
    491494         trc3d(:,:,:,:) = 0._wp  ;   ctrc3d(:) = ' '   ;   ctrc3l(:) = ' '    ;    ctrc3u(:) = ' '  
    492495         ! 
     496      ELSE IF  ( lk_iomput .AND. lk_medusa ) THEN 
     497         CALL trc_nam_iom_medusa 
    493498      ENDIF 
    494499 
Note: See TracChangeset for help on using the changeset viewer.