Commit fc6c01826c7c71d01c703daee1f934a622cda31e

Authored by Gwenaelle Gremion
1 parent f5cf019f
Exists in master and in 1 other branch snow

Correction Units_ Wd4 Variable

Showing 1 changed file with 162 additions and 77 deletions   Show diff stats
src/extras/bio/bio_polynow.F90
... ... @@ -55,7 +55,8 @@
55 55 !-----LOCAL VARIABLES:---------- from a namelist : bio_polynow.nml----------------------
56 56  
57 57 REALTYPE :: dt_bio
58   - REALTYPE :: splitfac_bio
  58 + REALTYPE :: splitfac_bio
  59 + REALTYPE :: depth_bio
59 60 !INITIAL and Minimum concentration for the variable
60 61  
61 62 REALTYPE :: p_init_value=1.0
... ... @@ -239,13 +240,15 @@ REALTYPE ::coef2
239 240 REALTYPE ::RFV
240 241 REALTYPE ::coef3
241 242 REALTYPE ::coef4
242   -REALTYPE ::coef5
  243 +REALTYPE ::coef5
  244 +
  245 +REALTYPE ::cons_max
243 246  
244 247 integer :: out_unit
245 248 ! integer, parameter :: p=1,z=2,b=3,d1=4,n=5,a=6,l=7,d2=8,d3=9,d4=10,aug_si_d4=11,taille_msn=12
246 249 ! GG d1= dph , d2= dzo , d3= fp , d4 = msn, aug_si_d4= size_msn
247 250 integer, parameter :: p=1,z=2,b=3,d1=4,n=5,a=6,l=7,d2=8,d3=9,d4=10, &
248   - taille_intrm=11,taille_coag=12, taille_frag=13,taille_msn=14
  251 + taille_intrm=11,taille_coag=12, taille_frag=13,taille_msn=14,settl_msn=15
249 252  
250 253  
251 254 !EOP
... ... @@ -281,7 +284,7 @@ REALTYPE ::coef5
281 284 ! !LOCAL VARIABLES:
282 285 namelist /bio_polynow_nml/ numc, &
283 286  
284   - dt_bio,splitfac_bio,p_init_value,p_initial,z_p_gauss_init,sigma_p, &
  287 + dt_bio,splitfac_bio,depth_bio,p_init_value,p_initial,z_p_gauss_init,sigma_p, &
285 288 zoo_init_value,z_initial,z_zoo_gauss_init,sigma_zoo, &
286 289 b_initial, &
287 290 dph_init_value,dph_initial,z_dph_gauss_init,sigma_dph, &
... ... @@ -310,7 +313,7 @@ rho_p,rho_dph,rho_dzo,rho_fp,rho_msn,
310 313 Floc_coef, &
311 314 betaBr,betaSh,betaDs, &
312 315 eps_const,eps_n,cons_min, &
313   - coef1,coef2,RFV,coef3,coef4,coef5,&
  316 + coef1,coef2,RFV,coef3,coef4,coef5,cons_max,&
314 317 write_screen
315 318  
316 319 !EOP
... ... @@ -565,7 +568,8 @@ Floc_coef, &
565 568 !cons_min
566 569 !Floc_coef
567 570 !coef1,coef2,coef3,coef4,coef5
568   -!RFV
  571 +!RFV
  572 +!cons_max
569 573  
570 574 900 format (a,f8.5)
571 575 901 format (f8.5)
... ... @@ -809,7 +813,10 @@ end if
809 813 cc(taille_frag,i)=_ZERO_
810 814  
811 815 cc(taille_msn,i)=_ZERO_
812   - ws(taille_msn,i)=_ZERO_
  816 + ws(taille_msn,i)=_ZERO_
  817 +
  818 + cc(settl_msn,i)= _ZERO_
  819 + ws(settl_msn,i) =_ZERO_
813 820  
814 821 end do
815 822  
... ... @@ -929,6 +936,12 @@ end if
929 936 var_names(14) = 'taille_msn'
930 937 var_units(14) = 'm'
931 938 var_long(14) = 'Final size of marine snow'
  939 +
  940 + var_names(15) = 'settl_msn'
  941 + var_units(15) = 'm/s'
  942 + var_long(15) = 'Settling Velocity of marine snow'
  943 +
  944 +
