source: trunk/libf/phyvenus/radlwsw.NewtonCool @ 98

Last change on this file since 98 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.4 KB
Line 
1!
2! $Header: /home/cvsroot/LMDZ4/libf/phylmd/radlwsw.F,v 1.2 2004/10/27 10:14:46 lmdzadmin Exp $
3!
4      SUBROUTINE radlwsw(dist, rmu0, fract,
5     .                  paprs, pplay,tsol, t,
6     .                  heat,cool,radsol,
7     .                  topsw,toplw,solsw,sollw,
8     .                  sollwdown,
9     .                  lwnet, swnet)
10c     
11      IMPLICIT none
12c======================================================================
13c Auteur(s): Z.X. Li (LMD/CNRS) date: 19960719
14c Objet: interface entre le modele et les rayonnements
15c Arguments:
16c dist-----input-R- distance astronomique terre-soleil
17c rmu0-----input-R- cosinus de l'angle zenithal
18c fract----input-R- duree d'ensoleillement normalisee
19c solaire--input-R- constante solaire (W/m**2) (dans clesphys.h)
20c paprs----input-R- pression a inter-couche (Pa)
21c pplay----input-R- pression au milieu de couche (Pa)
22c tsol-----input-R- temperature du sol (en K)
23c t--------input-R- temperature (K)
24c heat-----output-R- echauffement atmospherique (visible) (K/jour)
25c cool-----output-R- refroidissement dans l'IR (K/jour)
26c radsol---output-R- bilan radiatif net au sol (W/m**2) (+ vers le bas)
27c topsw----output-R- flux solaire net au sommet de l'atm. (+ vers le bas)
28c toplw----output-R- ray. IR net au sommet de l'atmosphere (+ vers le haut)
29c solsw----output-R- flux solaire net a la surface (+ vers le bas)
30c sollw----output-R- ray. IR net a la surface (+ vers le bas)
31c sollwdown-output-R- ray. IR descendant a la surface (+ vers le bas)
32c lwnet____output-R- flux IR net (+ vers le haut)
33c swnet____output-R- flux solaire net (+ vers le bas)
34c
35     
36c   S. Lebonnois    12/04/2007
37c  VERSION NEWTONIAN COOLING pour Venus (no diurnal cycle)
38
39c======================================================================
40#include "dimensions.h"
41#include "dimphy.h"
42#include "raddim.h"
43#include "YOMCST.h"
44#include "clesphys.h"
45#include "comgeomphy.h"
46c
47      real rmu0(klon), fract(klon), dist
48c
49      real paprs(klon,klev+1), pplay(klon,klev)
50      real tsol(klon)
51      real t(klon,klev)
52      real heat(klon,klev), cool(klon,klev)
53      real radsol(klon), topsw(klon), toplw(klon)
54      real solsw(klon), sollw(klon)
55      real sollwdown(klon)
56      REAL swnet(klon,kflev+1),lwnet(klon,kflev+1)
57c
58      INTEGER i,j,k
59      integer    nlevCLee,level
60      parameter (nlevCLee=30)
61      REAL   pressCLee(nlevCLee+1),tempCLee(nlevCLee+1)
62      real   dt_epCLee(nlevCLee+1),etaCLee(nlevCLee+1)
63      real   tauCLee
64      parameter (tauCLee=25*86400) ! en s
65      real   ztemp,zdt,fact
66      real   dTsdt(klev),zt_eq(klon,klev)
67      real   dureejour
68      parameter (dureejour=10.087e6)
69      save   zt_eq
70     
71      data     etaCLee/9.602e-1,8.679e-1,7.577e-1,6.420e-1,5.299e-1,
72     .                 4.273e-1,3.373e-1,2.610e-1,1.979e-1,1.472e-1,
73     .                 1.074e-1,7.672e-2,5.361e-2,3.657e-2,2.430e-2,
74     .                 1.569e-2,9.814e-3,5.929e-3,3.454e-3,1.934e-3,
75     .                 1.043e-3,5.400e-4,2.710e-4,1.324e-4,6.355e-5,
76     .                 3.070e-5,1.525e-5,7.950e-6,4.500e-6,2.925e-6,
77     .                 2.265e-6/
78      data   tempCLee/728.187,715.129,697.876,677.284,654.078,628.885,
79     .                602.225,574.542,546.104,517.339,488.560,459.932,
80     .                431.741,404.202,377.555,352.042,327.887,305.313,
81     .                284.556,265.697,248.844,233.771,220.368,208.247,
82     .                197.127,187.104,178.489,171.800,167.598,165.899,
83     .                165.676/
84      data   dt_epCLee/6.101 , 6.136 , 6.176 , 6.410 , 6.634 , 6.678 ,
85     .                 6.719 , 6.762 , 7.167 , 7.524 , 9.840 ,14.948 ,
86     .                21.370 ,28.746 ,36.373 ,43.315 ,48.534 ,51.175 ,
87     .                50.757 ,47.342 ,41.536 ,34.295 ,26.758 ,19.807 ,
88     .                14.001 , 9.599 , 6.504 , 4.439 , 3.126 , 2.370 ,
89     .                2.000/
90c
91
92      logical firstcall
93      data    firstcall/.true./
94      save    firstcall
95     
96c  Initialisations
97c-----------------
98
99      if (firstcall) then
100
101        PRINT*,"******* ATTENTION, NEWTONIAN COOLING ********"
102
103        pressCLee = etaCLee * 9.2e6
104
105        DO i = 1, klon
106       
107          do k = 1,klev
108         
109            level = 1
110            do j=1,nlevCLee
111              if (pressCLee(j).gt.pplay(i,k)) level = j
112            enddo
113           
114            fact  = (log10(pplay(i,k))-log10(pressCLee(level)))
115     .        /(log10(pressCLee(level+1))-log10(pressCLee(level)))
116            ztemp = tempCLee(level)*(1-fact)+tempCLee(level+1)*fact
117            zdt   = dt_epCLee(level)*(1-fact)+dt_epCLee(level+1)*fact
118c           zt_eq(i,k) = ztemp + zdt*(cos(rlatd(i)*RPI/180.)-2./RPI)
119            zt_eq(i,k) = ztemp + zdt*(cos(rlatd(i)*RPI/180.)-RPI/4.)
120           
121          enddo
122         
123        ENDDO !i
124
125      endif ! firstcall
126     
127c+++++++ BOUCLE SUR LA GRILLE +++++++++++++++++++++++++
128      DO j = 1,klon
129 
130          do k = 1,klev
131             dTsdt(k) = -(t(j,k)-zt_eq(j,k))/tauCLee   ! en K/s
132          enddo
133       
134         radsol(j) = 0.           ! + vers bas
135         topsw(j) = 0.            ! + vers bas
136         toplw(j) = 0.            ! + vers haut
137         solsw(j) = 0.            ! + vers bas
138         sollw(j) = 0.            ! + vers bas
139         sollwdown(j) = 0.        ! + vers bas
140
141        DO k = 1, kflev+1
142         lwnet  (j,k)   = 0.
143         swnet  (j,k)   = 0.
144        ENDDO
145
146        DO k = 1, kflev
147         heat (j,k) = dTsdt(k)*dureejour ! K/Venusday
148         cool (j,k) = 0.
149        ENDDO
150c
151      ENDDO !j
152c+++++++ FIN BOUCLE SUR LA GRILLE +++++++++++++++++++++++++
153
154      firstcall = .false.
155      RETURN
156      END
157
Note: See TracBrowser for help on using the repository browser.