Changeset 20


Ignore:
Timestamp:
10/05/16 14:25:40 (8 years ago)
Author:
vancop
Message:

Ludivine source files

Location:
branches/2016/dev_v3.20_2016_gravity_drainage/SOURCES/source_3.20
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • branches/2016/dev_v3.20_2016_gravity_drainage/SOURCES/source_3.20/bio.com

    r4 r20  
    6666     &   jn_car,      !:  ... 
    6767     &   jn_co2,      !:  ... 
    68      &   jn_cal 
     68     &   jn_cal,      !:  ... 
     69     &   jn_aon,      !:  ... 
     70     &   jn_eon,      !:  ... 
     71     &   jn_aop,      !:  ...            
     72     &   jn_eop 
    6973 
    7074      REAL(8), DIMENSION(ntra_bio_max,nlay_bio) :: 
     
    118122     &   fdiff, 
    119123     &   csat_gas, 
    120      &   sol_gas 
     124     &   sol_gas, 
     125     &   FDSI_AD, 
     126     &   FDIN_AD, 
     127     &   FDIP_AD 
     128 
    121129 
    122130      COMMON /bioini/ 
     
    137145     &   jn_car,      !:  ... 
    138146     &   jn_co2,      !:  ... 
    139      &   jn_cal 
     147     &   jn_cal,      !:  ... 
     148     &   jn_aon,      !:  ... 
     149     &   jn_eon,      !:  ... 
     150     &   jn_aop,      !: 
     151     &   jn_eop 
    140152 
    141153      COMMON /biophyparams/ 
     
    200212     &   ln_gasflux              , !: activate gas flux to atm 
    201213     &   ln_carbon               , !: activate carbon cycle 
    202      &   ln_ikaite                 !: activate CaCO3  
    203       
     214     &   ln_ikaite               , !: activate CaCO3  
     215     &   ln_decoupNC             , !: activate N cycle disconnected from C cycle    
     216     &   ln_decoupPC 
     217 
    204218      INTEGER(4) :: 
    205219     &   nn_bio_opt              , !: type of biological model (0=NP, 1=NPD Redfield) 
     
    258272     &   e_thr_gasflux           , 
    259273     &   sursat_gas              , 
    260      &   caco3_time                
     274     &   caco3_time              , 
     275     &   ln_decoupNC             , 
     276     &   ln_decoupPC 
    261277 
    262278      !----------------------- 
     
    329345     &   lim_tem(nlay_bio)       , !: temperature limitation 
    330346     &   lim_sal(nlay_bio)       , !: salt limitation 
    331      &   chlC_bio(nlay_bio)        !: interactive chl-a / C ratio 
     347     &   chlC_bio(nlay_bio)      , !: interactive chl-a / C ratio 
     348     &   syn_N(nlay_bio)         , !: 
     349     &   lys_N(nlay_bio)         , !: 
     350     &   rsp_N(nlay_bio)         , !: 
     351     &   rem_N(nlay_bio)         , !: 
     352     &   syn_P(nlay_bio)         , !: 
     353     &   lys_P(nlay_bio)         , !: 
     354     &   rsp_P(nlay_bio)         , !: 
     355     &   rem_P(nlay_bio)         , !: 
     356     &   N_C_alg(nlay_bio)       , !: N/C ratio in algae (if ln_decoupNC = TRUE) 
     357     &   N_C_det(nlay_bio)       , !: N/C ratio in detritic matter (if ln_decoupNC = TRUE) 
     358     &   lim_din_stock(nlay_bio) , !: limitation en stock DIN 
     359     &   lim_dip_stock(nlay_bio) , !: 
     360     &   lim_dsi_stock(nlay_bio) , !: 
     361     &   P_C_alg(nlay_bio)       , !: P/C ratio in algae (if ln_decoupPC = TRUE) 
     362     &   P_C_det(nlay_bio)       , !: P/C ratio in algae (if ln_decoupPC = TRUE) 
     363     &   N_P_alg(nlay_bio)       , !: N/P ratio in algae (if ln_decoupPC = TRUE) 
     364     &   N_P_det(nlay_bio)         !: N/P ratio in algae (if ln_decoupPC = TRUE) 
    332365 
    333366      COMMON /biosources/ 
     
    345378     &   lim_tem                 , !: 
    346379     &   lim_sal                 , !: 
    347      &   chlC_bio                  !:  
     380     &   chlC_bio                , !:  
     381     &   syn_N                   , !: 
     382     &   lys_N                   , !: 
     383     &   rsp_N                   , !: 
     384     &   rem_N                   , !: 
     385     &   syn_P                   , !: 
     386     &   lys_P                   , !: 
     387     &   rsp_P                   , !: 
     388     &   rem_P                   , !: 
     389     &   N_C_alg                 , !: 
     390     &   N_C_det                 , !: 
     391     &   lim_din_stock           , !: 
     392     &   lim_dip_stock           , !: 
     393     &   lim_dsi_stock           , !: 
     394     &   P_C_alg                 , !: 
     395     &   P_C_det                 , !: 
     396     &   N_P_alg                 , !: 
     397     &   N_P_det                   !: 
     398 
    348399 
    349400      COMMON /biorad/              
     
    374425     &   po4_c                   , !: N cell quota in diatoms 
    375426     &   oxy_c                   , !: Oxygen cell quota in diatoms 
    376      &   c_molar                   !: carbon molar mass 
     427     &   c_molar                 , !: carbon molar mass 
     428     &   ksyn_N                  , !: intensity of N flux compared with C flux 
     429     &   klys_N                  , !: same 
     430     &   krsp_N                  , !: same 
     431     &   krem_N                  , !: same 
     432     &   ksyn_P                  , !: intensity of N flux compared with C flux 
     433     &   klys_P                  , !: same 
     434     &   krsp_P                  , !: same 
     435     &   krem_P                    !: same 
    377436 
    378437      COMMON /bioparams/ 
     
    381440     &   krem_bio, krsp_bio,  
    382441     &   rg_bio, rg_bac, chla_c, Estar, si_c, no3_c, po4_c, oxy_c, 
    383      &   lim_sal_wid, lim_sal_smax, c_molar 
    384  
     442     &   lim_sal_wid, lim_sal_smax, c_molar, ksyn_N, klys_N,  
     443     &   krsp_N, krem_N, ksyn_P, klys_P, krsp_P,  
     444     &   krem_P 
     445  
     446 
  • branches/2016/dev_v3.20_2016_gravity_drainage/SOURCES/source_3.20/ice_bio_ini.f

    r4 r20  
    6262 
    6363      IF ( c_bio_model .EQ. 'KRILL' ) THEN 
    64          ntra_bio = 21 
     64         ntra_bio = 23 
    6565      ENDIF 
    6666! 
     
    117117      jn_arg = 12 ! 17 
    118118      jn_cal = 13 ! 21 
     119      jn_aon = 14 
     120      jn_eon = 15 
     121      jn_aop = 16 
     122      jn_eop = 17 
    119123 
    120124      ! Assign Tracer names 
     
    132136      biotr_i_nam(jn_oxy) = 'Oxy'//zblank 
    133137      biotr_i_nam(jn_nit) = 'Nit'//zblank 
     138      biotr_i_nam(jn_aon) = 'AoN'//zblank 
     139      biotr_i_nam(jn_eon) = 'eoN'//zblank 
     140      biotr_i_nam(jn_aop) = 'AoP'//zblank 
     141      biotr_i_nam(jn_eop) = 'eoP'//zblank 
    134142 
    135143! 
     
    167175      READ(numtra,*) 
    168176 
    169       DO jn_read = 1, 13 
     177      DO jn_read = 1, 17 
    170178 
    171179         READ(numtra,*)  c_read_name(jn_read), zchar, i_dummy1, zdummy2, 
     
    248256      flag_adsorb(jn) = .false. 
    249257      flag_diff(jn)   = .false. 
    250       nn_remp(jn)     = 1 
     258      nn_remp(jn)     = 2 
    251259      biotr_i_typ(jn) = 'prc'//zblank 
    252260      biotr_i_uni(jn) = 'mmol_m3'//zblank 
     
    259267      flag_adsorb(jn) = .false. 
    260268      flag_diff(jn)   = .false. 
    261       nn_remp(jn)     = 1 
     269      nn_remp(jn)     = 2 
     270      biotr_i_typ(jn) = 'prc'//zblank 
     271      biotr_i_uni(jn) = 'mmol_m3'//zblank 
     272 
     273      !-------------------------------------- 
     274      ! AoN : Ice algae organic N 
     275      !-------------------------------------- 
     276      jn = jn_aon 
     277      flag_active(jn) = .true. 
     278      flag_adsorb(jn) = .false. 
     279      flag_diff(jn)   = .false. 
     280      nn_remp(jn)     = 2 
     281      biotr_i_typ(jn) = 'prc'//zblank 
     282      biotr_i_uni(jn) = 'mmol_m3'//zblank 
     283 
     284      !-------------------------------------- 
     285      ! eoN : Detritus organic N 
     286      !-------------------------------------- 
     287      jn = jn_eon 
     288      flag_active(jn) = .true. 
     289      flag_adsorb(jn) = .false. 
     290      flag_diff(jn)   = .false. 
     291      nn_remp(jn)     = 2 
     292      biotr_i_typ(jn) = 'prc'//zblank 
     293      biotr_i_uni(jn) = 'mmol_m3'//zblank 
     294 
     295      !-------------------------------------- 
     296      ! AoP : Ice algae organic P 
     297      !-------------------------------------- 
     298      jn = jn_aop 
     299      flag_active(jn) = .true. 
     300      flag_adsorb(jn) = .false. 
     301      flag_diff(jn)   = .false. 
     302      nn_remp(jn)     = 2 
     303      biotr_i_typ(jn) = 'prc'//zblank 
     304      biotr_i_uni(jn) = 'mmol_m3'//zblank 
     305 
     306      !-------------------------------------- 
     307      ! eoP : Detritus organic P 
     308      !-------------------------------------- 
     309      jn = jn_eop 
     310      flag_active(jn) = .true. 
     311      flag_adsorb(jn) = .false. 
     312      flag_diff(jn)   = .false. 
     313      nn_remp(jn)     = 2 
    262314      biotr_i_typ(jn) = 'prc'//zblank 
    263315      biotr_i_uni(jn) = 'mmol_m3'//zblank 
  • branches/2016/dev_v3.20_2016_gravity_drainage/SOURCES/source_3.20/ice_bio_param.f

    r4 r20  
    9393      READ(numbio,*) ln_ikaite   ! activate ikaite 
    9494      READ(numbio,*) 
     95      READ(numbio,*) ln_decoupNC ! N cycle diconnected from C cycle 
     96      READ(numbio,*) 
     97      READ(numbio,*) ln_decoupPC ! P cycle diconnected from C cycle       
     98      READ(numbio,*) 
    9599      READ(numbio,*) 
    96100      READ(numbio,*) 
     
    147151      READ(numbio,*) 
    148152      READ(numbio,*) frem_bio    ! fraction of diatom loss that is remineralized in Si 
     153      READ(numbio,*) 
     154      READ(numbio,*) ksyn_N      ! intensity of N flux VS C flux 
     155      READ(numbio,*) 
     156      READ(numbio,*) klys_N 
     157      READ(numbio,*) 
     158      READ(numbio,*) krsp_N 
     159      READ(numbio,*) 
     160      READ(numbio,*) krem_N 
     161      READ(numbio,*) 
     162      READ(numbio,*) ksyn_P 
     163      READ(numbio,*) 
     164      READ(numbio,*) klys_P 
     165      READ(numbio,*) 
     166      READ(numbio,*) krsp_P 
     167      READ(numbio,*) 
     168      READ(numbio,*) krem_P 
    149169      READ(numbio,*) 
    150170      READ(numbio,*) 
     
    219239      WRITE(numout,*) ' ln_carbon : ', ln_carbon 
    220240      WRITE(numout,*) ' ln_ikaite : ', ln_ikaite 
     241      WRITE(numbio,*) ' ln_decoupNC:', ln_decoupNC 
    221242      WRITE(numout,*) 
    222243      WRITE(numout,*) ' nn_init   : ', nn_init 
     
    234255      WRITE(numout,*) ' cco2_ini  : ', cco2_ini 
    235256      WRITE(numout,*) ' ccal_ini  : ', ccal_ini 
     257      WRITE(numbio,*) ' caon_ini  : ', caon_ini 
     258      WRITE(numbio,*) ' ceon_ini  : ', ceon_ini 
     259      WRITE(numbio,*) ' caop_ini  : ', caop_ini 
     260      WRITE(numbio,*) ' ceop_ini  : ', ceop_ini 
    236261      WRITE(numout,*) ' cno3_w    : ', cno3_w 
    237262      WRITE(numout,*) ' cpo4_w    : ', cpo4_w 
     
    247272      WRITE(numout,*) ' cco2_w    : ', cco2_w 
    248273      WRITE(numout,*) ' ccal_w    : ', ccal_w 
     274      WRITE(numbio,*) ' caon_w    : ', caon_w 
     275      WRITE(numbio,*) ' ceon_w    : ', ceon_w 
    249276      WRITE(numout,*) ' mr_oxy    : ', mr_oxy 
    250277      WRITE(numout,*) ' mr_nit    : ', mr_nit 
     
    271298      WRITE(numout,*) ' krsp_bio  : ', krsp_bio  
    272299      WRITE(numout,*) ' krem_bio  : ', krem_bio  
    273       WRITE(numout,*) ' frem_bio  : ', frem_bio  
     300      WRITE(numout,*) ' frem_bio  : ', frem_bio 
     301      WRITE(numout,*) ' ksyn_N    : ', ksyn_N 
     302      WRITE(numout,*) ' klys_N    : ', klys_N 
     303      WRITE(numout,*) ' krsp_N    : ', krsp_N 
     304      WRITE(numout,*) ' krem_N    : ', krem_N 
     305      WRITE(numout,*) ' ksyn_P    : ', ksyn_P 
     306      WRITE(numout,*) ' klys_P    : ', klys_P 
     307      WRITE(numout,*) ' krsp_P    : ', krsp_P 
     308      WRITE(numout,*) ' krem_P    : ', krem_P  
    274309      WRITE(numout,*) ' nn_phs    : ', nn_phs   
    275310      WRITE(numout,*) ' ek_bio    : ', ek_bio 
  • branches/2016/dev_v3.20_2016_gravity_drainage/SOURCES/source_3.20/ice_bio_sms.f

    r4 r20  
    8282!-----------------------------------------------------------------------------! 
    8383! 
     84      consN = 0 
     85 
     86      DO layer = layer_00, nlay_bio  
     87          
     88         trucN = cbu_i_bio(jn_din,layer) + cbu_i_bio(jn_eon,layer) 
     89     &              + cbu_i_bio(jn_aon,layer) + consN 
     90         consN    = trucN         
     91 
     92      END DO 
     93 
     94      WRITE(numout,*) ' Conservation BIO N :', consN 
     95 
    8496 
    8597      ! Reference of the upper layer 
     
    246258      END DO 
    247259 
    248       ! Remineralization  
    249       IF ( ln_rem ) THEN 
    250  
    251          SELECT CASE ( nn_bio_opt )  
    252  
    253          CASE(0) ! NP 
    254  
    255             rem_bio(layer_00:nlay_bio) = frem_bio *  
    256      &                                   lys_bio(layer_00:nlay_bio) 
    257  
    258          CASE(1) ! NPDr 
    259  
    260             IF ( nn_rem .GE. 1 )   ! no T-dependence 
    261      &         rem_bio(layer_00:nlay_bio) = krem_bio *  
    262      &                          cbu_i_bio(jn_eoc,layer_00:nlay_bio) 
    263  
    264           
    265             IF ( nn_rem .EQ. 2 )   ! T-dependence 
    266      &         rem_bio(layer_00:nlay_bio) = rem_bio(layer_00:nlay_bio) * 
    267      &                       EXP( rg_bac * tc_bio(layer_00:nlay_bio) ) 
    268  
    269          END SELECT 
    270  
    271       ENDIF 
    272  
     260      DO layer = layer_00, nlay_bio 
     261 
     262         IF ( ln_rem ) THEN 
     263 
     264            SELECT CASE ( nn_bio_opt )  
     265 
     266               CASE(0) ! NP 
     267 
     268                  rem_bio(layer) = frem_bio *  
     269     &                             lys_bio(layer) 
     270 
     271               CASE(1) ! NPD 
     272  
     273                  IF ( nn_rem .EQ. 1 )   ! no T-dependence 
     274     &               rem_bio(layer) = krem_bio *  
     275     &                                cbu_i_bio(jn_eoc,layer) 
     276 
     277                  IF ( nn_rem .EQ. 2 )   ! T-dependence 
     278     &               rem_bio(layer) = krem_bio * cbu_i_bio(jn_eoc,layer) 
     279     &                                * EXP( rg_bac * tc_bio(layer) ) 
     280      
     281            END SELECT 
     282 
     283         ENDIF 
     284 
     285      END DO 
    273286 
    274287      !------------------------------------------------------------------------ 
    275288      ! 2.3 Diatom Synthesis 
    276289      !------------------------------------------------------------------------ 
     290      zeps = 0.000000001 
    277291 
    278292      DO layer = layer_00, nlay_bio 
    279     
     293 
    280294         IF ( ln_syn ) THEN 
    281295            ! raw synthesis (in s-1) 
     
    287301            zsyn1 = z_syn * cbu_i_bio(jn_aoc,layer) ! normal carbon production rate (mmolC/m3/s) 
    288302            zsyn2 = zsyn1;    zsyn3 = zsyn1;    zsyn4 = zsyn1 
     303 
    289304    
    290305            IF ( ln_lim_dsi )                  ! prevent exhaustion of Si 
    291306     &         zsyn2 = cbu_i_bio(jn_dsi,layer) / ddtb / si_c - zeps  
    292307   
    293             IF ( ln_lim_no3 )                  ! prevent exhaustion of N 
    294      &         zsyn3 = cbu_i_bio(jn_din,layer) / ddtb / no3_c - zeps 
    295    
    296             IF ( ln_lim_po4 )                  ! prevent exhaustion of P 
    297      &         zsyn4 = cbu_i_bio(jn_dip,layer) / ddtb / po4_c - zeps 
    298     
    299             ! nutrient stock-limited PP rate 
     308            IF (ln_decoupNC) THEN ! C aussi limité en stock par DIN 
     309               zC  = MAX (cbu_i_bio(jn_aoc,layer) , zeps ) 
     310               zN  = MAX (cbu_i_bio(jn_aon,layer) , zeps ) 
     311               N_C_alg(layer)  = zN / zC 
     312!              N_C_alg(layer) = 0.14  
     313               zsyn3 = cbu_i_bio(jn_din,layer) / (ddtb*N_C_alg(layer)) 
     314     &                 - zeps 
     315            ELSE  
     316               zsyn3 = cbu_i_bio(jn_din,layer) / (ddtb * no3_c) - zeps 
     317            ENDIF 
     318 
     319 
     320            IF (ln_decoupPC) THEN ! C aussi limité en stock par DIP 
     321               zC  = MAX (cbu_i_bio(jn_aoc,layer) , zeps ) 
     322               zP  = MAX (cbu_i_bio(jn_aop,layer) , zeps ) 
     323               P_C_alg(layer)  = zP / zC 
     324!              P_C_alg(layer) = 0.0094  
     325               zsyn4 = cbu_i_bio(jn_dip,layer)/(ddtb * P_C_alg(layer)) 
     326     &                 - zeps 
     327            ELSE 
     328               zsyn4 = cbu_i_bio(jn_dip,layer) / ddtb / po4_c - zeps 
     329            ENDIF 
     330 
     331 
     332             ! nutrient stock-limited PP rate 
    300333            syn_bio(layer) = MIN( zsyn1, zsyn2, zsyn3, zsyn4 )  
    301334 
     
    312345    
    313346 
    314       END DO ! layer 
    315  
    316       !------------------------------------------------------------------------ 
    317       ! 2.4 Update reservoirs 
    318       !------------------------------------------------------------------------ 
    319  
    320       DO layer = layer_00, nlay_bio 
     347         ! ------------------------- 
     348         ! -- Limitations en stocks 
     349         ! ------------------------ 
     350 
     351         IF (ln_decoupNC) THEN 
     352             zzdin = syn_bio(layer) / (((1/N_C_alg(layer)) * 
     353     &               (cbu_i_bio(jn_din,layer)/ddtb)) - zeps) 
     354 
     355         ELSE  
     356             zzdin = syn_bio(layer) / (((1/no3_c) * 
     357     &               (cbu_i_bio(jn_din,layer)/ddtb)) - zeps) 
     358         ENDIF 
     359 
     360 
     361         IF (ln_decoupPC) THEN 
     362             zzpo4 = syn_bio(layer) / (((1/P_C_alg(layer)) * 
     363     &               (cbu_i_bio(jn_dip,layer)/ddtb)) - zeps) 
     364 
     365         ELSE 
     366             zzpo4 = syn_bio(layer) / (((1/po4_c) * 
     367     &               (cbu_i_bio(jn_dip,layer)/ddtb)) - zeps) 
     368         ENDIF 
     369 
     370 
     371 
     372         zzsi  = syn_bio(layer) / (((1/si_c) * 
     373     &           (cbu_i_bio(jn_dsi,layer)/ddtb)) - zeps) 
     374 
     375 
     376         IF ( zzdin .EQ. 1 ) THEN 
     377            lim_din_stock(layer) = 1   !DIN est limitant en stocks 
     378         ELSE 
     379            lim_din_stock(layer) = 0   !DIN PAS limitant en stocks 
     380         ENDIF 
     381 
     382         IF ( zzpo4 .EQ. 1 ) THEN 
     383            lim_dip_stock(layer) = 1 
     384         ELSE 
     385            lim_dip_stock(layer) = 0 
     386         ENDIF 
     387 
     388         IF ( zzsi .EQ. 1) THEN 
     389            lim_dsi_stock(layer) = 1 
     390         ELSE 
     391            lim_dsi_stock(layer) = 0 
     392         ENDIF 
     393 
     394 
     395      !------------------------------------------------------------------------ 
     396      ! N cycle  
     397      !------------------------------------------------------------------------ 
     398 
     399 
     400         IF ( ln_decoupNC ) THEN 
     401 
     402            !--- Nitrogen carbon algal ratio 
     403            zC    = MAX( cbu_i_bio(jn_aoc,layer) , zeps ) 
     404            zN    = MAX( cbu_i_bio(jn_aon,layer) , zeps ) 
     405            N_C_alg(layer)  = zN / zC 
     406!           zN_C  = MIN( cbu_i_bio(jn_aon,layer) / zC , N_C_max ) 
     407!           zN_C  = MAX( N_C_min , zN_C ) 
     408!           N_C_alg(layer) = zN_C  ! => marche pas 
     409!            N_C_alg(layer) = 0.14 
     410 
     411            !--- Nitrogen carbon detritic ratio 
     412            zC    = MAX( cbu_i_bio(jn_eoc,layer), zeps ) 
     413            zNd   = MAX( cbu_i_bio(jn_eon,layer), zeps )  
     414            N_C_det(layer) = zNd / zC 
     415!            N_C_det(layer) = 0.14 
     416 
     417            !--- Process rates 
     418            syn_N(layer) = N_C_alg(layer) * ksyn_N * syn_bio(layer) 
     419            rsp_N(layer) = N_C_alg(layer) * krsp_N * rsp_bio(layer) 
     420            lys_N(layer) = N_C_alg(layer) * klys_N * lys_bio(layer) 
     421            rem_N(layer) = N_C_det(layer) * krem_N * rem_bio(layer) 
     422 
     423 
     424         ENDIF ! ln_decoupNC 
     425 
     426      !------------------------------------------------------------------------ 
     427      ! P cycle  
     428      !------------------------------------------------------------------------ 
     429 
     430 
     431         IF ( ln_decoupPC ) THEN 
     432 
     433            !--- P carbon algal ratio 
     434            zC    = MAX( cbu_i_bio(jn_aoc,layer) , zeps ) 
     435            zP    = MAX( cbu_i_bio(jn_aop,layer) , zeps ) 
     436            P_C_alg(layer)  = zP / zC 
     437 
     438            !--- P carbon detritic ratio 
     439            zC    = MAX( cbu_i_bio(jn_eoc,layer), zeps ) 
     440            zPd   = MAX( cbu_i_bio(jn_eop,layer), zeps ) 
     441            P_C_det(layer) = zPd / zC 
     442 
     443            !--- Process rates 
     444            syn_P(layer) = P_C_alg(layer) * ksyn_P * syn_bio(layer) 
     445            rsp_P(layer) = P_C_alg(layer) * krsp_P * rsp_bio(layer) 
     446            lys_P(layer) = P_C_alg(layer) * klys_P * lys_bio(layer) 
     447            rem_P(layer) = P_C_det(layer) * krem_P * rem_bio(layer) 
     448 
     449         ENDIF ! ln_decoupPC 
     450 
     451 
     452         zPa   = MAX( cbu_i_bio(jn_aop,layer) , zeps ) 
     453         zNt   = MAX( cbu_i_bio(jn_aon,layer) , zeps ) 
     454         N_P_alg(layer)  = zNt / zPa 
     455         zPe   = MAX( cbu_i_bio(jn_eop,layer) , zeps ) 
     456         zNtd  = MAX( cbu_i_bio(jn_eon,layer) , zeps ) 
     457         N_P_det(layer)  = zNtd / zPe 
     458 
     459 
     460 
     461      !------------------------------------------------------------------------ 
     462      ! 2.4 Update reservoirs (including N cycle reservoirs) 
     463      !------------------------------------------------------------------------ 
     464 
     465        ! ------------------------------------------------------- 
     466        ! -- 1) Increments 
     467        ! ------------------------------------------------------ 
     468 
    321469 
    322470         ! DSi uptake 
     
    325473         zd_dsi2 = - cbu_i_bio(jn_dsi,layer)        ! Maximum DSi uptake 
    326474         zd_dsi  = MAX ( zd_dsi1, zd_dsi2 ) 
    327  
    328          ! NO3 uptake 
    329          zd_no31 = no3_c * ( rem_bio(layer) + 
    330      &             rsp_bio(layer) - syn_bio(layer) ) * ddtb 
    331          zd_no32 = - cbu_i_bio(jn_din,layer)        ! Max NO3 uptake 
    332          zd_no3  = MAX ( zd_no31, zd_no32 ) 
    333  
    334          ! update PO4 
    335          zd_po41 = po4_c * ( rem_bio(layer) + 
    336      &             rsp_bio(layer) - syn_bio(layer) ) * ddtb 
    337          zd_po42 = - cbu_i_bio(jn_dip,layer)        ! Max PO4 uptake 
    338          zd_po4  = MAX ( zd_po41, zd_po42 ) 
    339475 
    340476         ! update algae 
     
    350486            zd_eoc2 = - cbu_i_bio(jn_eoc,layer)     ! Max detrital carbon loss 
    351487            zd_eoc  = MAX( zd_eoc1, zd_eoc2 ) 
    352          ENDIF 
     488         ENDIF ! nn_bio_opt 
     489 
     490 
     491         IF (ln_decoupNC) THEN 
     492 
     493            !--- Increments 
     494            zd_din1 = ( rsp_N(layer) - syn_N(layer) + 
     495     &                  rem_N(layer) ) * ddtb 
     496            zd_din2 = - cbu_i_bio(jn_din,layer) !PEU PAS EPUISER PLUS 
     497                                                !QUE CE QUIL Y A !!!! 
     498            zd_din  = MAX ( zd_din1, zd_din2 )  ! interessant dans le cas 
     499                                                ! ou zd_din1 est négatif 
     500                                                ! zd_din1 peut pas être 
     501                                                ! plus petit que zd_din2  
     502 
     503            zd_aon1 = ( syn_N(layer) - rsp_N(layer) - lys_N(layer) ) * 
     504     &                ddtb 
     505            zd_aon2 = - cbu_i_bio(jn_aon,layer) 
     506            zd_aon  = MAX ( zd_aon1, zd_aon2 ) 
     507 
     508            zd_eon1 = ( lys_N(layer) - rem_N(layer) ) * ddtb 
     509            zd_eon2 = - cbu_i_bio(jn_eon,layer) 
     510            zd_eon  = MAX ( zd_eon1, zd_eon2 ) 
     511 
     512            !--- Correct rates to prevent leaks 
     513            IF ( zd_din .EQ. zd_din2 ) 
     514     &         syn_N(layer) = MIN( syn_N(layer), -zd_din2/ddtb) 
     515 
     516            IF ( zd_aon .EQ. zd_aon2 ) 
     517     &         lys_N(layer) = MIN( lys_N(layer), -zd_aon2/ddtb) 
     518 
     519            IF ( zd_eon .EQ. zd_eon2 ) 
     520     &         rem_N(layer) = MIN( rem_N(layer), -zd_eon2/ddtb) 
     521 
     522 
     523         ELSE 
     524            zd_din1 = no3_c * ( rem_bio(layer) + 
     525     &                rsp_bio(layer) - syn_bio(layer) ) * ddtb 
     526            zd_din2 = - cbu_i_bio(jn_din,layer)        ! Max NO3 uptake 
     527            zd_din  = MAX ( zd_din1, zd_din2 )      
     528              
     529         ENDIF ! ln_decoupNC 
     530 
     531!!!!!!!!!!!!!!!!!! 
     532 
     533         IF (ln_decoupPC) THEN 
     534 
     535            !--- Increments 
     536            zd_dip1 = ( rsp_P(layer) - syn_P(layer) + 
     537     &                  rem_P(layer) ) * ddtb 
     538            zd_dip2 = - cbu_i_bio(jn_dip,layer) !PEU PAS EPUISER PLUS 
     539                                                !QUE CE QUIL Y A !!!! 
     540            zd_dip  = MAX ( zd_dip1, zd_dip2 )  ! interessant dans le 
     541                                                ! ou zd_din1 est négatif 
     542                                                ! zd_din1 peut pas être 
     543                                                ! plus petit que zd_din2  
     544 
     545            zd_aop1 = ( syn_P(layer) - rsp_P(layer) - lys_P(layer) ) * 
     546     &                ddtb 
     547            zd_aop2 = - cbu_i_bio(jn_aop,layer) 
     548            zd_aop  = MAX ( zd_aop1, zd_aop2 ) 
     549 
     550            zd_eop1 = ( lys_P(layer) - rem_P(layer) ) * ddtb 
     551            zd_eop2 = - cbu_i_bio(jn_eop,layer) 
     552            zd_eop  = MAX ( zd_eop1, zd_eop2 ) 
     553 
     554            !--- Correct rates to prevent leaks 
     555            IF ( zd_dip .EQ. zd_dip2 ) 
     556     &         syn_P(layer) = MIN( syn_P(layer), -zd_dip2/ddtb) 
     557 
     558            IF ( zd_aop .EQ. zd_aop2 ) 
     559     &         lys_P(layer) = MIN( lys_P(layer), -zd_aop2/ddtb) 
     560 
     561            IF ( zd_eop .EQ. zd_eop2 ) 
     562     &         rem_P(layer) = MIN( rem_P(layer), -zd_eop2/ddtb) 
     563 
     564 
     565         ELSE 
     566            zd_dip1 = po4_c * ( rem_bio(layer) + 
     567     &                rsp_bio(layer) - syn_bio(layer) ) * ddtb 
     568            zd_dip2 = - cbu_i_bio(jn_dip,layer)        ! Max DIP uptake 
     569            zd_dip  = MAX ( zd_dip1, zd_dip2 ) 
     570 
     571         ENDIF ! ln_decoupPC 
     572 
     573 
     574        ! ------------------------------------------------------- 
     575        ! -- 2) Add Increments 
     576        ! ------------------------------------------------------ 
     577 
     578         IF (ln_decoupNC) THEN 
     579            cbu_i_bio(jn_din,layer) = cbu_i_bio(jn_din,layer) + zd_din 
     580            cbu_i_bio(jn_aon,layer) = cbu_i_bio(jn_aon,layer) + zd_aon 
     581            cbu_i_bio(jn_eon,layer) = cbu_i_bio(jn_eon,layer) + zd_eon 
     582         ELSE 
     583            cbu_i_bio(jn_din,layer) = cbu_i_bio(jn_din,layer) + zd_din 
     584         ENDIF 
     585 
     586         IF (ln_decoupPC) THEN 
     587            cbu_i_bio(jn_dip,layer) = cbu_i_bio(jn_dip,layer) + zd_dip 
     588            cbu_i_bio(jn_aop,layer) = cbu_i_bio(jn_aop,layer) + zd_aop 
     589            cbu_i_bio(jn_eop,layer) = cbu_i_bio(jn_eop,layer) + zd_eop 
     590         ELSE 
     591            cbu_i_bio(jn_dip,layer) = cbu_i_bio(jn_dip,layer) + zd_dip 
     592         ENDIF 
     593 
    353594 
    354595         cbu_i_bio(jn_dsi,layer) = cbu_i_bio(jn_dsi,layer) + zd_dsi 
    355          cbu_i_bio(jn_din,layer) = cbu_i_bio(jn_din,layer) + zd_no3 
    356          cbu_i_bio(jn_dip,layer) = cbu_i_bio(jn_dip,layer) + zd_po4 
    357596         cbu_i_bio(jn_aoc,layer) = cbu_i_bio(jn_aoc,layer) + zd_daf 
    358597 
    359598         IF ( nn_bio_opt .GE. 1 )  
    360599     &      cbu_i_bio(jn_eoc,layer) = cbu_i_bio(jn_eoc,layer) + zd_eoc 
     600 
    361601 
    362602         IF ( ln_write_bio ) THEN 
     
    375615            WRITE(numout,*) ' lim_tem   : ', lim_tem(layer) 
    376616            WRITE(numout,*) ' lim_sal   : ', lim_sal(layer) 
     617            WRITE(numout,*) ' lim_din_stock : ', lim_din_stock(layer) 
     618            WRITE(numout,*) ' lim_dip_stock : ', lim_dip_stock(layer) 
     619            WRITE(numout,*) ' lim_dsi_stock : ', lim_dsi_stock(layer) 
    377620            WRITE(numout,*) 
    378621            WRITE(numout,*) ' tc_bio    : ', tc_bio(layer)   
     
    381624            WRITE(numout,*) 
    382625            WRITE(numout,*) ' zd_dsi    : ', zd_dsi 
    383             WRITE(numout,*) ' zd_no3    : ', zd_no3 
    384626            WRITE(numout,*) ' zd_po4    : ', zd_po4 
    385627            WRITE(numout,*) ' zd_daf    : ', zd_daf 
    386628            WRITE(numout,*) ' zd_eoc    : ', zd_eoc 
     629            WRITE(numout,*) ' zd_din    : ', zd_din 
    387630            WRITE(numout,*) 
    388631            WRITE(numout,*) ' dSi       : ', cbu_i_bio(jn_dsi,layer) 
    389             WRITE(numout,*) ' dIN       : ', cbu_i_bio(jn_din,layer) 
     632            WRITE(numout,*) ' dIN       : ', cbu_i_bio(jn_din,layer)  
    390633            WRITE(numout,*) ' dIP       : ', cbu_i_bio(jn_dip,layer) 
    391634            WRITE(numout,*) ' AoC       : ', cbu_i_bio(jn_aoc,layer) 
    392635            WRITE(numout,*) ' eoC       : ', cbu_i_bio(jn_eoc,layer) 
    393             WRITE(numout,*) 
     636            WRITE(numout,*) ' krem_N    : ', krem_N 
     637 
     638         
     639            IF (ln_decoupNC) THEN  
     640               WRITE(numout,*) ' syn_N    : ', syn_N(layer) 
     641               WRITE(numout,*) ' rsp_N    : ', rsp_N(layer) 
     642               WRITE(numout,*) ' lys_N    : ', lys_N(layer) 
     643               WRITE(numout,*) ' rem_N    : ', rem_N(layer) 
     644               WRITE(numout,*) 
     645               WRITE(numout,*) ' zd_aon    : ', zd_aon 
     646               WRITE(numout,*) ' zd_eon    : ', zd_eon 
     647               WRITE(numout,*) 
     648               WRITE(numout,*) ' AoN       : ', cbu_i_bio(jn_aon,layer) 
     649               WRITE(numout,*) ' eoN       : ', cbu_i_bio(jn_eon,layer) 
     650               WRITE(numout,*) 
     651               WRITE(numout,*) ' N_C_alg   : ', N_C_alg(layer) 
     652               WRITE(numout,*) ' N_C_det   : ', N_C_det(layer) 
     653            ENDIF ! ln_decoupNC 
    394654 
    395655         ENDIF ! ln_write_bio 
    396656 
    397657      END DO ! layer 
     658    
     659 
    398660 
    399661      !------------------------------------------------------------------------ 
     
    408670     &                  .AND. flag_active(jn_alk) ) THEN 
    409671 
    410             zd_dic1   = - zncp * ddtb 
     672            zd_dic1   = - zncp * ddtb                  !! Bizarre 
    411673            zd_dic2   = - cbu_i_bio(jn_dic,layer) 
    412674            zd_dic    = MAX( zd_dic1 , zd_dic2 ) 
    413675 
    414             zd_alk1   =   no3_c * zncp * ddtb 
     676            zd_alk1   =   no3_c * zncp * ddtb           !! Bizarre 
    415677            zd_alk2   = - cbu_i_bio(jn_alk,layer) 
    416678            zd_alk    = MAX( zd_alk1 , zd_alk2 ) 
  • branches/2016/dev_v3.20_2016_gravity_drainage/SOURCES/source_3.20/ice_gas.f

    r4 r20  
    4848! 
    4949 
     50 
    5051      !--- Gas concentrations 
    5152      DO jn = 1, ntra_bio 
     
    5960         ENDIF 
    6061 
    61          ! Carbonate chemistry 
    62          IF ( ln_carbon ) CALL ice_carb_chem 
     62      END DO 
     63 
     64      ! Carbonate chemistry 
     65      IF ( ln_carbon ) CALL ice_carb_chem 
     66 
     67      DO jn = 1, ntra_bio 
    6368 
    6469         IF ( ( flag_active(jn)            ) .AND. 
  • branches/2016/dev_v3.20_2016_gravity_drainage/SOURCES/source_3.20/ice_output.f

    r4 r20  
    211211     .                   "kgNaCl/dm3","time","-","-","-" ) 
    212212         WRITE(numout,*) ' oce_sal dimension created ' 
     213 
     214         CALL CF_CREATE_VAR("divflux_AD","Sal flux divergence", 
     215     .                   "...","time","z_i_p","-","-" ) 
     216         WRITE(numout,*) ' divflux_AD created ' 
     217 
     218         CALL CF_CREATE_VAR("FDSI_AD","DSI flux for Advection", 
     219     .                   "mmol/m2/s","time","-","-","-" ) 
     220         WRITE(numout,*) ' FDSI_AD created ' 
     221 
     222         CALL CF_CREATE_VAR("FDIN_AD","DIN flux for Advection", 
     223     .                   "mmol/m2/s","time","-","-","-" ) 
     224         WRITE(numout,*) ' FDIN_AD created ' 
     225 
     226         CALL CF_CREATE_VAR("FDIP_AD","DIP flux for Advection", 
     227     .                   "mmol/m2/s","time","-","-","-" ) 
     228         WRITE(numout,*) ' FDIP_AD created ' 
     229 
    213230 
    214231         ! Forcing 
     
    421438         WRITE(numout,*) ' ChlC_bio created ' 
    422439 
     440        ! N_C_alg 
     441         CALL CF_CREATE_VAR("N_C_alg", "N_C_alg", 
     442     &        "mmol.m-3","time","z_i_b","-","-") 
     443         WRITE(numout,*) ' N_C_alg created ' 
     444 
     445        ! N_C_det 
     446         CALL CF_CREATE_VAR("N_C_det", "N_C_det", 
     447     &        "mmol.m-3","time","z_i_b","-","-") 
     448         WRITE(numout,*) ' N_C_det created ' 
     449 
     450        ! P_C_alg 
     451         CALL CF_CREATE_VAR("P_C_alg", "P_C_alg", 
     452     &        "mmol.m-3","time","z_i_b","-","-") 
     453         WRITE(numout,*) ' P_C_alg created ' 
     454 
     455        ! P_C_det 
     456         CALL CF_CREATE_VAR("P_C_det", "P_C_det", 
     457     &        "mmol.m-3","time","z_i_b","-","-") 
     458         WRITE(numout,*) ' P_C_det created ' 
     459 
     460        ! N_P_alg 
     461         CALL CF_CREATE_VAR("N_P_alg", "N_P_alg", 
     462     &        "mmol.m-3","time","z_i_b","-","-") 
     463         WRITE(numout,*) ' N_P_alg created ' 
     464 
     465        ! N_P_det 
     466         CALL CF_CREATE_VAR("N_P_det", "N_P_det", 
     467     &        "mmol.m-3","time","z_i_b","-","-") 
     468         WRITE(numout,*) ' N_P_det created ' 
     469 
     470 
     471 
    423472         CALL CF_CREATE_VAR("Chla_phy", "Chlorophyll a on phy grid", 
    424473     &        "mmol.m-3","time","z_i_p","-","-" ) 
     
    492541     .                   "-","time","z_i_b","-","-" ) 
    493542         WRITE(numout,*) ' Sal limitation created ' 
    494           
     543 
     544         CALL CF_CREATE_VAR("lim_din_stock","DIN stock limitation", 
     545     .                   "-","time","z_i_b","-","-" ) 
     546         WRITE(numout,*) ' DIN stock limitation created ' 
     547 
     548         CALL CF_CREATE_VAR("lim_dip_stock","DIP stock limitation", 
     549     .                   "-","time","z_i_b","-","-" ) 
     550         WRITE(numout,*) ' DIP stock limitation created ' 
     551 
     552         CALL CF_CREATE_VAR("lim_dsi_stock","DSI stock limitation", 
     553     .                   "-","time","z_i_b","-","-" ) 
     554         WRITE(numout,*) ' DSI stock limitation created ' 
     555 
    495556         CALL CF_CREATE_VAR("divf_si","Flux divergence silicate", 
    496557     .                   "mmol Si m-3 s-1","time","z_i_b","-","-" ) 
     
    593654     &               1, 1, 1, REAL(oce_sal) ) 
    594655 
     656 
     657      CALL CF_WRITE (filenc, 'FDSI_AD', numit-nstart+1, 
     658     &               1, 1, 1, REAL(FDSI_AD) ) 
     659 
     660      CALL CF_WRITE (filenc, 'FDIN_AD', numit-nstart+1, 
     661     &               1, 1, 1, REAL(FDIN_AD) ) 
     662 
     663      CALL CF_WRITE (filenc, 'FDIP_AD', numit-nstart+1, 
     664     &               1, 1, 1, REAL(FDIP_AD) ) 
     665 
     666 
     667 
     668 
    595669      ! Forcing 
    596670      !--------- 
     
    703777      CALL CF_WRITE (filenc, 't_s ', numit-nstart+1, nlay_s, 1, 1,  
    704778     &               dummy_vector ) 
     779 
     780      ! sal divergence flux AD 
     781      DO layer = 1, nlay_i 
     782         dummy_vector(layer) = REAL(divflux_AD(layer)) 
     783      END DO 
     784      CALL CF_WRITE (filenc, 'divflux_AD', numit-nstart+1, 
     785     &               nlay_i, 1, 1, dummy_vector) 
     786 
     787 
    705788 
    706789      ! Radiative transfer 
     
    916999     &               dummy_vector ) 
    9171000 
     1001      ! N_C_alg             
     1002      DO layer = 1, nlay_bio 
     1003         dummy_vector(layer) = REAL(N_C_alg(layer)) 
     1004      END DO 
     1005      CALL CF_WRITE (filenc, 'N_C_alg', numit-nstart+1, nlay_i, 1, 1, 
     1006     &               dummy_vector ) 
     1007 
     1008      ! N_C_det             
     1009      DO layer = 1, nlay_bio 
     1010         dummy_vector(layer) = REAL(N_C_det(layer)) 
     1011      END DO 
     1012      CALL CF_WRITE (filenc, 'N_C_det', numit-nstart+1, nlay_i, 1, 1, 
     1013     &               dummy_vector ) 
     1014 
     1015      ! P_C_alg             
     1016      DO layer = 1, nlay_bio 
     1017         dummy_vector(layer) = REAL(P_C_alg(layer)) 
     1018      END DO 
     1019      CALL CF_WRITE (filenc, 'P_C_alg', numit-nstart+1, nlay_i, 1, 1, 
     1020     &               dummy_vector ) 
     1021 
     1022      ! P_C_det             
     1023      DO layer = 1, nlay_bio 
     1024         dummy_vector(layer) = REAL(P_C_det(layer)) 
     1025      END DO 
     1026      CALL CF_WRITE (filenc, 'P_C_det', numit-nstart+1, nlay_i, 1, 1, 
     1027     &               dummy_vector ) 
     1028 
     1029      ! N_P_alg             
     1030      DO layer = 1, nlay_bio 
     1031         dummy_vector(layer) = REAL(N_P_alg(layer)) 
     1032      END DO 
     1033      CALL CF_WRITE (filenc, 'N_P_alg', numit-nstart+1, nlay_i, 1, 1, 
     1034     &               dummy_vector ) 
     1035 
     1036      ! N_P_det             
     1037      DO layer = 1, nlay_bio 
     1038         dummy_vector(layer) = REAL(N_P_det(layer)) 
     1039      END DO 
     1040      CALL CF_WRITE (filenc, 'N_P_det', numit-nstart+1, nlay_i, 1, 1, 
     1041     &               dummy_vector ) 
     1042 
     1043 
    9181044      ! Chla, biological grid 
    9191045      DO layer = 1, nlay_bio 
     
    10351161      CALL CF_WRITE (filenc, 'lim_sal', numit-nstart+1, nlay_bio, 1, 1,  
    10361162     &               dummy_vector ) 
     1163 
     1164 
     1165      ! Stock limitation 
     1166      DO layer = 1, nlay_bio 
     1167         dummy_vector(layer) = REAL(lim_din_stock(layer)) 
     1168      END DO 
     1169      CALL CF_WRITE (filenc, 'lim_din_stock', numit-nstart+1,  
     1170     &               nlay_bio, 1, 1, dummy_vector ) 
     1171 
     1172      DO layer = 1, nlay_bio 
     1173         dummy_vector(layer) = REAL(lim_dip_stock(layer)) 
     1174      END DO 
     1175      CALL CF_WRITE (filenc, 'lim_dip_stock', numit-nstart+1,  
     1176     &               nlay_bio, 1, 1, dummy_vector ) 
     1177 
     1178      DO layer = 1, nlay_bio 
     1179         dummy_vector(layer) = REAL(lim_dsi_stock(layer)) 
     1180      END DO 
     1181      CALL CF_WRITE (filenc, 'lim_dsi_stock', numit-nstart+1,  
     1182     &               nlay_bio, 1, 1, dummy_vector ) 
     1183 
    10371184 
    10381185      ! Flux divergence, silicate 
  • branches/2016/dev_v3.20_2016_gravity_drainage/SOURCES/source_3.20/ice_sal_adv.f

    r10 r20  
    4343     &   zb                 ,    !: gravity drainage 
    4444     &   zc                 ,    !: upward advective flow 
    45      &   w_adv_br           ,    !: brine velocity 
    4645     &   zRae               ,    !: effective Ra 
    4746     &   ze                 ,    !: downward advective flow 
     
    4948     &   zindtbis           ,    !: 
    5049     &   zdiagbis                !: 
     50 
    5151 
    5252      REAL(8), DIMENSION(nlay_i,3) :: !: dummy factors for tracer equation 
     
    7575     &   zlevel             ,    !: height of the water column 
    7676     &   zthdiff                 !: thermal diffusivity 
    77  
     77  
    7878      REAL(8), DIMENSION(nlay_i+1) ::   
    7979     &   z_sbr_int               !: brine salinity at layer interfaces 
     
    300300      rho_br_GN = 1020. 
    301301      Rc_GN     = 1.01 
     302      !alpha_GN = 1.0e-3 
     303      !Rc_GN    = 1.0 
    302304 
    303305      w_adv_br(:) = 0.0 
     
    322324!------------------------------------------------------------------------------| 
    323325! 
    324  
     326   
    325327      DO layer = 1, nlay_i 
    326328         za(layer) = w_adv_br(layer) * ddtb / deltaz_i_phy(layer) 
     
    330332      sn_i_b(1) = z_sbr_i(1) * ( e_i_b(1) + za(1) ) +  
    331333     &            z_sbr_i(2) * ( - za(1) )  
     334 
    332335 
    333336      ! inner layers 
     
    342345     &                   z_sbr_i(nlay_i)   * ( e_i_b(nlay_i) +  
    343346     &                   za(nlay_i)/2. ) - za(nlay_i) * oce_sal 
     347  
    344348 
    345349      IF ( ln_write ) THEN 
    346350         WRITE(numout,*)  
    347          WRITE(numout,*) 
    348351         WRITE(numout,*) ' sn_i_b   : ', ( sn_i_b(layer) ,  
    349352     &                   layer = 1, nlay_i ) 
     
    384387 
    385388      ENDIF ! ln_sal 
     389 
     390 
    386391! 
    387392!------------------------------------------------------------------------------| 
  • branches/2016/dev_v3.20_2016_gravity_drainage/SOURCES/source_3.20/ice_th.f

    r9 r20  
    105105      IF ( c_gravdr .EQ. 'DI' ) 
    106106     &   CALL ice_sal_diff(nlay_i,1,1)                          ! Salt transport (Eddy-diffusion-based) 
    107  
    108       IF ( c_gravdr .EQ. 'AD' ) 
     107      IF ( c_gravdr .EQ. 'AD' )  
    109108     &   CALL ice_sal_adv(nlay_i,1,1)                           ! Salt transport (Advection-based) 
    110109 
    111       IF ( ( c_bio_model .EQ. 'KRILL' ) .AND. ln_trdiff ) 
    112      &   CALL ice_bio_diff( 1 , 1 , nlay_i )                    ! Bio transport 
     110      IF ( ( c_bio_model .EQ. 'KRILL' ) .AND. ln_trdiff) THEN   ! Bio transport 
     111         IF ( c_gravdr .EQ. 'DI' ) 
     112     &      CALL ice_bio_diff(1,1,nlay_i)  
     113      ENDIF 
     114 
     115      IF ( ( c_bio_model .EQ. 'KRILL' ) .AND. ln_trdiff ) THEN 
     116         IF ( c_gravdr .EQ. 'AD' ) 
     117     &      CALL ice_bio_adv(1,1,nlay_i)  
     118      ENDIF 
    113119 
    114120      IF ( c_bio_model .EQ. 'KRILL' ) 
  • branches/2016/dev_v3.20_2016_gravity_drainage/SOURCES/source_3.20/thermo.com

    r9 r20  
    102102      common/ salt / beta_sal, s_i_new, s_i_snic, e_skel, q_summer, 
    103103     &               diff_br(maxnlay), rayleigh(maxnlay), fsb, fsbp, 
    104      &               w_flood, w_flush 
     104     &               w_flood, w_flush, w_adv_br(maxnlay),  
     105     &               divflux_AD(maxnlay) 
    105106 
    106107      ! units is a flux, including radab 
Note: See TracChangeset for help on using the changeset viewer.