source: trunk/LMDZ.TITAN/libf/phytitan/heating.F @ 1242

Last change on this file since 1242 was 495, checked in by slebonnois, 13 years ago

Mise a jour physique Titan, ajout des forces de marees (dans la dynamique, sous flag titan). SL.

File size: 3.0 KB
Line 
1       SUBROUTINE heating(dist,rmu0,fract,falbe,sol_htg,swnet,icld)
2
3
4c=======================================================================
5c
6c   Object:  Computation of the solar heating rate
7c                    SOL_HTG(klon,klev)
8c
9c   Arguments:
10c   ----------
11c
12c      Input:
13c      ------
14c
15c dist-----input-R- distance astronomique terre-soleil
16c rmu0-----input-R- cosinus de l'angle zenithal
17c fract----input-R- duree d'ensoleillement normalisee
18c falbe----input-R- surface albedo
19c icld-----input-I- calcul avec nuages.
20c        p(klon,nl)    pressure (level)
21c
22c      Output:
23c      -------
24c sol_htg-----output-R- echauffement atmospherique (visible) (K/s)
25c swnet-------output-R- flux solaire net (+ vers le bas)     (W/m2)
26c
27c=======================================================================
28c-----------------------------------------------------------------------
29c   Declarations:
30c   -------------
31
32      use dimphy
33      IMPLICIT NONE
34#include "dimensions.h"
35
36      INTEGER NLEVEL,NLAYER,NSPECV
37      PARAMETER(NLAYER=llm,NLEVEL=NLAYER+1)
38      PARAMETER (NSPECV=24)
39c
40c  ASTUCE POUR EVITER klon... EN ATTENDANT MIEUX
41      INTEGER   ngrid
42      PARAMETER (ngrid=(jjm-1)*iim+2)  ! = klon
43c
44
45c   Arguments:
46c   ----------
47
48
49      real dist, rmu0(klon), fract(klon), falbe(klon)
50      integer icld
51
52      real sol_htg(klon,klev)
53      real swnet(klon,klev+1)
54     
55c   Local:
56c   ------
57
58      INTEGER I,J,IG,K,IPRINT,ilat,nq
59 
60c   COMMONS for interface with local subroutines:
61c   ---------------------------------------------
62
63      REAL UBARI,UBARV,UBAR0
64      REAL  CH4(NLEVEL),XN2(NLEVEL),H2(NLEVEL),AR(NLEVEL)
65      REAL  XMU(NLEVEL),GAS1(NLAYER),COLDEN(NLAYER)
66      REAL FNETV(ngrid,NLEVEL),FUPV(ngrid,NLEVEL,NSPECV) 
67      REAL FDV(ngrid,NLEVEL,NSPECV),FMNETV(ngrid,NLEVEL)
68      REAL CSUBP,F0PI
69
70      COMMON /UBARED/ UBARI,UBARV,UBAR0
71
72      COMMON /GASS/ CH4,XN2
73     &              ,H2,AR
74     &              ,XMU,GAS1
75     &              ,COLDEN
76
77      COMMON /FLUXvV/ FNETV,     
78     &               FUPV,
79     &               FDV,
80     &               FMNETV
81
82      COMMON /PLANT/ CSUBP,F0PI
83
84
85c==================================================================
86
87         fnetv  = 0.0
88         sol_htg= 0.0
89         swnet  = 0.0
90c pour sorties dans gfluxv...
91         iprint = 0
92
93         DO ig=1,klon
94            IF(fract(ig).LT.1.e-5) THEN
95               DO j=1,nlayer
96                  sol_htg(ig,j)=0.
97               ENDDO
98            ELSE
99               ubar0=rmu0(ig)
100
101               CALL sfluxv(iprint,ig,dist,falbe,icld)      ! #3
102
103               fnetv(ig,:) = fnetv(ig,:) *fract(ig)   ! >0 vers le haut
104c >0 vers le bas + conversion en W/m2:
105               swnet(ig,:) = -1.e-3*fnetv(ig,:)         
106               
107               DO j=1,nlayer
108                  sol_htg(ig,j)=                           ! K/s
109     s            (fnetv(ig,j+1)-fnetv(ig,j))
110     s                              /(colden(j)*csubp)
111               ENDDO
112            ENDIF
113         ENDDO
114
115      RETURN
116 191  FORMAT(F8.2,1P10E10.2)
117 192  FORMAT(a8,1P10E10.2)
118      END
Note: See TracBrowser for help on using the repository browser.