932 945  
933 946 return
934 947 end subroutine var_info_polynow
... ... @@ -1149,8 +1162,7 @@ end if
1149 1162 REALTYPE ::prob_break_msn,r_msn
1150 1163 REALTYPE :: diam_msn_max,RFV_msn,min_size_msn
1151 1164 ! Sedimentation rate msn
1152   - REALTYPE :: w_msn_m,Re_msn,Rmsn,w_min_m
1153   -! REALTYPE :: sensi_w
  1165 + REALTYPE :: w_msn_m,Re_msn,Rmsn,w_min_m
1154 1166  
1155 1167 !EOP
1156 1168 !-----------------------------------------------------------------------
... ... @@ -1545,6 +1557,7 @@ endif !#9
1545 1557  
1546 1558 w_min_m = max(w_p_m,w_dph_m,w_dzo_m,w_fp_m)
1547 1559  
  1560 +
1548 1561  
1549 1562 !Now that we defined a settling velocity depending of the size, let's make it dependent of the depth (Martin et al 1987, Paul Nicot 2013 )
1550 1563  
... ... @@ -2204,43 +2217,46 @@ endif !#1
2204 2217 !-----------------------------------------------------------------------------------
2205 2218  
2206 2219 ! ---Maximum size at dissagregation (Alldredge 1990)
2207   - if(dm_msn .eq. 1.0) then
  2220 + if(dm_msn .eq. 1.0) then
2208 2221 diam_msn_max = coef1*(eps(ci))**(-coef2) ! [m]
  2222 + write(*,*)'At depth-----',ci
  2223 + write(*,*)'Maximum size diameter of Msn from eps :', diam_msn_max
2209 2224 else
2210   - diam_msn_max = diam_msn_us ! [m] (which means ~ 10mm)
  2225 + diam_msn_max = diam_msn_us ! [m]
2211 2226 endif
2212   -
2213   -
2214   - write(*,*)'At depth-----',ci
2215   - write(*,*)'Maximum size diameter - Marine snow :', diam_msn_max
2216   - ! ---Flux from particules to msn [mmol/m3/d]
  2227 +
  2228 + ! ---Flux from particules to msn [mmol/m3/s]
2217 2229 Flux_P(ci) = (agg_pp)+(agg_pdph)+(agg_pdzo)+(agg_pfp)
2218 2230 Flux_D1(ci) = (agg_pdph)+(agg_dphdph)+(agg_dphdzo)+(agg_dphfp)
2219 2231 Flux_D2(ci) = (agg_pdzo)+(agg_dphdzo)+(agg_dzodzo)+(agg_dzofp)
2220 2232 Flux_D3(ci) = (agg_pfp)+(agg_dphfp)+(agg_dzofp)+(agg_fpfp)
2221   -
2222   - ! ---Total Flux received by msn [mmol/m3/d]
2223   - flux_msn(ci) = Flux_P(ci)+Flux_D1(ci)+Flux_D2(ci)+Flux_D3(ci)
2224   -! write(*,*)'flux_msn(ci) ',flux_msn(ci)
2225   - ! ---Calcul of the ratios [-]
2226   - Ratio_P = Flux_P(ci)/flux_msn(ci)
2227   - Ratio_D1 = Flux_D1(ci)/flux_msn(ci)
2228   - Ratio_D2 = Flux_D2(ci)/flux_msn(ci)
2229   - Ratio_D3 = Flux_D3(ci)/flux_msn(ci)
2230 2233  
  2234 + ! ---Maximum Flux of Particles to msn [mmol/m3/s]
2231 2235 max_flux= max(Flux_P(ci),Flux_D1(ci),Flux_D2(ci),Flux_D3(ci))
2232 2236  
2233   - ! ---Safety check - Sum of ratio should equal 1
2234   - if(Ratio_P+Ratio_D1+Ratio_D2+Ratio_D3 .gt. 1.0) then
  2237 +
  2238 + ! ---Total Flux received by msn [mmol/m3/s]
  2239 + flux_msn(ci) = Flux_P(ci)+Flux_D1(ci)+Flux_D2(ci)+Flux_D3(ci)
  2240 +
  2241 + !-----------------------------------------------------------------------------------
  2242 + !! ---Safety check
  2243 + !-----------------------------------------------------------------------------------
  2244 +
  2245 + ! ---Sum of ratio should equal 1
  2246 + if(Flux_P(ci)+Flux_D1(ci)+Flux_D2(ci)+Flux_D3(ci).gt. 1.0) then
