LCOV - code coverage report
Current view: top level - cicecore/cicedyn/general - ice_flux_bgc.F90 (source / functions) Hit Total Coverage
Test: 231018-211459:8916b9ff2c:1:quick Lines: 4 54 7.41 %
Date: 2023-10-18 15:30:36 Functions: 1 2 50.00 %

          Line data    Source code
       1             : !=======================================================================
       2             : 
       3             : ! Flux variable declarations for biogeochemistry
       4             : !
       5             : ! author Elizabeth C. Hunke, LANL
       6             : !
       7             :       module ice_flux_bgc
       8             : 
       9             :       use ice_kinds_mod
      10             :       use ice_blocks, only: nx_block, ny_block
      11             :       use ice_domain_size, only: max_blocks, ncat
      12             :       use ice_fileunits, only: nu_diag
      13             :       use ice_exit, only: abort_ice
      14             :       use icepack_intfc, only: icepack_warnings_flush, icepack_warnings_aborted
      15             :       use icepack_intfc, only: icepack_max_iso, icepack_max_aero, icepack_max_nbtrcr, &
      16             :           icepack_max_algae, icepack_max_doc, icepack_max_don, icepack_max_dic, icepack_max_fe, &   ! LCOV_EXCL_LINE
      17             :           icepack_query_tracer_indices, icepack_query_tracer_flags, icepack_query_parameters
      18             : 
      19             :       implicit none
      20             :       private
      21             : 
      22             :       public :: bgcflux_ice_to_ocn, alloc_flux_bgc
      23             : 
      24             :       ! in from atmosphere
      25             : 
      26             :       real (kind=dbl_kind), &   ! coupling variable for both tr_aero and tr_zaero
      27             :          dimension (:,:,:,:), allocatable, public :: &   ! LCOV_EXCL_LINE
      28             :          fiso_atm, & ! isotope deposition rate (kg/m^2 s)   ! LCOV_EXCL_LINE
      29             :          faero_atm   ! aerosol deposition rate (kg/m^2 s)
      30             : 
      31             :       real (kind=dbl_kind), &
      32             :          dimension (:,:,:,:), allocatable, public :: &   ! LCOV_EXCL_LINE
      33             :          flux_bio_atm  ! all bio fluxes to ice from atmosphere
      34             : 
      35             :       ! out to ocean
      36             : 
      37             :       real (kind=dbl_kind), &
      38             :          dimension (:,:,:,:), allocatable, public :: &   ! LCOV_EXCL_LINE
      39             :          fiso_ocn, & ! isotope flux to ocean  (kg/m^2/s)   ! LCOV_EXCL_LINE
      40             :          faero_ocn   ! aerosol flux to ocean  (kg/m^2/s)
      41             : 
      42             :       real (kind=dbl_kind), &
      43             :          dimension (:,:,:,:), allocatable, public :: &   ! LCOV_EXCL_LINE
      44             :          flux_bio   , & ! all bio fluxes to ocean   ! LCOV_EXCL_LINE
      45             :          flux_bio_ai    ! all bio fluxes to ocean, averaged over grid cell
      46             : 
      47             :       ! internal
      48             : 
      49             :       logical (kind=log_kind), public :: &
      50             :          cpl_bgc         ! switch to couple BGC via drivers
      51             : 
      52             :       real (kind=dbl_kind), dimension (:,:,:,:), allocatable, public :: &
      53             :          hin_old     , & ! old ice thickness   ! LCOV_EXCL_LINE
      54             :          dsnown          ! change in snow thickness in category n (m)
      55             : 
      56             :       real (kind=dbl_kind), dimension (:,:,:), allocatable, public :: &
      57             :          nit        , & ! ocean nitrate (mmol/m^3)   ! LCOV_EXCL_LINE
      58             :          amm        , & ! ammonia/um (mmol/m^3)   ! LCOV_EXCL_LINE
      59             :          sil        , & ! silicate (mmol/m^3)   ! LCOV_EXCL_LINE
      60             :          dmsp       , & ! dmsp (mmol/m^3)   ! LCOV_EXCL_LINE
      61             :          dms        , & ! dms (mmol/m^3)   ! LCOV_EXCL_LINE
      62             :          hum        , & ! humic material carbon (mmol/m^3)   ! LCOV_EXCL_LINE
      63             :          fnit       , & ! ice-ocean nitrate flux (mmol/m^2/s), positive to ocean   ! LCOV_EXCL_LINE
      64             :          famm       , & ! ice-ocean ammonia/um flux (mmol/m^2/s), positive to ocean   ! LCOV_EXCL_LINE
      65             :          fsil       , & ! ice-ocean silicate flux (mmol/m^2/s), positive to ocean   ! LCOV_EXCL_LINE
      66             :          fdmsp      , & ! ice-ocean dmsp (mmol/m^2/s), positive to ocean   ! LCOV_EXCL_LINE
      67             :          fdms       , & ! ice-ocean dms (mmol/m^2/s), positive to ocean   ! LCOV_EXCL_LINE
      68             :          fhum       , & ! ice-ocean humic material carbon (mmol/m^2/s), positive to ocean   ! LCOV_EXCL_LINE
      69             :          fdust          ! ice-ocean dust flux (kg/m^2/s), positive to ocean
      70             : 
      71             :       real (kind=dbl_kind), dimension (:,:,:,:), allocatable, public :: &
      72             :          algalN     , & ! ocean algal nitrogen (mmol/m^3) (diatoms, pico, phaeo)   ! LCOV_EXCL_LINE
      73             :          falgalN        ! ice-ocean algal nitrogen flux (mmol/m^2/s) (diatoms, pico, phaeo)
      74             : 
      75             :       real (kind=dbl_kind), dimension (:,:,:,:), allocatable, public :: &
      76             :          doc         , & ! ocean doc (mmol/m^3)  (saccharids, lipids, tbd )   ! LCOV_EXCL_LINE
      77             :          fdoc            ! ice-ocean doc flux (mmol/m^2/s)  (saccharids, lipids, tbd)
      78             : 
      79             :       real (kind=dbl_kind), dimension (:,:,:,:), allocatable, public :: &
      80             :          don         , & ! ocean don (mmol/m^3) (proteins and amino acids)   ! LCOV_EXCL_LINE
      81             :          fdon            ! ice-ocean don flux (mmol/m^2/s) (proteins and amino acids)
      82             : 
      83             :       real (kind=dbl_kind), dimension (:,:,:,:), allocatable, public :: &
      84             :          dic         , & ! ocean dic (mmol/m^3)   ! LCOV_EXCL_LINE
      85             :          fdic            ! ice-ocean dic flux (mmol/m^2/s)
      86             : 
      87             :       real (kind=dbl_kind), dimension (:,:,:,:), allocatable, public :: &
      88             :          fed, fep    , & ! ocean dissolved and particulate fe (nM)   ! LCOV_EXCL_LINE
      89             :          ffed, ffep      ! ice-ocean dissolved and particulate fe flux (umol/m^2/s)
      90             : 
      91             :       real (kind=dbl_kind), dimension (:,:,:,:), allocatable, public :: &
      92             :          zaeros          ! ocean aerosols (mmol/m^3)
      93             : 
      94             :       ! isotopes
      95             :       real (kind=dbl_kind), &   ! coupling variable for tr_iso
      96             :          dimension (:,:,:,:), allocatable, public :: &   ! LCOV_EXCL_LINE
      97             :          fiso_evap , & ! isotope evaporation rate (kg/m^2 s)   ! LCOV_EXCL_LINE
      98             :          Qa_iso    , & ! isotope specific humidity (kg/kg)   ! LCOV_EXCL_LINE
      99             :          Qref_iso      ! 2m atm reference isotope spec humidity (kg/kg)
     100             : 
     101             :       real (kind=dbl_kind), &   ! coupling variable for tr_iso
     102             :          dimension (:,:,:), allocatable, public :: &   ! LCOV_EXCL_LINE
     103             :          HDO_ocn   , & ! seawater concentration of HDO (kg/kg)   ! LCOV_EXCL_LINE
     104             :          H2_16O_ocn, & ! seawater concentration of H2_16O (kg/kg)   ! LCOV_EXCL_LINE
     105             :          H2_18O_ocn    ! seawater concentration of H2_18O (kg/kg)
     106             : 
     107             : !=======================================================================
     108             : 
     109             :       contains
     110             : 
     111             : !=======================================================================
     112             : !
     113             : ! Allocate space for all variables
     114             : !
     115          37 :       subroutine alloc_flux_bgc
     116             : 
     117             :       integer (int_kind) :: ierr
     118             : 
     119             :       allocate( &
     120             :          nit         (nx_block,ny_block,max_blocks), & ! ocean nitrate (mmol/m^3)   ! LCOV_EXCL_LINE
     121             :          amm         (nx_block,ny_block,max_blocks), & ! ammonia/um (mmol/m^3)   ! LCOV_EXCL_LINE
     122             :          sil         (nx_block,ny_block,max_blocks), & ! silicate (mmol/m^3)   ! LCOV_EXCL_LINE
     123             :          dmsp        (nx_block,ny_block,max_blocks), & ! dmsp (mmol/m^3)   ! LCOV_EXCL_LINE
     124             :          dms         (nx_block,ny_block,max_blocks), & ! dms (mmol/m^3)   ! LCOV_EXCL_LINE
     125             :          hum         (nx_block,ny_block,max_blocks), & ! humic material carbon (mmol/m^3)   ! LCOV_EXCL_LINE
     126             :          fnit        (nx_block,ny_block,max_blocks), & ! ice-ocean nitrate flux (mmol/m^2/s), positive to ocean   ! LCOV_EXCL_LINE
     127             :          famm        (nx_block,ny_block,max_blocks), & ! ice-ocean ammonia/um flux (mmol/m^2/s), positive to ocean   ! LCOV_EXCL_LINE
     128             :          fsil        (nx_block,ny_block,max_blocks), & ! ice-ocean silicate flux (mmol/m^2/s), positive to ocean   ! LCOV_EXCL_LINE
     129             :          fdmsp       (nx_block,ny_block,max_blocks), & ! ice-ocean dmsp (mmol/m^2/s), positive to ocean   ! LCOV_EXCL_LINE
     130             :          fdms        (nx_block,ny_block,max_blocks), & ! ice-ocean dms (mmol/m^2/s), positive to ocean   ! LCOV_EXCL_LINE
     131             :          fhum        (nx_block,ny_block,max_blocks), & ! ice-ocean humic material carbon (mmol/m^2/s), positive to ocean   ! LCOV_EXCL_LINE
     132             :          fdust       (nx_block,ny_block,max_blocks), & ! ice-ocean dust flux (kg/m^2/s), positive to ocean   ! LCOV_EXCL_LINE
     133             :          hin_old     (nx_block,ny_block,ncat,max_blocks), & ! old ice thickness   ! LCOV_EXCL_LINE
     134             :          dsnown      (nx_block,ny_block,ncat,max_blocks), & ! change in snow thickness in category n (m)   ! LCOV_EXCL_LINE
     135             :          HDO_ocn     (nx_block,ny_block,max_blocks), & ! seawater concentration of HDO (kg/kg)   ! LCOV_EXCL_LINE
     136             :          H2_16O_ocn  (nx_block,ny_block,max_blocks), & ! seawater concentration of H2_16O (kg/kg)   ! LCOV_EXCL_LINE
     137             :          H2_18O_ocn  (nx_block,ny_block,max_blocks), & ! seawater concentration of H2_18O (kg/kg)   ! LCOV_EXCL_LINE
     138             :          Qa_iso      (nx_block,ny_block,icepack_max_iso,max_blocks), & ! isotope specific humidity (kg/kg)   ! LCOV_EXCL_LINE
     139             :          Qref_iso    (nx_block,ny_block,icepack_max_iso,max_blocks), & ! 2m atm reference isotope spec humidity (kg/kg)   ! LCOV_EXCL_LINE
     140             :          fiso_atm    (nx_block,ny_block,icepack_max_iso,max_blocks), & ! isotope deposition rate (kg/m^2 s)   ! LCOV_EXCL_LINE
     141             :          fiso_evap   (nx_block,ny_block,icepack_max_iso,max_blocks), & ! isotope evaporation rate (kg/m^2 s)   ! LCOV_EXCL_LINE
     142             :          fiso_ocn    (nx_block,ny_block,icepack_max_iso,max_blocks), & ! isotope flux to ocean  (kg/m^2/s)   ! LCOV_EXCL_LINE
     143             :          faero_atm   (nx_block,ny_block,icepack_max_aero,max_blocks), & ! aerosol deposition rate (kg/m^2 s)   ! LCOV_EXCL_LINE
     144             :          faero_ocn   (nx_block,ny_block,icepack_max_aero,max_blocks), & ! aerosol flux to ocean  (kg/m^2/s)   ! LCOV_EXCL_LINE
     145             :          zaeros      (nx_block,ny_block,icepack_max_aero,max_blocks), & ! ocean aerosols (mmol/m^3)   ! LCOV_EXCL_LINE
     146             :          flux_bio_atm(nx_block,ny_block,icepack_max_nbtrcr,max_blocks), & ! all bio fluxes to ice from atmosphere   ! LCOV_EXCL_LINE
     147             :          flux_bio    (nx_block,ny_block,icepack_max_nbtrcr,max_blocks), & ! all bio fluxes to ocean   ! LCOV_EXCL_LINE
     148             :          flux_bio_ai (nx_block,ny_block,icepack_max_nbtrcr,max_blocks), & ! all bio fluxes to ocean, averaged over grid cell   ! LCOV_EXCL_LINE
     149             :          algalN      (nx_block,ny_block,icepack_max_algae,max_blocks), & ! ocean algal nitrogen (mmol/m^3) (diatoms, pico, phaeo)   ! LCOV_EXCL_LINE
     150             :          falgalN     (nx_block,ny_block,icepack_max_algae,max_blocks), & ! ice-ocn algalN flux (mmol/m^2/s) (diatoms, pico, phaeo)   ! LCOV_EXCL_LINE
     151             :          doc         (nx_block,ny_block,icepack_max_doc,max_blocks), & ! ocean doc (mmol/m^3)  (saccharids, lipids, tbd )   ! LCOV_EXCL_LINE
     152             :          fdoc        (nx_block,ny_block,icepack_max_doc,max_blocks), & ! ice-ocean doc flux (mmol/m^2/s)  (saccharids, lipids, tbd)   ! LCOV_EXCL_LINE
     153             :          don         (nx_block,ny_block,icepack_max_don,max_blocks), & ! ocean don (mmol/m^3) (proteins and amino acids)   ! LCOV_EXCL_LINE
     154             :          fdon        (nx_block,ny_block,icepack_max_don,max_blocks), & ! ice-ocean don flux (mmol/m^2/s) (proteins and amino acids)   ! LCOV_EXCL_LINE
     155             :          dic         (nx_block,ny_block,icepack_max_dic,max_blocks), & ! ocean dic (mmol/m^3)   ! LCOV_EXCL_LINE
     156             :          fdic        (nx_block,ny_block,icepack_max_dic,max_blocks), & ! ice-ocean dic flux (mmol/m^2/s)   ! LCOV_EXCL_LINE
     157             :          fed         (nx_block,ny_block,icepack_max_fe, max_blocks), & ! ocean dissolved fe (nM)   ! LCOV_EXCL_LINE
     158             :          fep         (nx_block,ny_block,icepack_max_fe, max_blocks), & ! ocean particulate fe (nM)   ! LCOV_EXCL_LINE
     159             :          ffed        (nx_block,ny_block,icepack_max_fe, max_blocks), & ! ice-ocean dissolved fe flux (umol/m^2/s)   ! LCOV_EXCL_LINE
     160             :          ffep        (nx_block,ny_block,icepack_max_fe, max_blocks), & ! ice-ocean particulate fe flux (umol/m^2/s)   ! LCOV_EXCL_LINE
     161          37 :          stat=ierr)
     162          37 :       if (ierr/=0) call abort_ice('(alloc_flux_bgc): Out of memory')
     163             : 
     164          37 :       end subroutine alloc_flux_bgc
     165             : 
     166             : !=======================================================================
     167             : 
     168             : ! Initialize some fluxes sent to coupler for use by the atm model
     169             : !
     170             : ! author: Nicole Jeffery, LANL
     171             : 
     172           0 :       subroutine bgcflux_ice_to_ocn(nx_block,       &
     173             :                                   ny_block,         &   ! LCOV_EXCL_LINE
     174             :                                   flux_bio,         &   ! LCOV_EXCL_LINE
     175             :                                   f_nit,    f_sil,    &   ! LCOV_EXCL_LINE
     176             :                                   f_amm,    f_dmsp,   &   ! LCOV_EXCL_LINE
     177             :                                   f_dms,    f_hum,    &   ! LCOV_EXCL_LINE
     178             :                                   f_dust,   f_algalN, &   ! LCOV_EXCL_LINE
     179             :                                   f_doc,    f_dic,    &   ! LCOV_EXCL_LINE
     180             :                                   f_don,    f_fep,    &   ! LCOV_EXCL_LINE
     181           0 :                                   f_fed)
     182             : 
     183             :       use ice_constants, only: c0
     184             :       use ice_domain_size, only: n_zaero, n_algae, n_doc, n_dic, n_don, n_fed, n_fep
     185             : 
     186             :       real(kind=dbl_kind), dimension(:,:,:), intent(in) :: &
     187             :           flux_bio
     188             :       real(kind=dbl_kind), dimension(:,:), intent(out):: &
     189             :           f_nit,  &  ! nitrate flux mmol/m^2/s  positive to ocean   ! LCOV_EXCL_LINE
     190             :           f_sil,  &  ! silicate flux mmol/m^2/s   ! LCOV_EXCL_LINE
     191             :           f_amm,  &  ! ammonium flux mmol/m^2/s   ! LCOV_EXCL_LINE
     192             :           f_dmsp, &  ! DMSPd flux mmol/m^2/s   ! LCOV_EXCL_LINE
     193             :           f_dms,  &  ! DMS flux mmol/m^2/s   ! LCOV_EXCL_LINE
     194             :           f_hum,  &  ! humic flux mmol/m^2/s   ! LCOV_EXCL_LINE
     195             :           f_dust     ! dust flux kg/m^2/s
     196             : 
     197             :       real(kind=dbl_kind), dimension(:,:,:), intent(out):: &
     198             :           f_algalN, & ! algal nitrogen flux mmol/m^2/s   ! LCOV_EXCL_LINE
     199             :           f_doc,    & ! DOC flux mmol/m^2/s   ! LCOV_EXCL_LINE
     200             :           f_dic,    & ! DIC flux mmol/m^2/s   ! LCOV_EXCL_LINE
     201             :           f_don,    & ! DON flux mmol/m^2/s   ! LCOV_EXCL_LINE
     202             :           f_fep,    & ! particulate iron flux umol/m^2/s   ! LCOV_EXCL_LINE
     203             :           f_fed       ! dissolved iron flux umol/m^2/s
     204             : 
     205             :       integer (kind=int_kind), intent(in) :: &
     206             :           nx_block, &   ! LCOV_EXCL_LINE
     207             :           ny_block
     208             : 
     209             :       ! local variables
     210             : 
     211             :       integer (kind=int_kind) :: &
     212             :          i,j         , & ! horizontal indices   ! LCOV_EXCL_LINE
     213             :          k               ! tracer index
     214             : 
     215             :       logical (kind=log_kind) :: &
     216             :           skl_bgc, solve_zbgc, &   ! LCOV_EXCL_LINE
     217             :           tr_bgc_Nit, tr_bgc_N, &   ! LCOV_EXCL_LINE
     218             :           tr_bgc_DON, tr_bgc_C, tr_bgc_Am, tr_bgc_Sil, tr_bgc_DMS, tr_bgc_Fe, &   ! LCOV_EXCL_LINE
     219             :           tr_bgc_hum, tr_zaero
     220             : 
     221             :       integer (kind=int_kind) :: &
     222             :           nlt_bgc_Nit, nlt_bgc_Am, &   ! LCOV_EXCL_LINE
     223             :           nlt_bgc_Sil, nlt_bgc_DMSPd, nlt_bgc_DMS, nlt_bgc_hum
     224             : 
     225             :       integer (kind=int_kind), dimension(icepack_max_algae) :: &
     226             :           nlt_bgc_N, nlt_bgc_C   ! algae
     227             :       integer (kind=int_kind), dimension(icepack_max_doc) :: &
     228             :           nlt_bgc_DOC            ! disolved organic carbon
     229             :       integer (kind=int_kind), dimension(icepack_max_don) :: &
     230             :           nlt_bgc_DON            !
     231             :       integer (kind=int_kind), dimension(icepack_max_dic) :: &
     232             :           nlt_bgc_DIC            ! disolved inorganic carbon
     233             :       integer (kind=int_kind), dimension(icepack_max_fe) :: &
     234             :           nlt_bgc_Fed, nlt_bgc_Fep  !
     235             :       integer (kind=int_kind), dimension(icepack_max_aero) :: &
     236             :           nlt_zaero              ! non-reacting layer aerosols
     237             : 
     238             :       character(len=*), parameter :: subname = '(bgcflux_ice_to_ocn)'
     239             : 
     240           0 :       call icepack_query_parameters(skl_bgc_out=skl_bgc, solve_zbgc_out=solve_zbgc)
     241             :       call icepack_query_tracer_flags( &
     242             :           tr_bgc_Nit_out=tr_bgc_Nit, tr_bgc_N_out=tr_bgc_N, &   ! LCOV_EXCL_LINE
     243             :           tr_bgc_DON_out=tr_bgc_DON, tr_bgc_C_out=tr_bgc_C, tr_bgc_Am_out=tr_bgc_Am, &   ! LCOV_EXCL_LINE
     244             :           tr_bgc_Sil_out=tr_bgc_Sil, tr_bgc_DMS_out=tr_bgc_DMS, tr_bgc_Fe_out=tr_bgc_Fe, &   ! LCOV_EXCL_LINE
     245           0 :           tr_bgc_hum_out=tr_bgc_hum, tr_zaero_out=tr_zaero)
     246             :       call icepack_query_tracer_indices( &
     247             :           nlt_bgc_N_out=nlt_bgc_N, nlt_bgc_C_out=nlt_bgc_C, nlt_bgc_DOC_out=nlt_bgc_DOC, &   ! LCOV_EXCL_LINE
     248             :           nlt_bgc_DON_out=nlt_bgc_DON, nlt_bgc_DIC_out=nlt_bgc_DIC, &   ! LCOV_EXCL_LINE
     249             :           nlt_bgc_Fed_out=nlt_bgc_Fed, nlt_bgc_Fep_out=nlt_bgc_Fep, &   ! LCOV_EXCL_LINE
     250             :           nlt_zaero_out=nlt_zaero, nlt_bgc_Nit_out=nlt_bgc_Nit, nlt_bgc_Am_out=nlt_bgc_Am, &   ! LCOV_EXCL_LINE
     251             :           nlt_bgc_Sil_out=nlt_bgc_Sil, nlt_bgc_DMSPd_out=nlt_bgc_DMSPd, &   ! LCOV_EXCL_LINE
     252           0 :           nlt_bgc_DMS_out=nlt_bgc_DMS, nlt_bgc_hum_out=nlt_bgc_hum)
     253           0 :       call icepack_warnings_flush(nu_diag)
     254           0 :       if (icepack_warnings_aborted()) call abort_ice(error_message=subname, &
     255           0 :          file=__FILE__, line=__LINE__)
     256             : 
     257           0 :       f_nit    (:,:) = c0
     258           0 :       f_sil    (:,:) = c0
     259           0 :       f_amm    (:,:) = c0
     260           0 :       f_dmsp   (:,:) = c0
     261           0 :       f_dms    (:,:) = c0
     262           0 :       f_hum    (:,:) = c0
     263           0 :       f_dust   (:,:) = c0
     264           0 :       f_algalN(:,:,:)= c0
     265           0 :       f_doc   (:,:,:)= c0
     266           0 :       f_dic   (:,:,:)= c0
     267           0 :       f_don   (:,:,:)= c0
     268           0 :       f_fep   (:,:,:)= c0
     269           0 :       f_fed   (:,:,:)= c0
     270             : 
     271           0 :       do j = 1, ny_block
     272           0 :       do i = 1, nx_block
     273           0 :          if (skl_bgc .or. solve_zbgc) then
     274           0 :             do k = 1, n_algae
     275           0 :                f_algalN(i,j,k) = flux_bio(i,j,nlt_bgc_N(k))
     276             :             enddo
     277             :          endif
     278           0 :          if (tr_bgc_C) then
     279           0 :             do k = 1, n_doc
     280           0 :                f_doc(i,j,k) = flux_bio(i,j,nlt_bgc_DOC(k))
     281             :             enddo
     282           0 :             do k = 1, n_dic
     283           0 :                f_dic(i,j,k) = flux_bio(i,j,nlt_bgc_DIC(k))
     284             :             enddo
     285             :          endif
     286           0 :          if (tr_bgc_DON) then
     287           0 :             do k = 1, n_don
     288           0 :                f_don(i,j,k) = flux_bio(i,j,nlt_bgc_DON(k))
     289             :             enddo
     290             :          endif
     291           0 :          if (tr_bgc_Fe) then
     292           0 :             do k = 1, n_fep
     293           0 :                f_fep(i,j,k) = flux_bio(i,j,nlt_bgc_Fep(k))
     294             :             enddo
     295           0 :             do k = 1, n_fed
     296           0 :                f_fed(i,j,k) = flux_bio(i,j,nlt_bgc_Fed(k))
     297             :             enddo
     298             :          endif
     299           0 :          if (tr_bgc_Nit) f_nit(i,j)  = flux_bio(i,j,nlt_bgc_Nit)
     300           0 :          if (tr_bgc_Sil) f_sil(i,j)  = flux_bio(i,j,nlt_bgc_Sil)
     301           0 :          if (tr_bgc_Am)  f_amm(i,j)  = flux_bio(i,j,nlt_bgc_Am)
     302           0 :          if (tr_bgc_hum) f_hum(i,j)  = flux_bio(i,j,nlt_bgc_hum)
     303           0 :          if (tr_bgc_DMS) then
     304           0 :             f_dms(i,j) = flux_bio(i,j,nlt_bgc_DMS)
     305           0 :             f_dmsp(i,j) = flux_bio(i,j,nlt_bgc_DMSPd)
     306             :          endif
     307           0 :          if (tr_zaero) then
     308           0 :             do k = 3, n_zaero
     309           0 :                 f_dust(i,j) = f_dust(i,j) + flux_bio(i,j,nlt_zaero(k))
     310             :             enddo
     311             :          endif
     312             :       enddo
     313             :       enddo
     314             : 
     315           0 :       end subroutine bgcflux_ice_to_ocn
     316             : 
     317             : !=======================================================================
     318             : 
     319             :       end module ice_flux_bgc
     320             : 
     321             : !=======================================================================

Generated by: LCOV version 1.14-6-g40580cd