/[lmdze]/trunk/libf/phylmd/calbeta.f
ViewVC logotype

Contents of /trunk/libf/phylmd/calbeta.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 57 - (show annotations)
Mon Jan 30 12:54:02 2012 UTC (12 years, 3 months ago) by guez
File size: 2022 byte(s)
Write used namelists to file "" instead of standard output.

Avoid aliasing in "inidissip" in calls to "divgrad2", "divgrad",
"gradiv2", "gradiv", "nxgraro2" and "nxgrarot". Add a degenerate
dimension to arrays so they have rank 3, like the dummy arguments in
"divgrad2", "divgrad", "gradiv2", "gradiv", "nxgraro2" and "nxgrarot".

Extract the initialization part from "bilan_dyn" and make a separate
procedure, "init_dynzon", from it.

Move variables from modules "iniprint" and "logic" to module
"conf_gcm_m".

Promote internal procedures of "fxy" to private procedures of module
"fxy_m".

Extracted documentation from "inigeom". Removed useless "save"
attributes. Removed useless intermediate variables. Extracted
processing of poles from loop on latitudes. Write coordinates to file
"longitude_latitude.txt" instead of standard output.

Do not use ozone tracer for radiative transfer.

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

  ViewVC Help
Powered by ViewVC 1.1.21