2235 2247 write(*,*)'At depth-----',ci
2236   - write(*,*)'Warning: sum of Ratio > 1.0', Ratio_P+Ratio_D1+Ratio_D2+Ratio_D3
  2248 + write(*,*)'Warning: sum of Ratio > 1.0', Flux_P(ci)+Flux_D1(ci)+Flux_D2(ci)+Flux_D3(ci)
2237 2249 endif
2238 2250  
2239   - if (flux_msn(ci) .ne. Flux_P(ci)+Flux_D1(ci)+Flux_D2(ci)+Flux_D3(ci))then
  2251 + if (flux_msn(ci) .ne. Flux_P(ci)+Flux_D1(ci)+Flux_D2(ci)+Flux_D3(ci)) then
2240 2252 write(*,*)'Warning :msn incomming flux .ne. to the sum of particles flux at depth ',ci
2241 2253 endif
2242 2254  
  2255 +
  2256 + ! ---Size modification due to Coagulation
  2257 +
2243 2258 if (Coag_coef .eq. 1.0) then ! #1 Size modified only if coagulation happenned
  2259 +
2244 2260 ! ---Initialize the size radius augmentation variable for the msn and the size for the coagulation
2245 2261 cc(taille_coag,ci) = 0.0
2246 2262 cc(taille_intrm,ci) = 0.0
... ... @@ -2251,58 +2267,73 @@ if (Coag_coef .eq. 1.0) then ! #1 Size modified only if coagulation happenned
2251 2267 !Calculation of the cubic racin of X --» SIGN(ABS(X)**(1./3.),X) [FORTRAN, le langage normalisé, Michel Dubesset,Jean Vignes]
2252 2268 !-----------------------------------------------------------------------------------
2253 2269  
2254   - ! ---Depend on what composed it
2255   - cc(taille_coag,ci)= Ratio_P*diam_phy+Ratio_D1*diam_dph+Ratio_D2*diam_dzo+Ratio_D3*diam_fp ![m]
2256   - cc(taille_coag,ci) = cc(taille_coag,ci)/secs_pr_day !Growth of size per day [m/d]
  2270 + ! ---Depends on what composed it
  2271 + cc(taille_coag,ci)= Flux_P(ci)*diam_phy+Flux_D1(ci)*diam_dph+Flux_D2(ci)*diam_dzo+Flux_D3(ci)*diam_fp ![m/s]
2257 2272  
2258   - ! ---Definition of the diameter size of marine snow
2259   - !-----------------------------------------------------------------------------------
  2273 + ! ---Definition of the diameter size of marine snow
  2274 + !-----------------------------------------------------------------------------------
2260 2275 !At this stage 'taille_coag' is still the radius and diam_msn the equivalent spherical diameter
2261 2276 !We defined L,I,S for Marine snow L=I=size_x*4 and S= size_X*2
2262 2277 !--» With size_X which represents the radius (cc(taille_coag,ci)) of our marine snow.
2263   - !-----------------------------------------------------------------------------------
  2278 + !-----------------------------------------------------------------------------------
2264 2279 if (cc(taille_coag,ci) .ne. 0.0 .and. cc(taille_coag,ci).gt. 0.0) then !#2
2265 2280 diam_msn = sign(abs(((cc(taille_coag,ci)*4.)*(cc(taille_coag,ci)*4.)*(cc(taille_coag,ci)*2.)))**(1./3.),&
2266   - ((cc(taille_coag,ci)*4.)*(cc(taille_coag,ci)*4.)*(cc(taille_coag,ci)*2.))) ![m/d]
  2281 + ((cc(taille_coag,ci)*4.)*(cc(taille_coag,ci)*4.)*(cc(taille_coag,ci)*2.))) ![m/s]
2267 2282 else !#2
2268 2283 diam_msn = 0.0
2269 2284 endif !#2
2270 2285  
2271   - ! ---The projected area equivalent diameter of our particles of marine snow - Unit should be of size [m]
2272   - cc(taille_coag,ci) = (diam_msn**(CSF))*((dt_bio/splitfac_bio)*flux_msn(ci))*secs_pr_day ![m/mmol.m-3.d-1]
  2286 + ! ---The projected area equivalent diameter of our particles of marine snow
  2287 + cc(taille_coag,ci) = (diam_msn**(CSF))*(dt_bio/splitfac_bio) ![m]
  2288 +
