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

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

Creation de repertoires:

  • chantiers : pour communiquer sur nos projets de modifs
  • documentation : pour stocker les docs

Ajout de:

  • libf/phytitan : physique de Titan
  • libf/chimtitan: chimie de Titan
  • libf/phyvenus : physique de Venus
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,nqmx)
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.