source: LMDZ4/trunk/libf/phy_IPCC_AR4/calbeta.F90 @ 1068

Last change on this file since 1068 was 868, checked in by Laurent Fairhead, 17 years ago

Preparation du remplacement de la physique utilisee pour l'exercice IPCC_AR4
par la version de la physique avec thermique. On garde le repertoire phylmd
pour un petit moment pour que les utilisateurs ne soient pas trop perdus ...
phy_IPCC_AR4 = phylmd
LF

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