source: LMDZ6/branches/Amaury_dev/libf/phylmd/Ocean_skin/fv_m.F90 @ 5135

Last change on this file since 5135 was 5119, checked in by abarral, 16 months ago

enforce PRIVATE by default in several modules, expose PUBLIC as needed
move eigen.f90 to obsolete/
(lint) aslong the way

File size: 1.3 KB
Line 
1module fv_m
2
3  IMPLICIT NONE
4
5CONTAINS
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
46END MODULE fv_m
Note: See TracBrowser for help on using the repository browser.