/[lmdze]/trunk/Sources/phylmd/Interface_surf/calbeta.f
ViewVC logotype

Diff of /trunk/Sources/phylmd/Interface_surf/calbeta.f

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

trunk/phylmd/calbeta.f revision 76 by guez, Fri Nov 15 18:45:49 2013 UTC trunk/phylmd/calbeta.f90 revision 81 by guez, Wed Mar 5 14:38:41 2014 UTC
# Line 1  Line 1 
1        SUBROUTINE calbeta(dtime,indice,knon,snow,qsol,  SUBROUTINE calbeta(dtime, indice, knon, snow, qsol, vbeta, vcal, vdif)
2       .                    vbeta,vcal,vdif)    USE dimens_m
3        use dimens_m    USE indicesol
4        use indicesol    USE dimphy
5        use dimphy    USE conf_gcm_m
6        use conf_gcm_m    USE suphec_m
7        use SUPHEC_M    IMPLICIT NONE
8        IMPLICIT none    ! ======================================================================
9  c======================================================================    ! Auteur(s): Z.X. Li (LMD/CNRS) (adaptation du GCM du LMD)
10  c Auteur(s): Z.X. Li (LMD/CNRS) (adaptation du GCM du LMD)    ! date: 19940414
11  c date: 19940414    ! ======================================================================
12  c======================================================================  
13  c    ! Calculer quelques parametres pour appliquer la couche limite
14  c Calculer quelques parametres pour appliquer la couche limite    ! ------------------------------------------------------------
15  c ------------------------------------------------------------    REAL tau_gl ! temps de relaxation pour la glace de mer
16        REAL tau_gl ! temps de relaxation pour la glace de mer    ! cc      PARAMETER (tau_gl=86400.0*30.0)
17  ccc      PARAMETER (tau_gl=86400.0*30.0)    PARAMETER (tau_gl=86400.0*5.0)
18        PARAMETER (tau_gl=86400.0*5.0)    REAL mx_eau_sol
19        REAL mx_eau_sol    PARAMETER (mx_eau_sol=150.0)
20        PARAMETER (mx_eau_sol=150.0)  
21  c    REAL calsol, calsno, calice ! epaisseur du sol: 0.15 m
22        REAL calsol, calsno, calice ! epaisseur du sol: 0.15 m    PARAMETER (calsol=1.0/(2.5578E+06*0.15))
23        PARAMETER (calsol=1.0/(2.5578E+06*0.15))    PARAMETER (calsno=1.0/(2.3867E+06*0.15))
24        PARAMETER (calsno=1.0/(2.3867E+06*0.15))    PARAMETER (calice=1.0/(5.1444E+06*0.15))
25        PARAMETER (calice=1.0/(5.1444E+06*0.15))  
26  C    INTEGER i
27        INTEGER i  
28  c    REAL dtime
29        REAL dtime    REAL snow(klon), qsol(klon)
30        REAL snow(klon), qsol(klon)    INTEGER indice, knon
31        INTEGER indice, knon  
32  C    REAL vbeta(klon)
33        REAL vbeta(klon)    REAL vcal(klon)
34        REAL vcal(klon)    REAL vdif(klon)
35        REAL vdif(klon)  
36  C  
37      IF (indice==is_oce) THEN
38        IF (indice.EQ.is_oce) THEN      DO i = 1, knon
39        DO i = 1, knon        vcal(i) = 0.0
40            vcal(i)   = 0.0        vbeta(i) = 1.0
41            vbeta(i)  = 1.0        vdif(i) = 0.0
42            vdif(i) = 0.0      END DO
43        ENDDO    END IF
44        ENDIF  
45  c    IF (indice==is_sic) THEN
46        IF (indice.EQ.is_sic) THEN      DO i = 1, knon
47        DO i = 1, knon        vcal(i) = calice
48            vcal(i) = calice        IF (snow(i)>0.0) vcal(i) = calsno
49            IF (snow(i) .GT. 0.0) vcal(i) = calsno        vbeta(i) = 1.0
50            vbeta(i)  = 1.0        vdif(i) = 1.0/tau_gl
51            vdif(i) = 1.0/tau_gl        ! cc          vdif(i) = calice/tau_gl ! c'etait une erreur
52  ccc          vdif(i) = calice/tau_gl ! c'etait une erreur      END DO
53        ENDDO    END IF
54        ENDIF  
55  c    IF (indice==is_ter) THEN
56        IF (indice.EQ.is_ter) THEN      DO i = 1, knon
57        DO i = 1, knon        vcal(i) = calsol
58            vcal(i) = calsol        IF (snow(i)>0.0) vcal(i) = calsno
59            IF (snow(i) .GT. 0.0) vcal(i) = calsno        vbeta(i) = min(2.0*qsol(i)/mx_eau_sol, 1.0)
60            vbeta(i)  = MIN(2.0*qsol(i)/mx_eau_sol, 1.0)        vdif(i) = 0.0
61            vdif(i) = 0.0      END DO
62        ENDDO    END IF
63        ENDIF  
64  c    IF (indice==is_lic) THEN
65        IF (indice.EQ.is_lic) THEN      DO i = 1, knon
66        DO i = 1, knon        vcal(i) = calice
67            vcal(i) = calice        IF (snow(i)>0.0) vcal(i) = calsno
68            IF (snow(i) .GT. 0.0) vcal(i) = calsno        vbeta(i) = 1.0
69            vbeta(i)  = 1.0        vdif(i) = 0.0
70            vdif(i) = 0.0      END DO
71        ENDDO    END IF
72        ENDIF  
73  c    RETURN
74        RETURN  END SUBROUTINE calbeta
       END  

Legend:
Removed from v.76  
changed lines
  Added in v.81

  ViewVC Help
Powered by ViewVC 1.1.21