2273 2289 !--» At this points 'taille_coag' is the projected area equivalent diameter in m.
2274 2290  
2275 2291 ! ---Elaboration of the size variable (diameter), available for the fragmentation eventually (taille_intrm).
2276 2292 if(cc(d4,ci) .gt. cons_min) then
2277   - cc(taille_intrm,ci) = cc(taille_coag,ci) + cc(taille_msn,ci)
  2293 + cc(taille_intrm,ci) = cc(taille_coag,ci) + cc(taille_msn,ci) ![m]
2278 2294 !--» Msn size after coagulation will depend on the increase of size due to coagaluation (taille_coag) &
2279 2295 !--» + the size at the previous time step (taille_msn) of the particles
  2296 +
  2297 + !-----------------------------------------------------------------------------------
  2298 + !! ---Safety check
  2299 + !-----------------------------------------------------------------------------------
  2300 + if(cc(taille_intrm,ci).lt. 0.0 .OR. &
  2301 + cc(taille_coag,ci) .lt. 0.0 .OR. &
  2302 + cc(taille_msn,ci) .lt. 0.0) then
  2303 + write(*,*)'Taille _intrm - May be equal to 0 :', cc(taille_intrm,ci)
  2304 + write(*,*)'Taille _coag - May be equal to 0 :', cc(taille_coag,ci)
  2305 + write(*,*)'Taille _msn - May be equal to 0 :', cc(taille_msn,ci)
  2306 + endif
2280 2307  
2281 2308 else
2282   - cc(taille_intrm,ci) = cc(taille_msn,ci)
2283 2309 !--» If there is not need to have a size augmentation due to low concentration of marine snow, the size of previous step remain
  2310 + cc(taille_intrm,ci) = cc(taille_msn,ci) ![m]
  2311 + write(*,*)'No size augmentation as [msn] < cons_min - The size stays the same', cc(taille_msn,ci)
2284 2312 endif
2285 2313  
2286   -
2287 2314 else !#1 Size not modified because no coagulation happenned
2288 2315 cc(taille_coag,ci) = 0.0
2289   - cc(taille_intrm,ci) = cc(taille_msn,ci)
  2316 + cc(taille_intrm,ci) = cc(taille_msn,ci) ![m]
2290 2317 write(*,*)'Size not modified because no coagulation happenned'
2291 2318  
2292 2319 endif !#1
2293 2320  
2294   -
2295   - if(cc(taille_intrm,ci).gt.diam_msn_max) then
2296   - cc(taille_intrm,ci) = diam_msn_max
2297   - write(*,*)'Maximum size reach - Marine snow size equal :', cc(taille_intrm,ci)
2298   - endif
  2321 +
  2322 + !-----------------------------------------------------------------------------------
  2323 + !! ---Safety check
  2324 + !-----------------------------------------------------------------------------------
  2325 + !--» Msn size can not over pass the maximum diameter specified by the user.
  2326 + if(cc(taille_intrm,ci).gt.diam_msn_max) then
  2327 + cc(taille_intrm,ci) = diam_msn_max
  2328 + write(*,*)'Maximum size reach - Marine snow size equal :', cc(taille_intrm,ci)
  2329 + endif
2299 2330  
2300 2331 !--» If there is no marine snow, there is no reason to set up a size, then the size will equal 0.
2301   - if (cc(d4,ci).lt. cons_min)then
2302   - write(*,*)'Size but no msn'
2303   - cc(taille_msn,ci) = 0.0
2304   - cc(taille_intrm,ci) = 0.0
2305   - endif
  2332 + if (cc(d4,ci).lt. cons_min)then
  2333 + cc(taille_msn,ci) = _ZERO_
  2334 + cc(taille_intrm,ci) = _ZERO_
  2335 + write(*,*)'Size but no msn at :',ci
  2336 + endif
2306 2337  
2307 2338 !-----------------------------------------------------------------------------------
2308 2339 ! FRAGMENTATION
... ... @@ -2322,13 +2353,13 @@ if (Frag_meth .eq. 1.0) then !Fragmentation happens
2322 2353 kolmog = (kinvis**3/eps(ci))**0.25 ![m]
2323 2354 ! ---Minimum size of what composed the marine snow - Be careful to be sure that their is this particles in the field
2324 2355 if (max_flux .eq. flux_P(ci)) then
2325   - min_size_msn = size_phy
  2356 + min_size_msn = Ratio_P*diam_phy !size_phy
