source: trunk/LMDZ.VENUS/libf/phyvenus/lw_venus_ve.multimat @ 777

Last change on this file since 777 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: 3.5 KB
Line 
1      SUBROUTINE LW_venus_ve(
2     S              PPB, pt, psi, deltapsi,
3     S              PCOOL,
4     S              PTOPLW,PSOLLW,PSOLLWDN,
5     S              ZFLNET)
6     
7      IMPLICIT none
8
9#include "dimensions.h"
10#include "dimphy.h"
11#include "raddim.h"
12#include "YOMCST.h"
13C
14C     ------------------------------------------------------------------
15C
16C     PURPOSE.
17C     --------
18C
19c     This routine uses the NER matrix
20c     (computed for a given cell and temp profile in radlwsw,
21c      from the initial matrixes computed in load_psi)
22c     to compute cooling rates and radiative fluxes.
23c
24C     AUTHOR.
25C     -------
26C        Sebastien Lebonnois
27C
28C     MODIFICATIONS.
29C     --------------
30C        ORIGINAL : 27/07/2005
31C        version multimatrice (topographie, sommet nuages): 20/12/2006
32C     ------------------------------------------------------------------
33C
34C* ARGUMENTS:
35C
36c inputs
37
38      REAL    PPB(KFLEV+1)  ! inter-couches PRESSURE (bar)
39      REAL    pt(kflev)     ! mid-layer temperature
40      real    psi(0:kflev+1,0:kflev+1)      ! NER in W/m**2
41      real    deltapsi(0:kflev+1,0:kflev+1) ! D NER / DT in W/m**2/K
42C
43c output
44
45      REAL   PCOOL(KFLEV) ! LONGWAVE COOLING (K/VENUSDAY) within each layer
46      REAL   PTOPLW       ! LONGWAVE FLUX AT T.O.A. (net, + vers le haut)
47      REAL   PSOLLW       ! LONGWAVE FLUX AT SURFACE (net, + vers le haut)
48      REAL   PSOLLWDN     ! LONGWAVE FLUX AT SURFACE (down, + vers le bas)
49      REAL   ZFLNET(KFLEV+1) ! net thermal flux at ppb levels (+ vers le haut)
50
51C
52C* LOCAL VARIABLES:
53C
54      real    dureejour
55      parameter (dureejour=10.087e6)
56     
57      integer i,j,p
58      real   zlnet(kflev+1)    ! net thermal flux (W/m**2)
59      real   dzlnet(0:kflev)   ! Radiative budget (W/m**2)
60      real   pdp(kflev)        ! epaisseur de la couche en pression (Pa)
61
62c --------------------------
63c Calculation of the fluxes
64c --------------------------
65
66c flux aux intercouches:
67c zlnet(i+1) est le flux net traversant le plafond de la couche i (+ vers le haut)
68      do p=0,kflev ! numero de la couche
69        zlnet(p+1) = 0.0
70        do j=p+1,kflev+1
71         do i=0,p
72           zlnet(p+1) = zlnet(p+1)+ psi(i,j)
73         enddo
74        enddo
75      enddo
76
77c flux net au sol, + vers le haut:
78      PSOLLW = zlnet(1)
79c flux vers le bas au sol, + vers le bas:
80      PSOLLWDN = 0.0
81      do i=1,kflev+1
82        PSOLLWDN = PSOLLWDN+max(psi(i,0),0.0)
83      enddo
84
85c dfluxnet = radiative budget (W m-2)
86      do p=0,kflev ! numero de la couche
87        dzlnet(p) = 0.0
88        do j=0,kflev+1
89           dzlnet(p) = dzlnet(p)+psi(p,j)
90        enddo
91      enddo
92
93     
94c --------------------------------------
95c Interpolation in the GCM vertical grid
96c --------------------------------------
97
98c Flux net
99c --------
100     
101      do j=1,kflev+1
102        ZFLNET(j) =  zlnet(j)
103      enddo
104
105      PTOPLW   = ZFLNET(kflev+1)
106     
107c Heating rates
108c -------------
109
110c  cool (K/s) = dfluxnet (W/m2)    ! positif quand nrj sort de la couche
111c              *g        (m/s2)
112c              /(-dp)  (epaisseur couche, en Pa=kg/m/s2)
113c              /cp  (J/kg/K)
114     
115      do j=1,kflev
116        pdp(j)=(PPB(j)-PPB(j+1))*1.e5
117      enddo
118
119c calcul direct OU calcul par schema implicit
120      if (1.eq.0) then
121        do j=1,kflev
122! ADAPTATION GCM POUR CP(T)
123         PCOOL(j) = dzlnet(j) *RG/cpdet(pt(j)) / pdp(j)
124        enddo
125      else
126        call lwi(kflev,dzlnet,deltapsi,pdp,PCOOL)
127      endif
128c     print*,dzlnet
129c     print*,pdp
130c     print*,PCOOL
131
132      do j=1,kflev
133        PCOOL(j) = PCOOL(j)*dureejour ! K/Venusday
134      enddo
135
136      return
137      end
138
Note: See TracBrowser for help on using the repository browser.