Ignore:
Timestamp:
2017-04-13T18:05:31+02:00 (3 years ago)
Author:
marc
Message:

Moved initialisation from trcbio_medusa.F90 into bio_medusa_init.F90

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/UKMO/dev_r5518_medusa_chg_trc_bio_medusa/NEMOGCM/NEMO/TOP_SRC/MEDUSA/trcbio_medusa.F90

    r7886 r7912  
    9595      USE sbc_oce, ONLY: lk_oasis 
    9696      USE oce,     ONLY: CO2Flux_out_cpl, DMS_out_cpl, PCO2a_in_cpl 
     97      USE bio_medusa_mod 
     98      USE bio_medusa_init_mod, ONLY: bio_medusa_init 
    9799 
    98100      IMPLICIT NONE 
    99101      PRIVATE 
    100102       
    101       PUBLIC   trc_bio_medusa    ! called in ??? 
     103      PUBLIC   trc_bio_medusa    ! called in trcsms_medusa.F90 
    102104 
    103105   !!* Substitution 
     
    187189      REAL(wp), DIMENSION(jpi,jpj) ::    fun_Q10 
    188190      !! AXY (01/03/10): add in mixed layer PP diagnostics 
    189       REAL(wp), DIMENSION(jpi,jpj) ::    fprn_ml,fprd_ml 
     191!      REAL(wp), DIMENSION(jpi,jpj) ::    fprn_ml,fprd_ml 
    190192      !! 
    191193      !! nutrient limiting factors 
     
    200202      REAL(wp), DIMENSION(jpi,jpj) ::    ffetop,ffebot,ffescav 
    201203      REAL(wp) ::    xLgF, xFeT, xFeF, xFeL         !! state variables for iron-ligand system 
    202       REAL(wp), DIMENSION(jpi,jpj) ::  xFree        !! state variables for iron-ligand system 
     204!      REAL(wp), DIMENSION(jpi,jpj) ::  xFree        !! state variables for iron-ligand system 
    203205      REAL(wp) ::    xb_coef_tmp, xb2M4ac           !! iron-ligand parameters 
    204206      REAL(wp) ::    xmaxFeF,fdeltaFe               !! max Fe' parameters 
     
    223225      !! 
    224226      !! mortality/Remineralisation (defunct parameter "fz" removed) 
    225       REAL(wp, DIMENSION(jpi,jpj)) ::    fdpn,fdpd,fdpds,fdzmi,fdzme,fdd 
     227      REAL(wp), DIMENSION(jpi,jpj) ::    fdpn,fdpd,fdpds,fdzmi,fdzme,fdd 
    226228# if defined key_roam 
    227       REAL(wp, DIMENSION(jpi,jpj)) ::    fddc 
     229      REAL(wp), DIMENSION(jpi,jpj) ::    fddc 
    228230# endif 
    229231      REAL(wp), DIMENSION(jpi,jpj) ::    fdpn2,fdpd2,fdpds2,fdzmi2,fdzme2 
     
    231233      REAL(wp), DIMENSION(jpi,jpj) ::    fslownflux, fslowcflux 
    232234      REAL(wp), DIMENSION(jpi,jpj) ::    fregen,fregensi 
    233       REAL(wp), DIMENSION(jpi,jpj) ::    fregenfast,fregenfastsi 
     235!      REAL(wp), DIMENSION(jpi,jpj) ::    fregenfast,fregenfastsi 
    234236# if defined key_roam 
    235 ! Doesn't look like this is used - marc 10/4/17 
    236 !      REAL(wp), DIMENSION(jpi,jpj) ::    fregenc 
    237       REAL(wp), DIMENSION(jpi,jpj) ::    fregenfastc 
     237!! Doesn't look like this is used - marc 10/4/17 
     238!!      REAL(wp), DIMENSION(jpi,jpj) ::    fregenc 
     239!      REAL(wp), DIMENSION(jpi,jpj) ::    fregenfastc 
    238240# endif 
    239241      !! 
     
    242244      REAL(WP), DIMENSION(jpi,jpj) ::    ftempn,ftempsi,ftempfe,ftempc,ftempca 
    243245      REAL(wp), DIMENSION(jpi,jpj) ::    freminn,freminsi,freminfe,freminc,freminca 
    244       REAL(wp), DIMENSION(jpi,jpj) ::    ffastn,ffastsi,ffastfe,ffastc,ffastca 
     246!      REAL(wp), DIMENSION(jpi,jpj) ::    ffastn,ffastsi,ffastfe,ffastc,ffastca 
    245247      REAL(wp), DIMENSION(jpi,jpj) ::    fprotf 
    246       REAL(wp), DIMENSION(jpi,jpj) ::    fsedn,fsedsi,fsedfe,fsedc,fsedca 
    247       REAL(wp), DIMENSION(jpi,jpj) ::    fccd 
     248!      REAL(wp), DIMENSION(jpi,jpj) ::    fsedn,fsedsi,fsedfe,fsedc,fsedca 
     249!      REAL(wp), DIMENSION(jpi,jpj) ::    fccd 
    248250      REAL(wp), DIMENSION(jpi,jpj) ::    fccd_dep 
    249251      !! 
     
    254256! I don't think ffast2slowfe is used - marc 10/4/17 
    255257!      REAL(wp), DIMENSION(jpi,jpj) ::    ffast2slown,ffast2slowfe,ffast2slowc 
    256       REAL(wp), DIMENSION(jpi,jpj) ::    ffast2slown,ffast2slow 
     258      REAL(wp), DIMENSION(jpi,jpj) ::    ffast2slown,ffast2slowc 
    257259      !! 
    258260      !! conservation law 
     
    266268      !! 
    267269      !! water column nutrient and flux integrals 
    268       REAL(wp), DIMENSION(jpi,jpj) ::    ftot_n,ftot_si,ftot_fe 
    269       REAL(wp), DIMENSION(jpi,jpj) ::    fflx_n,fflx_si,fflx_fe 
    270       REAL(wp), DIMENSION(jpi,jpj) ::    fifd_n,fifd_si,fifd_fe 
    271       REAL(wp), DIMENSION(jpi,jpj) ::    fofd_n,fofd_si,fofd_fe 
     270!      REAL(wp), DIMENSION(jpi,jpj) ::    ftot_n,ftot_si,ftot_fe 
     271!      REAL(wp), DIMENSION(jpi,jpj) ::    fflx_n,fflx_si,fflx_fe 
     272!      REAL(wp), DIMENSION(jpi,jpj) ::    fifd_n,fifd_si,fifd_fe 
     273!      REAL(wp), DIMENSION(jpi,jpj) ::    fofd_n,fofd_si,fofd_fe 
    272274# if defined key_roam 
    273       REAL(wp), DIMENSION(jpi,jpj) ::    ftot_c,ftot_a,ftot_o2 
    274       REAL(wp), DIMENSION(jpi,jpj) ::    fflx_c,fflx_a,fflx_o2 
    275       REAL(wp), DIMENSION(jpi,jpj) ::    fifd_c,fifd_a,fifd_o2 
    276       REAL(wp), DIMENSION(jpi,jpj) ::    fofd_c,fofd_a,fofd_o2 
     275!      REAL(wp), DIMENSION(jpi,jpj) ::    ftot_c,ftot_a,ftot_o2 
     276!      REAL(wp), DIMENSION(jpi,jpj) ::    fflx_c,fflx_a,fflx_o2 
     277!      REAL(wp), DIMENSION(jpi,jpj) ::    fifd_c,fifd_a,fifd_o2 
     278!      REAL(wp), DIMENSION(jpi,jpj) ::    fofd_c,fofd_a,fofd_o2 
    277279# endif 
    278280      !! 
    279281      !! zooplankton grazing integrals 
    280       REAL(wp), DIMENSION(jpi,jpj) ::    fzmi_i,fzmi_o,fzme_i,fzme_o 
     282!      REAL(wp), DIMENSION(jpi,jpj) ::    fzmi_i,fzmi_o,fzme_i,fzme_o 
    281283      !! 
    282284      !! limitation term temporary variables 
    283       REAL(wp), DIMENSION(jpi,jpj) ::    ftot_pn,ftot_pd 
    284       REAL(wp), DIMENSION(jpi,jpj) ::    ftot_zmi,ftot_zme,ftot_det,ftot_dtc 
     285!      REAL(wp), DIMENSION(jpi,jpj) ::    ftot_pn,ftot_pd 
     286!      REAL(wp), DIMENSION(jpi,jpj) ::    ftot_zmi,ftot_zme,ftot_det,ftot_dtc 
    285287      !! use ballast scheme (1) or simple exponential scheme (0; a conservation test) 
    286288      INTEGER  ::    iball 
     
    293295      !! nitrogen and silicon production and consumption 
    294296      REAL(wp) ::    fn_prod, fn_cons, fs_prod, fs_cons 
    295       REAL(wp), DIMENSION(jpi,jpj) ::    fnit_prod, fnit_cons, fsil_prod, fsil_cons 
     297!      REAL(wp), DIMENSION(jpi,jpj) ::    fnit_prod, fnit_cons, fsil_prod, fsil_cons 
    296298# if defined key_roam 
    297299      !! 
     
    304306      REAL(wp), DIMENSION(jpi,jpj) ::    f_TDIC, f_TALK, f_dcf, f_henry 
    305307      REAL(wp), DIMENSION(jpi,jpj) ::    f_pp0 
    306       REAL(wp), DIMENSION(jpi,jpj) ::    f_kw660, f_o2flux, f_o2sat, f_o2sat3 
    307       REAL(wp), DIMENSION(jpi,jpj) ::    f_omcal, f_omarg 
     308      REAL(wp), DIMENSION(jpi,jpj) ::    f_kw660, f_o2flux, f_o2sat 
     309      REAL(wp)                     ::    f_o2sat3 
     310!      REAL(wp), DIMENSION(jpi,jpj) ::    f_omcal, f_omarg 
    308311      !! 
    309312      !! AXY (23/06/15): additional diagnostics for MOCSY and oxygen 
     
    323326      !! carbon, alkalinity production and consumption 
    324327      REAL(wp) ::    fc_prod, fc_cons, fa_prod, fa_cons 
    325       REAL(wp), DIMENSION(jpi,jpj) ::    fcomm_resp 
    326       REAL(wp), DIMENSION(jpi,jpj) ::    fcar_prod, fcar_cons 
     328!      REAL(wp), DIMENSION(jpi,jpj) ::    fcomm_resp 
     329!      REAL(wp), DIMENSION(jpi,jpj) ::    fcar_prod, fcar_cons 
    327330      !! 
    328331      !! oxygen production and consumption (and non-consumption) 
    329332      REAL(wp), DIMENSION(jpi,jpj) ::    fo2_prod, fo2_cons, fo2_ncons, fo2_ccons 
    330       REAL(wp), DIMENSION(jpi,jpj) ::    foxy_prod, foxy_cons, foxy_anox 
     333!      REAL(wp), DIMENSION(jpi,jpj) ::    foxy_prod, foxy_cons, foxy_anox 
    331334      !! Jpalm (11-08-2014) 
    332335      !! add DMS in MEDUSA for UKESM1 model 
     
    338341      !!  
    339342      !! benthic fluxes 
    340       INTEGER  ::    ibenthic 
    341       REAL(wp), DIMENSION(jpi,jpj) :: f_sbenin_n, f_sbenin_fe,              f_sbenin_c 
    342       REAL(wp), DIMENSION(jpi,jpj) :: f_fbenin_n, f_fbenin_fe, f_fbenin_si, f_fbenin_c, f_fbenin_ca 
    343       REAL(wp), DIMENSION(jpi,jpj) :: f_benout_n, f_benout_fe, f_benout_si, f_benout_c, f_benout_ca 
     343!      INTEGER  ::    ibenthic 
     344!      REAL(wp), DIMENSION(jpi,jpj) :: f_sbenin_n, f_sbenin_fe,              f_sbenin_c 
     345!      REAL(wp), DIMENSION(jpi,jpj) :: f_fbenin_n, f_fbenin_fe, f_fbenin_si, f_fbenin_c, f_fbenin_ca 
     346!      REAL(wp), DIMENSION(jpi,jpj) :: f_benout_n, f_benout_fe, f_benout_si, f_benout_c, f_benout_ca 
    344347      REAL(wp) ::    zfact 
    345348      !!  
    346349      !! benthic fluxes of CaCO3 that shouldn't happen because of lysocline 
    347       REAL(wp), DIMENSION(jpi,jpj) :: f_benout_lyso_ca 
     350!      REAL(wp), DIMENSION(jpi,jpj) :: f_benout_lyso_ca 
    348351      !! 
    349352      !! riverine fluxes 
    350       REAL(wp), DIMENSION(jpi,jpj) :: f_runoff, f_riv_n, f_riv_si, f_riv_c, f_riv_alk 
     353!      REAL(wp), DIMENSION(jpi,jpj) :: f_runoff, f_riv_n, f_riv_si, f_riv_c, f_riv_alk 
    351354      !! AXY (19/07/12): variables for local riverine fluxes to handle inputs below surface 
    352355      REAL(wp), DIMENSION(jpi,jpj) :: f_riv_loc_n, f_riv_loc_si, f_riv_loc_c, f_riv_loc_alk 
    353       !! 
    354       !! Jpalm -- 11-10-2015 -- adapt diag to iom_use 
    355       !! 2D var for diagnostics. 
    356       REAL(wp), POINTER, DIMENSION(:,:  ) :: fprn2d, fdpn2d, fprd2d, fdpd2d, fprds2d, fsdiss2d, fgmipn2d 
    357       REAL(wp), POINTER, DIMENSION(:,:  ) :: fgmid2d, fdzmi2d, fgmepn2d, fgmepd2d, fgmezmi2d, fgmed2d 
    358       REAL(wp), POINTER, DIMENSION(:,:  ) :: fdzme2d, fslown2d, fdd2d, ffetop2d, ffebot2d, ffescav2d 
    359       REAL(wp), POINTER, DIMENSION(:,:  ) :: fjln2d, fnln2d, ffln2d, fjld2d, fnld2d, ffld2d, fsld2d2 
    360       REAL(wp), POINTER, DIMENSION(:,:  ) :: fsld2d, fregen2d, fregensi2d, ftempn2d, ftempsi2d, ftempfe2d 
    361       REAL(wp), POINTER, DIMENSION(:,:  ) :: ftempc2d, ftempca2d, freminn2d, freminsi2d, freminfe2d 
    362       REAL(wp), POINTER, DIMENSION(:,:  ) :: freminc2d, freminca2d 
    363       REAL(wp), POINTER, DIMENSION(:,:  ) :: zw2d 
    364 # if defined key_roam 
    365       REAL(wp), POINTER, DIMENSION(:,:  ) :: ffastca2d, rivn2d, rivsi2d, rivc2d, rivalk2d, fslowc2d 
    366       REAL(wp), POINTER, DIMENSION(:,:  ) :: fdpn22d, fdpd22d, fdzmi22d, fdzme22d, zimesn2d, zimesd2d 
    367       REAL(wp), POINTER, DIMENSION(:,:  ) :: zimesc2d, zimesdc2d, ziexcr2d, ziresp2d, zigrow2d, zemesn2d 
    368       REAL(wp), POINTER, DIMENSION(:,:  ) :: zemesd2d, zemesc2d, zemesdc2d, zeexcr2d, zeresp2d, zegrow2d 
    369       REAL(wp), POINTER, DIMENSION(:,:  ) :: mdetc2d, gmidc2d, gmedc2d, f_pco2a2d, f_pco2w2d, f_co2flux2d 
    370       REAL(wp), POINTER, DIMENSION(:,:  ) :: f_TDIC2d, f_TALK2d, f_kw6602d, f_pp02d, f_o2flux2d, f_o2sat2d 
    371       REAL(wp), POINTER, DIMENSION(:,:  ) :: dms_andr2d, dms_simo2d, dms_aran2d, dms_hall2d, dms_surf2d 
    372       REAL(wp), POINTER, DIMENSION(:,:  ) :: iben_n2d, iben_fe2d, iben_c2d, iben_si2d, iben_ca2d, oben_n2d 
    373       REAL(wp), POINTER, DIMENSION(:,:  ) :: oben_fe2d, oben_c2d, oben_si2d, oben_ca2d, sfr_ocal2d 
    374       REAL(wp), POINTER, DIMENSION(:,:  ) :: sfr_oarg2d, lyso_ca2d  
    375       !! AXY (23/11/16): extra MOCSY diagnostics 
    376       REAL(wp), POINTER, DIMENSION(:,:  ) :: f_xco2a_2d, f_fco2w_2d, f_fco2a_2d 
    377       REAL(wp), POINTER, DIMENSION(:,:  ) :: f_ocnrhosw_2d, f_ocnschco2_2d, f_ocnkwco2_2d 
    378       REAL(wp), POINTER, DIMENSION(:,:  ) :: f_ocnk0_2d, f_co2starair_2d, f_ocndpco2_2d 
    379 # endif 
    380       !! 
    381       !! 3D var for diagnostics. 
    382       REAL(wp), POINTER, DIMENSION(:,:,:) :: tpp3d, detflux3d, remin3dn 
    383       !! 
    384 # if defined key_roam 
    385       !! AXY (04/11/16) 
    386       !! 2D var for new CMIP6 diagnostics (behind a key_roam ifdef for simplicity) 
    387       REAL(wp), POINTER, DIMENSION(:,:  ) :: fgco2, intdissic, intdissin, intdissisi, inttalk, o2min, zo2min 
    388       REAL(wp), POINTER, DIMENSION(:,:  ) :: fbddtalk, fbddtdic, fbddtdife, fbddtdin, fbddtdisi 
    389       !! 
    390       !! 3D var for new CMIP6 diagnostics 
    391       REAL(wp), POINTER, DIMENSION(:,:,:) :: tppd3 
    392       REAL(wp), POINTER, DIMENSION(:,:,:) :: bddtalk3, bddtdic3, bddtdife3, bddtdin3, bddtdisi3 
    393       REAL(wp), POINTER, DIMENSION(:,:,:) :: fd_nit3, fd_sil3, fd_car3, fd_cal3 
    394       REAL(wp), POINTER, DIMENSION(:,:,:) :: co33, co3satarag3, co3satcalc3, dcalc3 
    395       REAL(wp), POINTER, DIMENSION(:,:,:) :: expc3, expn3 
    396       REAL(wp), POINTER, DIMENSION(:,:,:) :: fediss3, fescav3 
    397       REAL(wp), POINTER, DIMENSION(:,:,:) :: migrazp3, migrazd3, megrazp3, megrazd3, megrazz3 
    398       REAL(wp), POINTER, DIMENSION(:,:,:) :: o2sat3, pbsi3, pcal3, remoc3 
    399       REAL(wp), POINTER, DIMENSION(:,:,:) :: pnlimj3, pnlimn3, pnlimfe3, pdlimj3, pdlimn3, pdlimfe3, pdlimsi3 
    400 # endif 
    401356      !!--------------------------------------------------------------------- 
    402357 
     
    468423 
    469424      !!---------------------------------------------------------------------- 
    470       !! blank fast-sinking detritus 2D fields 
     425      !! Initialise arrays to zero and set up arrays for diagnostics 
    471426      !!---------------------------------------------------------------------- 
    472       !! 
    473       ffastn(:,:)  = 0.0        !! organic nitrogen 
    474       ffastsi(:,:) = 0.0        !! biogenic silicon 
    475       ffastfe(:,:) = 0.0        !! organic iron 
    476       ffastc(:,:)  = 0.0        !! organic carbon 
    477       ffastca(:,:) = 0.0        !! biogenic calcium carbonate 
    478       !! 
    479       fsedn(:,:)   = 0.0        !! Seafloor flux of N  
    480       fsedsi(:,:)  = 0.0        !! Seafloor flux of Si 
    481       fsedfe(:,:)  = 0.0        !! Seafloor flux of Fe 
    482       fsedc(:,:)   = 0.0        !! Seafloor flux of C 
    483       fsedca(:,:)  = 0.0        !! Seafloor flux of CaCO3 
    484       !! 
    485       fregenfast(:,:)   = 0.0   !! integrated  N regeneration (fast detritus) 
    486       fregenfastsi(:,:) = 0.0   !! integrated Si regeneration (fast detritus) 
    487 # if defined key_roam 
    488       fregenfastc(:,:)  = 0.0   !! integrated  C regeneration (fast detritus) 
    489 # endif 
    490       !! 
    491       fccd(:,:)    = 0.0        !! last depth level before CCD 
    492  
    493       !!---------------------------------------------------------------------- 
    494       !! blank nutrient/flux inventories 
    495       !!---------------------------------------------------------------------- 
    496       !! 
    497       fflx_n(:,:)  = 0.0        !! nitrogen flux total 
    498       fflx_si(:,:) = 0.0        !! silicon  flux total 
    499       fflx_fe(:,:) = 0.0        !! iron     flux total 
    500       fifd_n(:,:)  = 0.0        !! nitrogen fast detritus production 
    501       fifd_si(:,:) = 0.0        !! silicon  fast detritus production 
    502       fifd_fe(:,:) = 0.0        !! iron     fast detritus production 
    503       fofd_n(:,:)  = 0.0        !! nitrogen fast detritus remineralisation 
    504       fofd_si(:,:) = 0.0        !! silicon  fast detritus remineralisation 
    505       fofd_fe(:,:) = 0.0        !! iron     fast detritus remineralisation 
    506 # if defined key_roam 
    507       fflx_c(:,:)  = 0.0        !! carbon     flux total 
    508       fflx_a(:,:)  = 0.0        !! alkalinity flux total 
    509       fflx_o2(:,:) = 0.0        !! oxygen     flux total 
    510       ftot_c(:,:)  = 0.0        !! carbon     inventory 
    511       ftot_a(:,:)  = 0.0        !! alkalinity inventory 
    512       ftot_o2(:,:) = 0.0        !! oxygen     inventory 
    513       fifd_c(:,:)  = 0.0        !! carbon     fast detritus production 
    514       fifd_a(:,:)  = 0.0        !! alkalinity fast detritus production 
    515       fifd_o2(:,:) = 0.0        !! oxygen     fast detritus production 
    516       fofd_c(:,:)  = 0.0        !! carbon     fast detritus remineralisation 
    517       fofd_a(:,:)  = 0.0        !! alkalinity fast detritus remineralisation 
    518       fofd_o2(:,:) = 0.0        !! oxygen     fast detritus remineralisation 
    519       !! 
    520       fnit_prod(:,:) = 0.0      !! (organic)   nitrogen production 
    521       fnit_cons(:,:) = 0.0      !! (organic)   nitrogen consumption 
    522       fsil_prod(:,:) = 0.0      !! (inorganic) silicon production 
    523       fsil_cons(:,:) = 0.0      !! (inorganic) silicon consumption 
    524       fcar_prod(:,:) = 0.0      !! (organic)   carbon production 
    525       fcar_cons(:,:) = 0.0      !! (organic)   carbon consumption 
    526       !! 
    527       foxy_prod(:,:) = 0.0      !! oxygen production 
    528       foxy_cons(:,:) = 0.0      !! oxygen consumption 
    529       foxy_anox(:,:) = 0.0      !! unrealised oxygen consumption 
    530       !! 
    531 # endif 
    532       ftot_n(:,:)   = 0.0       !! N inventory  
    533       ftot_si(:,:)  = 0.0       !! Si inventory 
    534       ftot_fe(:,:)  = 0.0       !! Fe inventory 
    535       ftot_pn(:,:)  = 0.0       !! integrated non-diatom phytoplankton 
    536       ftot_pd(:,:)  = 0.0       !! integrated diatom     phytoplankton 
    537       ftot_zmi(:,:) = 0.0       !! integrated microzooplankton 
    538       ftot_zme(:,:) = 0.0       !! integrated mesozooplankton 
    539       ftot_det(:,:) = 0.0       !! integrated slow detritus, nitrogen 
    540       ftot_dtc(:,:) = 0.0       !! integrated slow detritus, carbon 
    541       !! 
    542       fzmi_i(:,:)  = 0.0        !! material grazed by microzooplankton 
    543       fzmi_o(:,:)  = 0.0        !! ... sum of fate of this material 
    544       fzme_i(:,:)  = 0.0        !! material grazed by  mesozooplankton 
    545       fzme_o(:,:)  = 0.0        !! ... sum of fate of this material 
    546       !! 
    547       f_sbenin_n(:,:)  = 0.0    !! slow detritus N  -> benthic pool 
    548       f_sbenin_fe(:,:) = 0.0    !! slow detritus Fe -> benthic pool 
    549       f_sbenin_c(:,:)  = 0.0    !! slow detritus C  -> benthic pool 
    550       f_fbenin_n(:,:)  = 0.0    !! fast detritus N  -> benthic pool 
    551       f_fbenin_fe(:,:) = 0.0    !! fast detritus Fe -> benthic pool 
    552       f_fbenin_si(:,:) = 0.0    !! fast detritus Si -> benthic pool 
    553       f_fbenin_c(:,:)  = 0.0    !! fast detritus C  -> benthic pool 
    554       f_fbenin_ca(:,:) = 0.0    !! fast detritus Ca -> benthic pool 
    555       !! 
    556       f_benout_n(:,:)  = 0.0    !! benthic N  pool  -> dissolved 
    557       f_benout_fe(:,:) = 0.0    !! benthic Fe pool  -> dissolved 
    558       f_benout_si(:,:) = 0.0    !! benthic Si pool  -> dissolved 
    559       f_benout_c(:,:)  = 0.0    !! benthic C  pool  -> dissolved 
    560       f_benout_ca(:,:) = 0.0    !! benthic Ca pool  -> dissolved 
    561       !! 
    562       f_benout_lyso_ca(:,:) = 0.0 !! benthic Ca pool  -> dissolved (when it shouldn't!) 
    563       !! 
    564       f_runoff(:,:)  = 0.0      !! riverine runoff 
    565       f_riv_n(:,:)   = 0.0      !! riverine N   input  
    566       f_riv_si(:,:)  = 0.0      !! riverine Si  input  
    567       f_riv_c(:,:)   = 0.0      !! riverine C   input  
    568       f_riv_alk(:,:) = 0.0      !! riverine alk input  
    569       !!  
    570       !! Jpalm -- 06-03-2017 -- Forgotten var to init 
    571       f_omarg(:,:) = 0.0        !! 
    572       f_omcal(:,:) = 0.0  
    573       xFree(:,:) = 0.0          !! state variables for iron-ligand system 
    574       fcomm_resp(:,:) = 0.0  
    575       fprn_ml(:,:) = 0.0        !! mixed layer PP diagnostics 
    576       fprd_ml(:,:) = 0.0        !! mixed layer PP diagnostics 
    577  
    578       !! 
    579       !! allocate and initiate 2D diag 
    580       !! ----------------------------- 
    581       !! Juju :: add kt condition !! 
    582       IF ( lk_iomput .AND. .NOT.  ln_diatrc ) THEN  
    583          !! 
    584          if ( kt == nittrc000 )   CALL trc_nam_iom_medusa !! initialise iom_use test 
    585          !! 
    586          CALL wrk_alloc( jpi, jpj,      zw2d ) 
    587          zw2d(:,:)      = 0.0   !! 
    588          IF ( med_diag%PRN%dgsave ) THEN 
    589             CALL wrk_alloc( jpi, jpj,   fprn2d    ) 
    590             fprn2d(:,:)      = 0.0 !! 
    591          ENDIF 
    592          IF ( med_diag%MPN%dgsave ) THEN 
    593             CALL wrk_alloc( jpi, jpj,   fdpn2d    ) 
    594             fdpn2d(:,:)      = 0.0 !! 
    595          ENDIF 
    596          IF ( med_diag%PRD%dgsave ) THEN 
    597             CALL wrk_alloc( jpi, jpj,   fprd2d    ) 
    598             fprd2d(:,:)      = 0.0 !! 
    599          ENDIF 
    600          IF( med_diag%MPD%dgsave ) THEN 
    601             CALL wrk_alloc( jpi, jpj,   fdpd2d    ) 
    602             fdpd2d(:,:)      = 0.0 !! 
    603          ENDIF 
    604          IF( med_diag%OPAL%dgsave ) THEN 
    605             CALL wrk_alloc( jpi, jpj,   fprds2d    ) 
    606             fprds2d(:,:)      = 0.0 !! 
    607          ENDIF 
    608          IF( med_diag%OPALDISS%dgsave ) THEN 
    609             CALL wrk_alloc( jpi, jpj,   fsdiss2d    ) 
    610             fsdiss2d(:,:)      = 0.0 !! 
    611          ENDIF 
    612          IF( med_diag%GMIPn%dgsave ) THEN 
    613             CALL wrk_alloc( jpi, jpj,   fgmipn2d    ) 
    614             fgmipn2d(:,:)      = 0.0 !! 
    615          ENDIF 
    616          IF( med_diag%GMID%dgsave ) THEN 
    617             CALL wrk_alloc( jpi, jpj,   fgmid2d    ) 
    618             fgmid2d(:,:)      = 0.0 !! 
    619          ENDIF 
    620          IF( med_diag%MZMI%dgsave ) THEN 
    621             CALL wrk_alloc( jpi, jpj,   fdzmi2d    ) 
    622             fdzmi2d(:,:)      = 0.0 !! 
    623          ENDIF 
    624          IF( med_diag%GMEPN%dgsave ) THEN 
    625             CALL wrk_alloc( jpi, jpj,   fgmepn2d    ) 
    626             fgmepn2d(:,:)      = 0.0 !! 
    627          ENDIF 
    628          IF( med_diag%GMEPD%dgsave ) THEN 
    629             CALL wrk_alloc( jpi, jpj,   fgmepd2d    ) 
    630             fgmepd2d(:,:)      = 0.0 !! 
    631          ENDIF 
    632          IF( med_diag%GMEZMI%dgsave ) THEN 
    633             CALL wrk_alloc( jpi, jpj,   fgmezmi2d    ) 
    634             fgmezmi2d(:,:)      = 0.0 !! 
    635          ENDIF 
    636          IF( med_diag%GMED%dgsave ) THEN 
    637             CALL wrk_alloc( jpi, jpj,   fgmed2d    ) 
    638             fgmed2d(:,:)      = 0.0 !! 
    639          ENDIF 
    640          IF( med_diag%MZME%dgsave ) THEN 
    641             CALL wrk_alloc( jpi, jpj,   fdzme2d    ) 
    642             fdzme2d(:,:)      = 0.0 !! 
    643          ENDIF 
    644          IF( med_diag%DETN%dgsave ) THEN 
    645             CALL wrk_alloc( jpi, jpj,   fslown2d    ) 
    646             fslown2d(:,:)      = 0.0 !! 
    647          ENDIF 
    648          IF( med_diag%MDET%dgsave ) THEN 
    649             CALL wrk_alloc( jpi, jpj,   fdd2d    ) 
    650             fdd2d(:,:)      = 0.0 !! 
    651          ENDIF       
    652          IF( med_diag%AEOLIAN%dgsave ) THEN 
    653             CALL wrk_alloc( jpi, jpj,   ffetop2d    ) 
    654             ffetop2d(:,:)      = 0.0 !! 
    655          ENDIF 
    656          IF( med_diag%BENTHIC%dgsave ) THEN 
    657             CALL wrk_alloc( jpi, jpj,    ffebot2d   ) 
    658             ffebot2d(:,:)      = 0.0 !! 
    659          ENDIF 
    660          IF( med_diag%SCAVENGE%dgsave ) THEN 
    661             CALL wrk_alloc( jpi, jpj,   ffescav2d    ) 
    662             ffescav2d(:,:)      = 0.0 !! 
    663          ENDIF 
    664          IF( med_diag%PN_JLIM%dgsave ) THEN 
    665             CALL wrk_alloc( jpi, jpj,   fjln2d    ) 
    666             fjln2d(:,:)      = 0.0 !! 
    667          ENDIF 
    668          IF( med_diag%PN_NLIM%dgsave ) THEN 
    669             CALL wrk_alloc( jpi, jpj,   fnln2d    ) 
    670             fnln2d(:,:)      = 0.0 !! 
    671          ENDIF 
    672          IF( med_diag%PN_FELIM%dgsave ) THEN 
    673             CALL wrk_alloc( jpi, jpj,   ffln2d    ) 
    674             ffln2d(:,:)      = 0.0 !! 
    675          ENDIF 
    676          IF( med_diag%PD_JLIM%dgsave ) THEN 
    677             CALL wrk_alloc( jpi, jpj,   fjld2d    ) 
    678             fjld2d(:,:)      = 0.0 !! 
    679          ENDIF 
    680          IF( med_diag%PD_NLIM%dgsave ) THEN 
    681             CALL wrk_alloc( jpi, jpj,   fnld2d    ) 
    682             fnld2d(:,:)      = 0.0 !! 
    683          ENDIF 
    684          IF( med_diag%PD_FELIM%dgsave ) THEN 
    685             CALL wrk_alloc( jpi, jpj,   ffld2d    ) 
    686             ffld2d(:,:)      = 0.0 !! 
    687          ENDIF 
    688          IF( med_diag%PD_SILIM%dgsave ) THEN 
    689             CALL wrk_alloc( jpi, jpj,   fsld2d2    ) 
    690             fsld2d2(:,:)      = 0.0 !! 
    691          ENDIF 
    692          IF( med_diag%PDSILIM2%dgsave ) THEN 
    693             CALL wrk_alloc( jpi, jpj,   fsld2d    ) 
    694             fsld2d(:,:)      = 0.0 !! 
    695          ENDIF 
    696 !! 
    697 !! skip SDT_XXXX diagnostics here 
    698 !! 
    699          IF( med_diag%TOTREG_N%dgsave ) THEN 
    700             CALL wrk_alloc( jpi, jpj,   fregen2d    ) 
    701             fregen2d(:,:)      = 0.0 !! 
    702          ENDIF 
    703          IF( med_diag%TOTRG_SI%dgsave ) THEN 
    704             CALL wrk_alloc( jpi, jpj,   fregensi2d    ) 
    705             fregensi2d(:,:)      = 0.0 !! 
    706          ENDIF 
    707 !! 
    708 !! skip REG_XXXX diagnostics here 
    709 !! 
    710          IF( med_diag%FASTN%dgsave ) THEN 
    711             CALL wrk_alloc( jpi, jpj,   ftempn2d    ) 
    712             ftempn2d(:,:)      = 0.0 !! 
    713          ENDIF 
    714          IF( med_diag%FASTSI%dgsave ) THEN 
    715             CALL wrk_alloc( jpi, jpj,   ftempsi2d    ) 
    716             ftempsi2d(:,:)      = 0.0 !! 
    717          ENDIF 
    718          IF( med_diag%FASTFE%dgsave ) THEN 
    719             CALL wrk_alloc( jpi, jpj,  ftempfe2d     ) 
    720             ftempfe2d(:,:)      = 0.0 !! 
    721          ENDIF 
    722          IF( med_diag%FASTC%dgsave ) THEN 
    723             CALL wrk_alloc( jpi, jpj,  ftempc2d     ) 
    724             ftempc2d(:,:)      = 0.0 !! 
    725          ENDIF 
    726          IF( med_diag%FASTCA%dgsave ) THEN 
    727             CALL wrk_alloc( jpi, jpj,   ftempca2d    ) 
    728             ftempca2d(:,:)      = 0.0 !! 
    729          ENDIF      
    730 !! 
    731 !! skip FDT_XXXX, RG_XXXXF, FDS_XXXX, RGS_XXXXF diagnostics here 
    732 !! 
    733          IF( med_diag%REMINN%dgsave ) THEN 
    734             CALL wrk_alloc( jpi, jpj,    freminn2d   ) 
    735             freminn2d(:,:)      = 0.0 !! 
    736          ENDIF 
    737          IF( med_diag%REMINSI%dgsave ) THEN 
    738             CALL wrk_alloc( jpi, jpj,    freminsi2d   ) 
    739             freminsi2d(:,:)      = 0.0 !! 
    740          ENDIF 
    741          IF( med_diag%REMINFE%dgsave ) THEN 
    742             CALL wrk_alloc( jpi, jpj,    freminfe2d   ) 
    743             freminfe2d(:,:)      = 0.0 !! 
    744          ENDIF 
    745          IF( med_diag%REMINC%dgsave ) THEN 
    746             CALL wrk_alloc( jpi, jpj,   freminc2d    ) 
    747             freminc2d(:,:)      = 0.0 !!  
    748          ENDIF 
    749          IF( med_diag%REMINCA%dgsave ) THEN 
    750             CALL wrk_alloc( jpi, jpj,   freminca2d    ) 
    751             freminca2d(:,:)      = 0.0 !! 
    752          ENDIF 
    753 # if defined key_roam 
    754 !! 
    755 !! skip SEAFLRXX, MED_XXXX, INTFLX_XX, INT_XX, ML_XXX, OCAL_XXX, FE_XXXX, MED_XZE, WIND diagnostics here 
    756 !! 
    757          IF( med_diag%RR_0100%dgsave ) THEN 
    758             CALL wrk_alloc( jpi, jpj,    ffastca2d   ) 
    759             ffastca2d(:,:)      = 0.0 !! 
    760          ENDIF 
    761  
    762          IF( med_diag%ATM_PCO2%dgsave ) THEN 
    763             CALL wrk_alloc( jpi, jpj,    f_pco2a2d   ) 
    764             f_pco2a2d(:,:)      = 0.0 !! 
    765          ENDIF 
    766 !! 
    767 !! skip OCN_PH diagnostic here 
    768 !! 
    769          IF( med_diag%OCN_PCO2%dgsave ) THEN 
    770             CALL wrk_alloc( jpi, jpj,    f_pco2w2d   ) 
    771             f_pco2w2d(:,:)      = 0.0 !! 
    772          ENDIF 
    773 !! 
    774 !! skip OCNH2CO3, OCN_HCO3, OCN_CO3 diagnostics here 
    775 !! 
    776          IF( med_diag%CO2FLUX%dgsave ) THEN 
    777             CALL wrk_alloc( jpi, jpj,   f_co2flux2d    ) 
    778             f_co2flux2d(:,:)      = 0.0 !! 
    779          ENDIF 
    780 !! 
    781 !! skip OM_XXX diagnostics here 
    782 !! 
    783          IF( med_diag%TCO2%dgsave ) THEN 
    784             CALL wrk_alloc( jpi, jpj,   f_TDIC2d    ) 
    785             f_TDIC2d(:,:)      = 0.0 !! 
    786          ENDIF 
    787          IF( med_diag%TALK%dgsave ) THEN 
    788             CALL wrk_alloc( jpi, jpj,    f_TALK2d   ) 
    789             f_TALK2d(:,:)      = 0.0 !! 
    790          ENDIF 
    791          IF( med_diag%KW660%dgsave ) THEN 
    792             CALL wrk_alloc( jpi, jpj,    f_kw6602d   ) 
    793             f_kw6602d(:,:)      = 0.0 !! 
    794          ENDIF 
    795          IF( med_diag%ATM_PP0%dgsave ) THEN 
    796             CALL wrk_alloc( jpi, jpj,    f_pp02d   ) 
    797             f_pp02d(:,:)      = 0.0 !! 
    798          ENDIF 
    799          IF( med_diag%O2FLUX%dgsave ) THEN 
    800             CALL wrk_alloc( jpi, jpj,   f_o2flux2d    ) 
    801             f_o2flux2d(:,:)      = 0.0 !! 
    802          ENDIF 
    803          IF( med_diag%O2SAT%dgsave ) THEN 
    804             CALL wrk_alloc( jpi, jpj,    f_o2sat2d   ) 
    805             f_o2sat2d(:,:)      = 0.0 !! 
    806          ENDIF  
    807 !! 
    808 !! skip XXX_CCD diagnostics here 
    809 !!  
    810          IF( med_diag%SFR_OCAL%dgsave ) THEN 
    811             CALL wrk_alloc( jpi, jpj,    sfr_ocal2d  ) 
    812             sfr_ocal2d(:,:)      = 0.0 !! 
    813          ENDIF 
    814          IF( med_diag%SFR_OARG%dgsave ) THEN 
    815             CALL wrk_alloc( jpi, jpj,    sfr_oarg2d  ) 
    816             sfr_oarg2d(:,:)      = 0.0 !! 
    817          ENDIF 
    818 !! 
    819 !! skip XX_PROD, XX_CONS, O2_ANOX, RR_XXXX diagnostics here 
    820 !!  
    821          IF( med_diag%IBEN_N%dgsave ) THEN 
    822             CALL wrk_alloc( jpi, jpj,    iben_n2d  ) 
    823             iben_n2d(:,:)      = 0.0 !! 
    824          ENDIF 
    825          IF( med_diag%IBEN_FE%dgsave ) THEN 
    826             CALL wrk_alloc( jpi, jpj,   iben_fe2d   ) 
    827             iben_fe2d(:,:)      = 0.0 !! 
    828          ENDIF 
    829          IF( med_diag%IBEN_C%dgsave ) THEN 
    830             CALL wrk_alloc( jpi, jpj,   iben_c2d   ) 
    831             iben_c2d(:,:)      = 0.0 !! 
    832          ENDIF 
    833          IF( med_diag%IBEN_SI%dgsave ) THEN 
    834             CALL wrk_alloc( jpi, jpj,   iben_si2d   ) 
    835             iben_si2d(:,:)      = 0.0 !! 
    836          ENDIF 
    837          IF( med_diag%IBEN_CA%dgsave ) THEN 
    838             CALL wrk_alloc( jpi, jpj,   iben_ca2d   ) 
    839             iben_ca2d(:,:)      = 0.0 !! 
    840          ENDIF 
    841          IF( med_diag%OBEN_N%dgsave ) THEN 
    842             CALL wrk_alloc( jpi, jpj,    oben_n2d  ) 
    843             oben_n2d(:,:)      = 0.0 !! 
    844          ENDIF 
    845          IF( med_diag%OBEN_FE%dgsave ) THEN 
    846             CALL wrk_alloc( jpi, jpj,    oben_fe2d  ) 
    847             oben_fe2d(:,:)      = 0.0 !! 
    848          ENDIF 
    849          IF( med_diag%OBEN_C%dgsave ) THEN 
    850             CALL wrk_alloc( jpi, jpj,    oben_c2d  ) 
    851             oben_c2d(:,:)      = 0.0 !! 
    852          ENDIF 
    853          IF( med_diag%OBEN_SI%dgsave ) THEN 
    854             CALL wrk_alloc( jpi, jpj,    oben_si2d  ) 
    855             oben_si2d(:,:)      = 0.0 !! 
    856          ENDIF 
    857          IF( med_diag%OBEN_CA%dgsave ) THEN 
    858             CALL wrk_alloc( jpi, jpj,    oben_ca2d  ) 
    859             oben_ca2d(:,:)      = 0.0 !! 
    860          ENDIF 
    861 !! 
    862 !! skip BEN_XX diagnostics here 
    863 !! 
    864          IF( med_diag%RIV_N%dgsave ) THEN 
    865             CALL wrk_alloc( jpi, jpj,    rivn2d   ) 
    866             rivn2d(:,:)      = 0.0 !! 
    867          ENDIF 
    868          IF( med_diag%RIV_SI%dgsave ) THEN 
    869             CALL wrk_alloc( jpi, jpj,    rivsi2d   ) 
    870             rivsi2d(:,:)      = 0.0 !! 
    871          ENDIF 
    872          IF( med_diag%RIV_C%dgsave ) THEN 
    873             CALL wrk_alloc( jpi, jpj,   rivc2d    ) 
    874             rivc2d(:,:)      = 0.0 !! 
    875          ENDIF 
    876          IF( med_diag%RIV_ALK%dgsave ) THEN 
    877             CALL wrk_alloc( jpi, jpj,    rivalk2d   ) 
    878             rivalk2d(:,:)      = 0.0 !! 
    879          ENDIF 
    880          IF( med_diag%DETC%dgsave ) THEN 
    881             CALL wrk_alloc( jpi, jpj,    fslowc2d   ) 
    882             fslowc2d(:,:)      = 0.0 !! 
    883          ENDIF  
    884 !! 
    885 !! skip SDC_XXXX, INVTXXX diagnostics here 
    886 !! 
    887          IF( med_diag%LYSO_CA%dgsave ) THEN 
    888             CALL wrk_alloc( jpi, jpj,    lyso_ca2d  ) 
    889             lyso_ca2d(:,:)      = 0.0 !! 
    890          ENDIF 
    891 !! 
    892 !! skip COM_RESP diagnostic here 
    893 !! 
    894          IF( med_diag%PN_LLOSS%dgsave ) THEN 
    895             CALL wrk_alloc( jpi, jpj,    fdpn22d   ) 
    896             fdpn22d(:,:)      = 0.0 !! 
    897          ENDIF 
    898          IF( med_diag%PD_LLOSS%dgsave ) THEN 
    899             CALL wrk_alloc( jpi, jpj,    fdpd22d   ) 
    900             fdpd22d(:,:)      = 0.0 !! 
    901          ENDIF 
    902          IF( med_diag%ZI_LLOSS%dgsave ) THEN 
    903             CALL wrk_alloc( jpi, jpj,    fdzmi22d   ) 
    904             fdzmi22d(:,:)      = 0.0 !! 
    905          ENDIF 
    906          IF( med_diag%ZE_LLOSS%dgsave ) THEN 
    907             CALL wrk_alloc( jpi, jpj,   fdzme22d    ) 
    908             fdzme22d(:,:)      = 0.0 !! 
    909          ENDIF 
    910          IF( med_diag%ZI_MES_N%dgsave ) THEN    
    911             CALL wrk_alloc( jpi, jpj,   zimesn2d    ) 
    912             zimesn2d(:,:)      = 0.0 !! 
    913          ENDIF 
    914          IF( med_diag%ZI_MES_D%dgsave ) THEN 
    915             CALL wrk_alloc( jpi, jpj,    zimesd2d   ) 
    916             zimesd2d(:,:)      = 0.0 !! 
    917          ENDIF 
    918          IF( med_diag%ZI_MES_C%dgsave ) THEN 
    919             CALL wrk_alloc( jpi, jpj,    zimesc2d   ) 
    920             zimesc2d(:,:)      = 0.0 !! 
    921          ENDIF 
    922          IF( med_diag%ZI_MESDC%dgsave ) THEN 
    923             CALL wrk_alloc( jpi, jpj,    zimesdc2d   ) 
    924             zimesdc2d(:,:)      = 0.0 !! 
    925          ENDIF 
    926          IF( med_diag%ZI_EXCR%dgsave ) THEN 
    927             CALL wrk_alloc( jpi, jpj,     ziexcr2d  ) 
    928             ziexcr2d(:,:)      = 0.0 !! 
    929          ENDIF 
    930          IF( med_diag%ZI_RESP%dgsave ) THEN 
    931             CALL wrk_alloc( jpi, jpj,    ziresp2d   ) 
    932             ziresp2d(:,:)      = 0.0 !! 
    933          ENDIF 
    934          IF( med_diag%ZI_GROW%dgsave ) THEN 
    935             CALL wrk_alloc( jpi, jpj,    zigrow2d   ) 
    936             zigrow2d(:,:)      = 0.0 !! 
    937          ENDIF 
    938          IF( med_diag%ZE_MES_N%dgsave ) THEN 
    939             CALL wrk_alloc( jpi, jpj,   zemesn2d    ) 
    940             zemesn2d(:,:)      = 0.0 !! 
    941          ENDIF 
    942          IF( med_diag%ZE_MES_D%dgsave ) THEN 
    943             CALL wrk_alloc( jpi, jpj,    zemesd2d   ) 
    944             zemesd2d(:,:)      = 0.0 !! 
    945          ENDIF 
    946          IF( med_diag%ZE_MES_C%dgsave ) THEN 
    947             CALL wrk_alloc( jpi, jpj,    zemesc2d   ) 
    948             zemesc2d(:,:)      = 0.0 !! 
    949          ENDIF 
    950          IF( med_diag%ZE_MESDC%dgsave ) THEN 
    951             CALL wrk_alloc( jpi, jpj,    zemesdc2d   ) 
    952             zemesdc2d(:,:)      = 0.0 !! 
    953          ENDIF 
    954          IF( med_diag%ZE_EXCR%dgsave ) THEN 
    955             CALL wrk_alloc( jpi, jpj,    zeexcr2d   ) 
    956             zeexcr2d(:,:)      = 0.0 !! 
    957          ENDIF                   
    958          IF( med_diag%ZE_RESP%dgsave ) THEN 
    959             CALL wrk_alloc( jpi, jpj,    zeresp2d   ) 
    960             zeresp2d(:,:)      = 0.0 !! 
    961          ENDIF 
    962          IF( med_diag%ZE_GROW%dgsave ) THEN 
    963             CALL wrk_alloc( jpi, jpj,    zegrow2d   ) 
    964             zegrow2d(:,:)      = 0.0 !! 
    965          ENDIF 
    966          IF( med_diag%MDETC%dgsave ) THEN 
    967             CALL wrk_alloc( jpi, jpj,   mdetc2d    ) 
    968             mdetc2d(:,:)      = 0.0 !! 
    969          ENDIF 
    970          IF( med_diag%GMIDC%dgsave ) THEN 
    971             CALL wrk_alloc( jpi, jpj,    gmidc2d   ) 
    972             gmidc2d(:,:)      = 0.0 !! 
    973          ENDIF 
    974          IF( med_diag%GMEDC%dgsave ) THEN 
    975             CALL wrk_alloc( jpi, jpj,    gmedc2d   ) 
    976             gmedc2d(:,:)      = 0.0 !! 
    977          ENDIF 
    978 !! 
    979 !! skip INT_XXX diagnostics here 
    980 !! 
    981          IF (jdms .eq. 1) THEN 
    982             IF( med_diag%DMS_SURF%dgsave ) THEN 
    983                CALL wrk_alloc( jpi, jpj,   dms_surf2d    ) 
    984                dms_surf2d(:,:)      = 0.0 !! 
    985             ENDIF 
    986             IF( med_diag%DMS_ANDR%dgsave ) THEN 
    987                CALL wrk_alloc( jpi, jpj,   dms_andr2d    ) 
    988                dms_andr2d(:,:)      = 0.0 !! 
    989             ENDIF 
    990             IF( med_diag%DMS_SIMO%dgsave ) THEN 
    991                CALL wrk_alloc( jpi, jpj,  dms_simo2d     ) 
    992                dms_simo2d(:,:)      = 0.0 !! 
    993             ENDIF 
    994             IF( med_diag%DMS_ARAN%dgsave ) THEN 
    995                CALL wrk_alloc( jpi, jpj,   dms_aran2d    ) 
    996                dms_aran2d(:,:)      = 0.0 !! 
    997             ENDIF 
    998             IF( med_diag%DMS_HALL%dgsave ) THEN 
    999                CALL wrk_alloc( jpi, jpj,   dms_hall2d    ) 
    1000                dms_hall2d(:,:)      = 0.0 !! 
    1001             ENDIF 
    1002          ENDIF    
    1003          !! 
    1004          !! AXY (24/11/16): extra MOCSY diagnostics, 2D 
    1005          IF( med_diag%ATM_XCO2%dgsave ) THEN 
    1006             CALL wrk_alloc( jpi, jpj, f_xco2a_2d      ) 
    1007             f_xco2a_2d(:,:)      = 0.0 !! 
    1008          ENDIF 
    1009          IF( med_diag%OCN_FCO2%dgsave ) THEN 
    1010             CALL wrk_alloc( jpi, jpj, f_fco2w_2d      ) 
    1011             f_fco2w_2d(:,:)      = 0.0 !! 
    1012          ENDIF 
    1013          IF( med_diag%ATM_FCO2%dgsave ) THEN 
    1014             CALL wrk_alloc( jpi, jpj, f_fco2a_2d      ) 
    1015             f_fco2a_2d(:,:)      = 0.0 !! 
    1016          ENDIF 
    1017          IF( med_diag%OCN_RHOSW%dgsave ) THEN 
    1018             CALL wrk_alloc( jpi, jpj, f_ocnrhosw_2d   ) 
    1019             f_ocnrhosw_2d(:,:)      = 0.0 !! 
    1020          ENDIF 
    1021          IF( med_diag%OCN_SCHCO2%dgsave ) THEN 
    1022             CALL wrk_alloc( jpi, jpj, f_ocnschco2_2d  ) 
    1023             f_ocnschco2_2d(:,:)      = 0.0 !! 
    1024          ENDIF 
    1025          IF( med_diag%OCN_KWCO2%dgsave ) THEN 
    1026             CALL wrk_alloc( jpi, jpj, f_ocnkwco2_2d   ) 
    1027             f_ocnkwco2_2d(:,:)      = 0.0 !! 
    1028          ENDIF 
    1029          IF( med_diag%OCN_K0%dgsave ) THEN 
    1030             CALL wrk_alloc( jpi, jpj, f_ocnk0_2d      ) 
    1031             f_ocnk0_2d(:,:)      = 0.0 !! 
    1032          ENDIF 
    1033          IF( med_diag%CO2STARAIR%dgsave ) THEN 
    1034             CALL wrk_alloc( jpi, jpj, f_co2starair_2d ) 
    1035             f_co2starair_2d(:,:)      = 0.0 !! 
    1036          ENDIF 
    1037          IF( med_diag%OCN_DPCO2%dgsave ) THEN 
    1038             CALL wrk_alloc( jpi, jpj, f_ocndpco2_2d   ) 
    1039             f_ocndpco2_2d(:,:)      = 0.0 !! 
    1040          ENDIF 
    1041 # endif   
    1042          IF( med_diag%TPP3%dgsave ) THEN 
    1043             CALL wrk_alloc( jpi, jpj, jpk,       tpp3d ) 
    1044             tpp3d(:,:,:)      = 0.0 !!  
    1045          ENDIF 
    1046          IF( med_diag%DETFLUX3%dgsave ) THEN 
    1047             CALL wrk_alloc( jpi, jpj, jpk,        detflux3d ) 
    1048             detflux3d(:,:,:)      = 0.0 !!  
    1049          ENDIF 
    1050          IF( med_diag%REMIN3N%dgsave ) THEN 
    1051              CALL wrk_alloc( jpi, jpj, jpk,        remin3dn ) 
    1052              remin3dn(:,:,:)      = 0.0 !!  
    1053           ENDIF 
    1054           !!  
    1055           !! AXY (10/11/16): CMIP6 diagnostics, 2D 
    1056           !! JPALM -- 17-11-16 -- put fgco2 alloc out of diag request 
    1057           !!                   needed for coupling/passed through restart 
    1058           !! IF( med_diag%FGCO2%dgsave ) THEN 
    1059              CALL wrk_alloc( jpi, jpj,   fgco2    ) 
    1060              fgco2(:,:)      = 0.0 !! 
    1061           !! ENDIF 
    1062           IF( med_diag%INTDISSIC%dgsave ) THEN 
    1063              CALL wrk_alloc( jpi, jpj,   intdissic    ) 
    1064              intdissic(:,:)  = 0.0 !! 
    1065           ENDIF           
    1066           IF( med_diag%INTDISSIN%dgsave ) THEN 
    1067              CALL wrk_alloc( jpi, jpj,   intdissin    ) 
    1068              intdissin(:,:)  = 0.0 !! 
    1069           ENDIF           
    1070           IF( med_diag%INTDISSISI%dgsave ) THEN 
    1071              CALL wrk_alloc( jpi, jpj,   intdissisi    ) 
    1072              intdissisi(:,:)  = 0.0 !! 
    1073           ENDIF           
    1074           IF( med_diag%INTTALK%dgsave ) THEN 
    1075              CALL wrk_alloc( jpi, jpj,   inttalk    ) 
    1076              inttalk(:,:)  = 0.0 !! 
    1077           ENDIF           
    1078           IF( med_diag%O2min%dgsave ) THEN 
    1079              CALL wrk_alloc( jpi, jpj,   o2min    ) 
    1080              o2min(:,:)  = 1.e3 !! set to high value as we're looking for min(o2) 
    1081           ENDIF           
    1082           IF( med_diag%ZO2min%dgsave ) THEN 
    1083              CALL wrk_alloc( jpi, jpj,   zo2min    ) 
    1084              zo2min(:,:)  = 0.0 !! 
    1085           ENDIF           
    1086           IF( med_diag%FBDDTALK%dgsave  ) THEN 
    1087              CALL wrk_alloc( jpi, jpj, fbddtalk  ) 
    1088              fbddtalk(:,:)  = 0.0 !!  
    1089           ENDIF 
    1090           IF( med_diag%FBDDTDIC%dgsave  ) THEN 
    1091              CALL wrk_alloc( jpi, jpj, fbddtdic  ) 
    1092              fbddtdic(:,:)  = 0.0 !!  
    1093           ENDIF 
    1094           IF( med_diag%FBDDTDIFE%dgsave ) THEN 
    1095              CALL wrk_alloc( jpi, jpj, fbddtdife ) 
    1096              fbddtdife(:,:) = 0.0 !!  
    1097           ENDIF 
    1098           IF( med_diag%FBDDTDIN%dgsave  ) THEN 
    1099              CALL wrk_alloc( jpi, jpj, fbddtdin  ) 
    1100              fbddtdin(:,:)  = 0.0 !!  
    1101           ENDIF 
    1102           IF( med_diag%FBDDTDISI%dgsave ) THEN 
    1103              CALL wrk_alloc( jpi, jpj, fbddtdisi ) 
    1104              fbddtdisi(:,:) = 0.0 !!  
    1105           ENDIF 
    1106           !!  
    1107           !! AXY (10/11/16): CMIP6 diagnostics, 3D 
    1108           IF( med_diag%TPPD3%dgsave     ) THEN 
    1109              CALL wrk_alloc( jpi, jpj, jpk, tppd3     ) 
    1110              tppd3(:,:,:)     = 0.0 !!  
    1111           ENDIF 
    1112           IF( med_diag%BDDTALK3%dgsave  ) THEN 
    1113              CALL wrk_alloc( jpi, jpj, jpk, bddtalk3  ) 
    1114              bddtalk3(:,:,:)  = 0.0 !!  
    1115           ENDIF 
    1116           IF( med_diag%BDDTDIC3%dgsave  ) THEN 
    1117              CALL wrk_alloc( jpi, jpj, jpk, bddtdic3  ) 
    1118              bddtdic3(:,:,:)  = 0.0 !!  
    1119           ENDIF 
    1120           IF( med_diag%BDDTDIFE3%dgsave ) THEN 
    1121              CALL wrk_alloc( jpi, jpj, jpk, bddtdife3 ) 
    1122              bddtdife3(:,:,:) = 0.0 !!  
    1123           ENDIF 
    1124           IF( med_diag%BDDTDIN3%dgsave  ) THEN 
    1125              CALL wrk_alloc( jpi, jpj, jpk, bddtdin3  ) 
    1126              bddtdin3(:,:,:)  = 0.0 !!  
    1127           ENDIF 
    1128           IF( med_diag%BDDTDISI3%dgsave ) THEN 
    1129              CALL wrk_alloc( jpi, jpj, jpk, bddtdisi3 ) 
    1130              bddtdisi3(:,:,:) = 0.0 !!  
    1131           ENDIF 
    1132           IF( med_diag%FD_NIT3%dgsave   ) THEN 
    1133              CALL wrk_alloc( jpi, jpj, jpk, fd_nit3   ) 
    1134              fd_nit3(:,:,:)   = 0.0 !!  
    1135           ENDIF 
    1136           IF( med_diag%FD_SIL3%dgsave   ) THEN 
    1137              CALL wrk_alloc( jpi, jpj, jpk, fd_sil3   ) 
    1138              fd_sil3(:,:,:)   = 0.0 !!  
    1139           ENDIF 
    1140           IF( med_diag%FD_CAR3%dgsave   ) THEN 
    1141              CALL wrk_alloc( jpi, jpj, jpk, fd_car3   ) 
    1142              fd_car3(:,:,:)   = 0.0 !!  
    1143           ENDIF 
    1144           IF( med_diag%FD_CAL3%dgsave   ) THEN 
    1145              CALL wrk_alloc( jpi, jpj, jpk, fd_cal3   ) 
    1146              fd_cal3(:,:,:)   = 0.0 !!  
    1147           ENDIF 
    1148           IF( med_diag%DCALC3%dgsave    ) THEN 
    1149              CALL wrk_alloc( jpi, jpj, jpk, dcalc3    ) 
    1150              dcalc3(:,:,: )   = 0.0 !!  
    1151           ENDIF 
    1152           IF( med_diag%EXPC3%dgsave     ) THEN 
    1153              CALL wrk_alloc( jpi, jpj, jpk, expc3   ) 
    1154              expc3(:,:,: )    = 0.0 !!  
    1155           ENDIF 
    1156           IF( med_diag%EXPN3%dgsave     ) THEN 
    1157              CALL wrk_alloc( jpi, jpj, jpk, expn3   ) 
    1158              expn3(:,:,: )    = 0.0 !!  
    1159           ENDIF 
    1160           IF( med_diag%FEDISS3%dgsave   ) THEN 
    1161              CALL wrk_alloc( jpi, jpj, jpk, fediss3   ) 
    1162              fediss3(:,:,: )  = 0.0 !!  
    1163           ENDIF 
    1164           IF( med_diag%FESCAV3%dgsave   ) THEN 
    1165              CALL wrk_alloc( jpi, jpj, jpk, fescav3   ) 
    1166              fescav3(:,:,: )  = 0.0 !!  
    1167           ENDIF 
    1168           IF( med_diag%MIGRAZP3%dgsave   ) THEN 
    1169              CALL wrk_alloc( jpi, jpj, jpk, migrazp3  ) 
    1170              migrazp3(:,:,: )  = 0.0 !!  
    1171           ENDIF 
    1172           IF( med_diag%MIGRAZD3%dgsave   ) THEN 
    1173              CALL wrk_alloc( jpi, jpj, jpk, migrazd3  ) 
    1174              migrazd3(:,:,: )  = 0.0 !!  
    1175           ENDIF 
    1176           IF( med_diag%MEGRAZP3%dgsave   ) THEN 
    1177              CALL wrk_alloc( jpi, jpj, jpk, megrazp3  ) 
    1178              megrazp3(:,:,: )  = 0.0 !!  
    1179           ENDIF 
    1180           IF( med_diag%MEGRAZD3%dgsave   ) THEN 
    1181              CALL wrk_alloc( jpi, jpj, jpk, megrazd3  ) 
    1182              megrazd3(:,:,: )  = 0.0 !!  
    1183           ENDIF 
    1184           IF( med_diag%MEGRAZZ3%dgsave   ) THEN 
    1185              CALL wrk_alloc( jpi, jpj, jpk, megrazz3  ) 
    1186              megrazz3(:,:,: )  = 0.0 !!  
    1187           ENDIF 
    1188           IF( med_diag%O2SAT3%dgsave     ) THEN 
    1189              CALL wrk_alloc( jpi, jpj, jpk, o2sat3    ) 
    1190              o2sat3(:,:,: )    = 0.0 !!  
    1191           ENDIF 
    1192           IF( med_diag%PBSI3%dgsave      ) THEN 
    1193              CALL wrk_alloc( jpi, jpj, jpk, pbsi3     ) 
    1194              pbsi3(:,:,: )     = 0.0 !!  
    1195           ENDIF 
    1196           IF( med_diag%PCAL3%dgsave      ) THEN 
    1197              CALL wrk_alloc( jpi, jpj, jpk, pcal3     ) 
    1198              pcal3(:,:,: )     = 0.0 !!  
    1199           ENDIF 
    1200           IF( med_diag%REMOC3%dgsave     ) THEN 
    1201              CALL wrk_alloc( jpi, jpj, jpk, remoc3    ) 
    1202              remoc3(:,:,: )    = 0.0 !!  
    1203           ENDIF 
    1204           IF( med_diag%PNLIMJ3%dgsave    ) THEN 
    1205              CALL wrk_alloc( jpi, jpj, jpk, pnlimj3   ) 
    1206              pnlimj3(:,:,: )   = 0.0 !!  
    1207           ENDIF 
    1208           IF( med_diag%PNLIMN3%dgsave    ) THEN 
    1209              CALL wrk_alloc( jpi, jpj, jpk, pnlimn3   ) 
    1210              pnlimn3(:,:,: )   = 0.0 !!  
    1211           ENDIF 
    1212           IF( med_diag%PNLIMFE3%dgsave   ) THEN 
    1213              CALL wrk_alloc( jpi, jpj, jpk, pnlimfe3  ) 
    1214              pnlimfe3(:,:,: )  = 0.0 !!  
    1215           ENDIF 
    1216           IF( med_diag%PDLIMJ3%dgsave    ) THEN 
    1217              CALL wrk_alloc( jpi, jpj, jpk, pdlimj3   ) 
    1218              pdlimj3(:,:,: )   = 0.0 !!  
    1219           ENDIF 
    1220           IF( med_diag%PDLIMN3%dgsave    ) THEN 
    1221              CALL wrk_alloc( jpi, jpj, jpk, pdlimn3   ) 
    1222              pdlimn3(:,:,: )   = 0.0 !!  
    1223           ENDIF 
    1224           IF( med_diag%PDLIMFE3%dgsave   ) THEN 
    1225              CALL wrk_alloc( jpi, jpj, jpk, pdlimfe3  ) 
    1226              pdlimfe3(:,:,: )  = 0.0 !!  
    1227           ENDIF 
    1228           IF( med_diag%PDLIMSI3%dgsave   ) THEN 
    1229              CALL wrk_alloc( jpi, jpj, jpk, pdlimsi3  ) 
    1230              pdlimsi3(:,:,: )  = 0.0 !!  
    1231           ENDIF 
    1232  
    1233        ENDIF 
    1234        !! lk_iomput                                    
     427! tmp - marc 
     428      write(numout,*) 'bbb13. before call to bio_medusa_init,kt=',kt 
     429      flush(numout) 
     430! 
     431      CALL bio_medusa_init( kt ) 
     432! tmp - marc 
     433      write(numout,*) 'bbb14. after call to bio_medusa_init,kt=',kt 
     434      flush(numout) 
     435! 
    1235436       !! 
    1236437# if defined key_axy_nancheck 
     
    18841085                      ENDIF 
    18851086                      IF( med_diag%CO2FLUX%dgsave ) THEN 
    1886                          f_co2flux(ji,jj)2d(ji,jj) = f_co2flux(ji,jj) * fse3t(ji,jj,jk)           !! mmol/m3/d -> mmol/m2/d 
     1087                         f_co2flux2d(ji,jj) = f_co2flux(ji,jj) * fse3t(ji,jj,jk)           !! mmol/m3/d -> mmol/m2/d 
    18871088                      ENDIF 
    18881089                      IF( med_diag%TCO2%dgsave ) THEN 
Note: See TracChangeset for help on using the changeset viewer.