LMDZ
calbeta.F90
Go to the documentation of this file.
1 !
2 ! $Id$
3 !
4 SUBROUTINE calbeta(dtime,indice,knon,snow,qsol, &
5  vbeta,vcal,vdif)
6 
7  USE dimphy
9  IMPLICIT none
10 !======================================================================
11 ! Auteur(s): Z.X. Li (LMD/CNRS) (adaptation du GCM au LMD)
12 ! date: 19940414
13 !======================================================================
14 !
15 ! Calculer quelques parametres pour appliquer la couche limite
16 ! ------------------------------------------------------------
17 ! Variables d'entrees
18 !****************************************************************************************
19  REAL, INTENT(IN) :: dtime
20  INTEGER, INTENT(IN) :: indice
21  INTEGER, INTENT(IN) :: knon
22  REAL, DIMENSION(klon), INTENT(IN) :: snow
23  REAL, DIMENSION(klon), INTENT(IN) :: qsol
24 
25 
26 ! Variables de sorties
27 !****************************************************************************************
28  REAL, DIMENSION(klon), INTENT(OUT) :: vbeta
29  REAL, DIMENSION(klon), INTENT(OUT) :: vcal
30  REAL, DIMENSION(klon), INTENT(OUT) :: vdif
31 
32 ! Variables locales
33 !****************************************************************************************
34  REAL, PARAMETER :: tau_gl=86400.0*5.0 ! temps de relaxation pour la glace de mer
35 !cc PARAMETER (tau_gl=86400.0*30.0)
36  REAL, PARAMETER :: mx_eau_sol=150.0
37  REAL, PARAMETER :: calsol=1.0/(2.5578e+06*0.15)
38  REAL, PARAMETER :: calsno=1.0/(2.3867e+06*0.15)
39  REAL, PARAMETER :: calice=1.0/(5.1444e+06*0.15)
40 
41  INTEGER :: i
42 
43 !****************************************************************************************
44 
45  vbeta(:) = 0.0
46  vcal(:) = 0.0
47  vdif(:) = 0.0
48 
49  IF (indice.EQ.is_oce) THEN
50  DO i = 1, knon
51  vcal(i) = 0.0
52  vbeta(i) = 1.0
53  vdif(i) = 0.0
54  ENDDO
55  ENDIF
56 
57  IF (indice.EQ.is_sic) THEN
58  DO i = 1, knon
59  vcal(i) = calice
60  IF (snow(i) .GT. 0.0) vcal(i) = calsno
61  vbeta(i) = 1.0
62  vdif(i) = 1.0/tau_gl
63 ! vdif(i) = calice/tau_gl ! c'etait une erreur
64  ENDDO
65  ENDIF
66 
67  IF (indice.EQ.is_ter) THEN
68  DO i = 1, knon
69  vcal(i) = calsol
70  IF (snow(i) .GT. 0.0) vcal(i) = calsno
71  vbeta(i) = min(2.0*qsol(i)/mx_eau_sol, 1.0)
72  vdif(i) = 0.0
73  ENDDO
74  ENDIF
75 
76  IF (indice.EQ.is_lic) THEN
77  DO i = 1, knon
78  vcal(i) = calice
79  IF (snow(i) .GT. 0.0) vcal(i) = calsno
80  vbeta(i) = 1.0
81  vdif(i) = 0.0
82  ENDDO
83  ENDIF
84 
85 END SUBROUTINE calbeta
86 
87 
88 
89 
90 
91 
92 
93 
94 
95 
96 
97 
98 
99 
100 
101 
102 
integer, parameter is_ter
integer, parameter is_lic
integer, parameter is_sic
Definition: dimphy.F90:1
subroutine calbeta(dtime, indice, knon, snow, qsol, vbeta, vcal, vdif)
Definition: calbeta.F90:6
integer, parameter is_oce