source: LMDZ6/branches/Amaury_dev/libf/phylmd/calbeta.F90 @ 5225

Last change on this file since 5225 was 5139, checked in by abarral, 4 months ago

Put nuage.h, flux_arp.h, compbl.h into modules
Move unused phylmd/ini_hist* to obsolete

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