2326 2357 elseif (max_flux .eq. flux_D1(ci)) then
2327   - min_size_msn = size_dph
  2358 + min_size_msn = Ratio_D1*diam_dph !size_dph
2328 2359 elseif (max_flux .eq. flux_D2(ci)) then
2329   - min_size_msn = size_dzo
  2360 + min_size_msn = Ratio_D2*diam_dzo !size_dzo
2330 2361 elseif (max_flux .eq. flux_D3(ci)) then
2331   - min_size_msn = size_fp
  2362 + min_size_msn = Ratio_D3* diam_fp ! size_fp
2332 2363 else
2333 2364 write(*,*)'Error for estimation of min_size_msn'
2334 2365 endif
... ... @@ -2428,12 +2459,7 @@ if (Frag_meth .eq. 1.0) then !Fragmentation happens
2428 2459 !-----------------------------------------------------------------------------------
2429 2460 !! ---Safety check
2430 2461 !-----------------------------------------------------------------------------------
2431   - !--» If the size of msn after the cut is lower thant the smallest particle that may composed it,
2432   - !--» the minimum size of its constituant are set for the marine snow
2433   - if(size_msn_m .lt. min_size_msn)then
2434   - write(*,*)'Smaller than the smallest initial particles'
2435   - size_msn_m = min_size_msn
2436   - endif
  2462 +
2437 2463 !--» If there is no marine snow, there is no reason to set up a size, then the size will equal 0.
2438 2464 if (cc(d4,ci).lt. cons_min)then
2439 2465 write(*,*)'Size but no msn'
... ... @@ -2480,8 +2506,14 @@ endif
2480 2506  
2481 2507 !--» Taille_msn --> is the diameter after coag and frag
2482 2508 Rmsn = (rho_msn-densFlu)
  2509 +
  2510 +write(*,*)'[msn]', cc(d4,ci)
  2511 +
  2512 +if (cc(d4,ci) .le. cons_min) then
  2513 + w_msn_m = 0.0
  2514 + write(*,*)'[msn] lt Cons_min, settling velocity set to :',w_msn_m
2483 2515  
2484   -if (cc(d4,ci) .lt. 0.2490) then !#1
  2516 +elseif (cc(d4,ci) .lt. cons_max) then !#1
2485 2517 !--» We set here the concentration limit in the water column from free settling of marine snow vs flocculation settling (Metha 1989)
2486 2518  
2487 2519 !! --- Calculated by value from the .nml
... ... @@ -2530,20 +2562,26 @@ if (cc(d4,ci) .lt. 0.2490) then !#1
2530 2562 write(*,*) 'No settling velocity choice for msn, value set to 0'
2531 2563 w_msn_m = 0.0
2532 2564 endif!#2
2533   -else !#1
2534   - w_msn_m=-(coef5*cc(d4,ci)**(1.6)) ! Metha 1989
2535   - write(*,*)'w_msn_m6',w_msn_m
2536   -endif !#1
  2565 +elseif (cc(d4,ci) .ge. cons_max)then !#1
  2566 + w_msn_m=-(coef5*cc(d4,ci)**(1.6)) ! Metha 1989
  2567 + write(*,*)'[msn] > cons_max at :',ci
  2568 +
  2569 +else
  2570 + write(*,*)'At Depth : ',ci
  2571 + write(*,*)'Error with the specification of [msn] at',cc(d4,ci)
  2572 + w_msn_m = 0.0
  2573 +
  2574 +endif !#1
2537 2575  
2538 2576 !-----------------------------------------------------------------------------------
2539 2577 !! --- Convertion & Comparaison with the Stokes range
2540 2578 !-----------------------------------------------------------------------------------
2541 2579  
2542 2580 !--» Now we put everything in /d not matter the scenario.
2543   - w_msn_m = w_msn_m/secs_pr_day
  2581 + ! w_msn_m = w_msn_m/secs_pr_day
2544 2582  
2545 2583 !--» Comparaison with the Stokes range ! VanRijn 1993
2546   - Re_msn = w_msn_m*(cc(taille_msn,ci)/kinvis)
  2584 + Re_msn = abs(w_msn_m*(cc(taille_msn,ci)/kinvis))
