GCC Code Coverage Report
Directory: ./ Exec Total Coverage
File: phylmd/Ocean_skin/fv_m.F90 Lines: 0 8 0.0 %
Date: 2023-06-30 12:51:15 Branches: 0 4 0.0 %

Line Branch Exec Source
1
module fv_m
2
3
  implicit none
4
5
contains
6
7
  elemental real function fV(z, rain)
8
9
    ! H. Bellenger 2016
10
11
    real, intent(in):: z ! profondeur en m (z < 0)
12
    real, intent(in):: rain ! rain mass flux, in kg m-2 s-1
13
14
    ! Local:
15
16
    real dfV
17
    ! fraction of rain volume entering the ocean and deposited within depth "z"
18
19
    real rc, lbd, f0
20
    real z_mm
21
22
    ! Schlussel et al. 1997, Table 1:
23
    real, parameter:: zeta(14) = [0.0026091, 0.0022743, 0.0015406, 0.0012281, &
24
         0.0008795, 0.00077123, 0.00057451, 0.000438, 6.7228e-5, 6.4955e-5, &
25
         4.4234e-5, 3.3906e-5, 2.7433e-6, 4.0283e-7]
26
    real, parameter:: psi(14) = [0.60107, 0.29968, 0.5563, 1.80858, 0.2175, &
27
         0.33961, 0.96368, 0.65081, 0.5967, 2.7661, 2.2812, 2.7674, 2.6095, &
28
         6.5308]
29
30
    !---------------------------------------------------------------------
31
32
    if (rain > 0.) then
33
       rc = 0.4 ! mm
34
       z_mm = z * 1000. ! mm and <0
35
       lbd = 4.1 * (rain * 3600.)**(- 0.21) ! mm-1
36
       f0 = (1. + 2. * lbd * rc + 0.5 * (2. * lbd * rc)**2 &
37
            + 1. / 6. * (2. * lbd * rc)**3) * exp(- 1. * 2. * lbd * rc)
38
       dfv = sum(zeta * exp(- psi * lbd * abs(z_mm) / 100.))
39
       fV = - dfV * abs(z_mm) + f0
40
    else
41
       fV = 0.
42
    endif
43
44
  end function fV
45
46
end module fv_m