source: trunk/libf/phytitan/radlwsw.F @ 97

Last change on this file since 97 was 97, checked in by slebonnois, 14 years ago

Serie de modifs SL pour homogeneisation des phytitan et phyvenus
Ca touche aussi aux liens phy/dyn (surtout a propos de clesphy0),
a verifier avec les autres, donc...

File size: 5.1 KB
Line 
1      SUBROUTINE radlwsw(dist, rmu0, fract, dtimerad, zzlev,
2     .                  paprs, pplay,tsol, pt, nq, nmicro, pq,
3     .                  heat,cool,radsol,
4     .                  topsw,toplw,solsw,sollw,
5     .                  sollwdown,
6     .                  lwnet, swnet)
7c     
8      IMPLICIT none
9c======================================================================
10c Auteur(s): Z.X. Li (LMD/CNRS) date: 19960719
11c Objet: interface entre le modele et les rayonnements
12c Arguments:
13c dist-----input-R- distance astronomique terre-soleil
14c rmu0-----input-R- cosinus de l'angle zenithal
15c fract----input-R- duree d'ensoleillement normalisee
16c dtimerad-input-R- intervalle de temps du radiatif
17c zzlev----input-R- altitudes des inter-couches (m)
18c paprs----input-R- pression a inter-couche (Pa)
19c pplay----input-R- pression au milieu de couche (Pa)
20c tsol-----input-R- temperature du sol (en K)
21c t--------input-R- temperature (K)
22c nq-------input-R- nombre de traceurs
23c nmicro---input-R- nombre de traceurs microphysiques
24c pq-------input-R- traceurs (rapports de melange)
25c heat-----output-R- echauffement atmospherique (visible) (K/s)
26c cool-----output-R- refroidissement dans l'IR (K/s)
27c radsol---output-R- bilan radiatif net au sol (W/m**2) (+ vers le bas)
28c topsw----output-R- flux solaire net au sommet de l'atm. (+ vers le bas)
29c toplw----output-R- ray. IR net au sommet de l'atmosphere (+ vers le haut)
30c solsw----output-R- flux solaire net a la surface (+ vers le bas)
31c sollw----output-R- ray. IR net a la surface (+ vers le bas)
32c sollwdown-output-R- ray. IR descendant a la surface (+ vers le bas)
33c lwnet____output-R- flux IR net (+ vers le haut)
34c swnet____output-R- flux solaire net (+ vers le bas)
35c
36     
37c   S. Lebonnois    05/2008
38c  VERSION TITAN
39
40c======================================================================
41#include "dimensions.h"
42#include "dimphy.h"
43#include "raddim.h"
44#include "YOMCST.h"
45#include "clesphys.h"
46#include "comgeomphy.h"
47c
48c ARGUMENTS
49      INTEGER nq,nmicro
50      real rmu0(klon), fract(klon), dist, dtimerad
51c
52      real zzlev(klon,klev+1),paprs(klon,klev+1), pplay(klon,klev)
53      real tsol(klon)
54      real pt(klon,klev)
55      real pq(klon,klev,nq)
56      real heat(klon,klev), cool(klon,klev)
57      real radsol(klon), topsw(klon), toplw(klon)
58      real solsw(klon), sollw(klon)
59      real sollwdown(klon)
60      REAL swnet(klon,kflev+1),lwnet(klon,kflev+1)
61c
62c LOCAL VARIABLES
63      integer i,k,l,iq
64      real zp(klon,klev+1),zt(klon,klev+1),zz(klon,klev+1)
65      real zq(klon,klev,nq)
66      real zheat(klon,klev), zcool(klon,klev)
67      REAL zswnet(klon,kflev+1),zlwnet(klon,kflev+1)
68     
69* common relatifs aux aerosols
70      REAL qaer(klon,klev,nqtot)
71      common/traceurs/qaer
72     
73
74c =======================================
75c INITIALISATIONS
76c =======================================
77
78c   passage au pressions en bar avec indice 1 au sommet.
79             do l=2,klev+1
80                do i=1,klon
81                   zp(i,l)=paprs(i,klev+2-l)*1.e-5
82                enddo
83             enddo
84             do i=1,klon
85                zp(i,1)=zp(i,2)*.001
86             enddo
87
88c   altitudes (m) avec indice 1 en haut
89             do l=1,klev+1
90                do i=1,klon
91                   zz(i,l)=zzlev(i,klev+2-l)
92                enddo
93             enddo
94
95c   temperatures avec indice 1 en haut
96             do l=1,klev
97                do i=1,klon
98                   zt(i,l)=pt(i,klev+1-l)
99                enddo
100             enddo
101             do i=1,klon
102                zt(i,klev+1)=tsol(i)
103             enddo
104
105c  traceurs avec indice 1 en haut
106             do l=1,klev
107                do i=1,klon
108                 do iq=1,nq
109                   zq(i,l,iq)=pq(i,klev+1-l,iq)
110                 enddo
111                enddo
112             enddo
113
114c =======================================
115c CALCUL DES TAU V+IR  (dans des common...)
116c =======================================
117
118      print*,'On calcule les opacites'
119
120         CALL radtitan(zp,nq,nmicro,zq)
121
122c =======================================
123c CALCUL DU SW
124c =======================================
125
126      print*,'On calcule le rayonnement SW'
127
128      CALL heating(dist,rmu0,fract,zheat,zswnet)
129
130c inversion de l'axe vertical
131             do l=1,klev
132                do i=1,klon
133                   heat(i,l)=zheat(i,klev+1-l)
134                enddo
135             enddo
136             do l=1,klev+1
137                do i=1,klon
138                   swnet(i,l)=zswnet(i,klev+2-l)
139                enddo
140             enddo
141
142      solsw = swnet(:,1)
143      topsw = swnet(:,klev+1)
144
145c =======================================
146c CALCUL DU LW
147c =======================================
148
149      print*,'On calcule le rayonnement LW'
150
151      CALL cooling(klon,klev+1,zp,zt,zz,zcool,zlwnet,sollwdown)
152
153c inversion de l'axe vertical
154             do l=1,klev
155                do i=1,klon
156                   cool(i,l)=zcool(i,klev+1-l)
157                enddo
158             enddo
159             do l=1,klev+1
160                do i=1,klon
161                   lwnet(i,l)=zlwnet(i,klev+2-l)
162                enddo
163             enddo
164
165      sollw  = -lwnet(:,1)
166      toplw  = lwnet(:,klev+1)
167      radsol = solsw+sollw
168     
169      RETURN
170      END
Note: See TracBrowser for help on using the repository browser.