/[lmdze]/trunk/Sources/phylmd/Interface_surf/calbeta.f
ViewVC logotype

Contents of /trunk/Sources/phylmd/Interface_surf/calbeta.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 225 - (show annotations)
Mon Oct 16 12:35:41 2017 UTC (6 years, 6 months ago) by guez
File size: 1441 byte(s)
LMDZE is now in Fortran 2003 (use of allocatable arguments).

gradsdef was not used.

Change names: [uv]10m to [uv]10m_srf in clmain, y[uv]1 to
[uv]1lay. Remove useless complication: zx_alf[12]. Do not modify
[uv]1lay after initial definition from [uv].

Add [uv]10m_srf to output.

Change names in physiq: [uv]10m to [uv]10m_srf, z[uv]10m to [uv]10m,
corresponding to NetCDF output names.

Remove unused complication couchelimite and useless variable inirnpb
in phytrac.

1 module calbeta_m
2
3 IMPLICIT NONE
4
5 contains
6
7 SUBROUTINE calbeta(indice, snow, qsol, beta, vcal, vdif)
8
9 ! Author: Z. X. Li (LMD/CNRS)
10 ! Date: April 14th, 1994
11
12 ! Calcul de quelques paramètres pour appliquer la couche limite.
13
14 USE indicesol, ONLY: is_lic, is_oce, is_sic, is_ter
15
16 INTEGER, intent(in):: indice
17 REAL, intent(in):: snow(:)
18
19 REAL, intent(in):: qsol(:) ! (knon)
20 ! column-density of water in soil, in kg m-2
21
22 REAL, intent(out):: beta(:), vcal(:), vdif(:) ! (knon)
23
24 ! Local:
25
26 REAL, PARAMETER:: tau_gl = 86400. * 5.
27 ! temps de relaxation pour la glace de mer
28
29 REAL, PARAMETER:: max_eau_sol = 150. ! in kg m-2
30
31 ! Pour une épaisseur du sol de 15 cm :
32 REAL, PARAMETER:: calsol = 1. / (2.5578E6 * 0.15)
33 REAL, PARAMETER:: calsno = 1. / (2.3867E6 * 0.15)
34 REAL, PARAMETER:: calice = 1. / (5.1444E6 * 0.15)
35
36 !------------------------------------------------------------
37
38 select case (indice)
39 case(is_oce)
40 beta = 1.
41 vcal = 0.
42 vdif = 0.
43
44 case (is_sic)
45 beta = 1.
46 vcal = merge(calsno, calice, snow > 0.)
47 vdif = 1. / tau_gl
48
49 case (is_ter)
50 beta = min(2. * qsol / max_eau_sol, 1.)
51 vcal = merge(calsno, calsol, snow > 0.)
52 vdif = 0.
53
54 case (is_lic)
55 beta = 1.
56 vcal = merge(calsno, calice, snow > 0.)
57 vdif = 0.
58 END select
59
60 END SUBROUTINE calbeta
61
62 end module calbeta_m

  ViewVC Help
Powered by ViewVC 1.1.21