2547 2585  
2548 2586 if (Re_msn .lt. 1.0)then !#3
2549 2587 w_msn_m = w_msn_m
... ... @@ -2551,8 +2589,6 @@ else !#3
2551 2589 w_msn_m = (cc(taille_msn,ci)**0.5)
2552 2590 write(*,*) 'Reynolds number for marine snow > 1'
2553 2591 endif !#3
2554   -
2555   -!!! COMPARER ICI avec ! MESSAGE d'ERREUR SI w < 1/2 Delta z /Delta t
2556 2592  
2557 2593  
2558 2594 !-----------------------------------------------------------------------------------
... ... @@ -2560,16 +2596,45 @@ endif !#3
2560 2596 !-----------------------------------------------------------------------------------
2561 2597  
2562 2598 !--» let them settling(m/s)
2563   - !--» The ncdf output do ws(x,ci) *86400 to have the ouptut in m/j.
  2599 + !--» The ncdf output do ws(x,ci) *86400 to have the ouptut in m/j.
  2600 +
  2601 +if (rho_p .gt. densFlu .AND. w_p_m .gt. 0.0) then
  2602 +w_p_m = -w_p_m
  2603 +endif
  2604 +
  2605 +if (rho_dph .gt. densFlu .AND. w_dph_m .gt. 0.0) then
  2606 +w_dph_m = -w_dph_m
  2607 +endif
  2608 +
  2609 +if (rho_dzo .gt. densFlu .AND. w_dzo_m .gt. 0.0) then
  2610 +w_dzo_m = -w_dzo_m
  2611 +endif
  2612 +
  2613 +if (rho_fp .gt. densFlu .AND. w_fp_m .gt. 0.0) then
  2614 +w_fp_m = -w_fp_m
  2615 +endif
  2616 +
2564 2617 ws(p,ci) = w_p_m
2565 2618 ws(d1,ci) = w_dph_m
2566 2619 ws(d2,ci) = w_dzo_m
2567 2620 ws(d3,ci) = w_fp_m
2568 2621  
2569   - !--» Case of marine snow (already /86400)
2570   - ws(d4,ci) = w_msn_m
2571   - ws(taille_msn,ci) = ws(d4,ci)
2572   -
  2622 + !--» Case of marine snow
  2623 +
  2624 + !--Concentration - Vs CFL limit
  2625 + ws(d4,ci)= min(w_msn_m,(depth_bio/nlev)/dt_bio)
  2626 + if (ws(d4,ci) .eq. w_msn_m) then
  2627 + write(*,*) 'CFL limit is respected'
  2628 + else
  2629 + write(*,*) 'CFL Constrain is OVERPASS'
  2630 + endif
  2631 + !--Size - Vs CFL limit
  2632 + ws(taille_msn,ci) = min(w_msn_m,(depth_bio/nlev)/dt_bio)
  2633 +
  2634 + !--Settling velocity trait - Vs CFL limit
  2635 + cc(settl_msn,ci)= w_msn_m
  2636 + ws(settl_msn,ci) = min(w_msn_m,(depth_bio/nlev)/dt_bio)
  2637 +
2573 2638  
2574 2639 !-----------------------------------------------------------------------------------
2575 2640 ! NET PRIMARY PRODUCTION
... ... @@ -3106,5 +3171,25 @@ endif !#A
3106 3171 !!cc(taille_msn,ci)= size_msn_m ! Keep in memory for the next step
3107 3172 !size_msn_m = cc(taille_msn,ci)+ cc(aug_si_d4,ci)
3108 3173 !cc(taille_coag,ci)= size_msn_m
3109   -!end if !#3
  3174 +!end if !#3
  3175 +
  3176 +
  3177 +
  3178 + !--» If the size of msn after the cut is lower thant the smallest particle that may composed it,
  3179 + !--» the minimum size of its constituant are set for the marine snow
  3180 + ! if(size_msn_m .lt. min_size_msn)then
  3181 + ! write(*,*)'Smaller than the smallest initial particles'
  3182 + ! size_msn_m = min_size_msn
  3183 + ! endif
  3184 +
  3185 +
  3186 +
  3187 +
  3188 +
  3189 +! write(*,*)'flux_msn(ci) ',flux_msn(ci)
  3190 + ! ---Calcul of the ratios [-]
  3191 + ! Ratio_P = Flux_P(ci)/flux_msn(ci)
  3192 + ! Ratio_D1 = Flux_D1(ci)/flux_msn(ci)
  3193 + ! Ratio_D2 = Flux_D2(ci)/flux_msn(ci)
  3194 + ! Ratio_D3 = Flux_D3(ci)/flux_msn(ci)
3110 3195  
... ...