source: trunk/libf/phyvenus/lw_venus_ve.F @ 97

Last change on this file since 97 was 3, checked in by slebonnois, 15 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     
93c --------------------------------------
94c Interpolation in the GCM vertical grid
95c --------------------------------------
96
97c Flux net
98c --------
99     
100      do j=1,kflev+1
101        ZFLNET(j) =  zlnet(j)
102      enddo
103      PTOPLW   = ZFLNET(kflev+1)
104     
105c Heating rates
106c -------------
107
108c  cool (K/s) = dfluxnet (W/m2)    ! positif quand nrj sort de la couche
109c              *g        (m/s2)
110c              /(-dp)  (epaisseur couche, en Pa=kg/m/s2)
111c              /cp  (J/kg/K)
112     
113      do j=1,kflev
114        pdp(j)=(PPB(j)-PPB(j+1))*1.e5
115      enddo
116
117c calcul direct OU calcul par schema implicit
118      if (1.eq.0) then
119        do j=1,kflev
120! ADAPTATION GCM POUR CP(T)
121         PCOOL(j) = dzlnet(j) *RG/cpdet(pt(j)) / pdp(j)
122        enddo
123      else
124        call lwi(kflev,dzlnet,deltapsi,pdp,pt,PCOOL)
125      endif
126c     print*,dzlnet
127c     print*,pdp
128c     print*,PCOOL
129
130      do j=1,kflev
131        PCOOL(j) = PCOOL(j)*dureejour ! K/Venusday
132      enddo
133
134      return
135      end
136
Note: See TracBrowser for help on using the repository browser.