source: LMDZ6/trunk/libf/phylmd/calbeta_mod.f90

Last change on this file was 6048, checked in by fhourdin, 6 weeks ago

Renommage des nom de fichiers incluant des modules

  • Property copyright set to
    Name of program: LMDZ
    Creation date: 1984
    Version: LMDZ5
    License: CeCILL version 2
    Holder: Laboratoire de m\'et\'eorologie dynamique, CNRS, UMR 8539
    See the license file in the root directory
  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 2.7 KB
Line 
1!
2! $Header$
3!
4MODULE calbeta_mod
5
6CONTAINS
7
8SUBROUTINE calbeta(dtime,indice,knon,snow,qsol, &
9     vbeta,vcal,vdif)
10!$gpum horizontal knon
11USE flux_arp_mod_h
12    USE dimphy
13  USE indice_sol_mod
14
15  IMPLICIT none
16
17
18!======================================================================
19! Auteur(s): Z.X. Li (LMD/CNRS) (adaptation du GCM au LMD)
20! date: 19940414
21!======================================================================
22!
23! Calculer quelques parametres pour appliquer la couche limite
24! ------------------------------------------------------------
25! Variables d'entrees
26!****************************************************************************************
27  REAL, INTENT(IN)                   :: dtime
28  INTEGER, INTENT(IN)                :: indice
29  INTEGER, INTENT(IN)                :: knon
30  REAL, DIMENSION(knon), INTENT(IN)  :: snow
31  REAL, DIMENSION(knon), INTENT(IN)  :: qsol
32
33 
34! Variables de sorties
35!****************************************************************************************
36  REAL, DIMENSION(knon), INTENT(OUT) :: vbeta
37  REAL, DIMENSION(knon), INTENT(OUT) :: vcal
38  REAL, DIMENSION(knon), INTENT(OUT) :: vdif
39
40! Variables locales
41!****************************************************************************************
42  REAL, PARAMETER :: tau_gl=86400.0*5.0 ! temps de relaxation pour la glace de mer
43!cc      PARAMETER (tau_gl=86400.0*30.0)
44  REAL, PARAMETER :: mx_eau_sol=150.0
45  REAL, PARAMETER :: calsol=1.0/(2.5578E+06*0.15)
46  REAL, PARAMETER :: calsno=1.0/(2.3867E+06*0.15)
47  REAL, PARAMETER :: calice=1.0/(5.1444E+06*0.15)
48 
49  INTEGER         :: i
50
51!**************************************************************************************** 
52   
53  vbeta(:) = 0.0
54  vcal(:) = 0.0
55  vdif(:) = 0.0
56 
57  IF (indice.EQ.is_oce) THEN
58     DO i = 1, knon
59        vcal(i)   = 0.0
60        vbeta(i)  = 1.0
61        vdif(i) = 0.0
62     ENDDO
63  ENDIF
64 
65  IF (indice.EQ.is_sic) THEN
66     DO i = 1, knon
67        vcal(i) = calice
68        IF (snow(i) .GT. 0.0) vcal(i) = calsno
69        vbeta(i)  = 1.0
70        vdif(i) = 1.0/tau_gl
71!          vdif(i) = calice/tau_gl ! c'etait une erreur
72     ENDDO
73  ENDIF
74 
75  IF (indice.EQ.is_ter) THEN
76     DO i = 1, knon
77        vcal(i) = calsol
78        IF (snow(i) .GT. 0.0) vcal(i) = calsno
79        vbeta(i)  = MIN(2.0*qsol(i)/mx_eau_sol, 1.0)
80        vdif(i) = 0.0
81     ENDDO
82  ENDIF
83 
84  IF (indice.EQ.is_lic) THEN
85     DO i = 1, knon
86        vcal(i) = calice
87        IF (snow(i) .GT. 0.0) vcal(i) = calsno
88        vbeta(i)  = 1.0
89        vdif(i) = 0.0
90     ENDDO
91  ENDIF
92
93  ! EV: when beta is prescribed for 1D cases:
94  IF (knon.EQ.1 .AND. ok_prescr_beta) THEN
95     DO i = 1, knon
96          vbeta(i)=betaevap
97      ENDDO
98  ENDIF
99 
100END SUBROUTINE calbeta
101
102END MODULE calbeta_mod
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
Note: See TracBrowser for help on using the repository browser.