source: LMDZ6/trunk/libf/phylmd/calbeta.f90 @ 5428

Last change on this file since 5428 was 5301, checked in by abarral, 8 weeks ago

Turn tsoilnudge.h fcg_gcssold.h flux_arp.h into module

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