/[lmdze]/trunk/Sources/phylmd/Radlwsw/lw.f
ViewVC logotype

Diff of /trunk/Sources/phylmd/Radlwsw/lw.f

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

trunk/phylmd/Radlwsw/lw.f revision 82 by guez, Wed Mar 5 14:57:53 2014 UTC trunk/Sources/phylmd/Radlwsw/lw.f revision 168 by guez, Wed Sep 9 10:41:47 2015 UTC
# Line 4  module lw_m Line 4  module lw_m
4    
5  contains  contains
6    
7    SUBROUTINE LW(PPMB, PDP, PPSOL, PDT0, PEMIS, PTL, PTAVE, PWV, POZON, PAER, &    SUBROUTINE LW(PPMB, PDP, PDT0, PEMIS, PTL, PTAVE, PWV, POZON, PAER, PCLDLD, &
8         PCLDLD, PCLDLU, PVIEW, PCOLR, PCOLR0, PTOPLW, PSOLLW, PTOPLW0, PSOLLW0, &         PCLDLU, PVIEW, PCOLR, PCOLR0, PTOPLW, PSOLLW, PTOPLW0, PSOLLW0, &
9         psollwdown, plwup, plwdn, plwup0, plwdn0)         psollwdown, plwup, plwdn, plwup0, plwdn0)
10    
11        use lwbv_m, only: lwbv
12      use LWU_m, only: LWU      use LWU_m, only: LWU
     USE suphec_m, ONLY: md, rcpd, rday, rg, rmo3  
13      USE raddim, ONLY: kdlon, kflev      USE raddim, ONLY: kdlon, kflev
14      USE raddimlw, ONLY: nua      USE raddimlw, ONLY: nua
15        USE suphec_m, ONLY: md, rcpd, rday, rg, rmo3
16    
17      ! Method.      ! Method.
18    
19      ! 1. Computes the pressure and temperature weighted amounts of      ! 1. Computes the pressure and temperature weighted amounts of
20      ! absorbers.      ! absorbers.
21    
22      ! 2. Computes the planck functions on the interfaces and the      ! 2. Computes the Planck functions on the interfaces and the
23      ! gradient of planck functions in the layers.      ! gradient of Planck functions in the layers.
24    
25      ! 3. Performs the vertical integration distinguishing the con-      ! 3. Performs the vertical integration distinguishing the
26      ! tributions of the adjacent and distant layers and those from the      ! contributions of the adjacent and distant layers and those from
27      ! boundaries.      ! the boundaries.
28    
29      ! 4. Computes the clear-sky downward and upward emissivities.      ! 4. Computes the clear-sky downward and upward emissivities.
30    
31      ! 5. Introduces the effects of the clouds on the fluxes.      ! 5. Introduces the effects of the clouds on the fluxes.
32    
33      ! Reference: see radiation's part of the model's documentation and      ! Reference: see radiation part of ECMWF documentation of the IFS.
     ! ECMWF research department documentation of the IFS  
34    
35      ! Author:      ! Author:
36      ! Jean-Jacques Morcrette *ECMWF*      ! Jean-Jacques Morcrette ECMWF
37    
38      ! Original : 89-07-14      ! Original : July 14th, 1989
39    
40      DOUBLE PRECISION PCLDLD(KDLON, KFLEV) ! DOWNWARD EFFECTIVE CLOUD COVER      DOUBLE PRECISION PCLDLD(KDLON, KFLEV) ! DOWNWARD EFFECTIVE CLOUD COVER
41      DOUBLE PRECISION PCLDLU(KDLON, KFLEV) ! UPWARD EFFECTIVE CLOUD COVER      DOUBLE PRECISION PCLDLU(KDLON, KFLEV) ! UPWARD EFFECTIVE CLOUD COVER
# Line 43  contains Line 43  contains
43      DOUBLE PRECISION PDT0(KDLON) ! SURFACE TEMPERATURE DISCONTINUITY (K)      DOUBLE PRECISION PDT0(KDLON) ! SURFACE TEMPERATURE DISCONTINUITY (K)
44      DOUBLE PRECISION PEMIS(KDLON) ! SURFACE EMISSIVITY      DOUBLE PRECISION PEMIS(KDLON) ! SURFACE EMISSIVITY
45      DOUBLE PRECISION PPMB(KDLON, KFLEV+1) ! HALF LEVEL PRESSURE (mb)      DOUBLE PRECISION PPMB(KDLON, KFLEV+1) ! HALF LEVEL PRESSURE (mb)
     DOUBLE PRECISION PPSOL(KDLON) ! SURFACE PRESSURE (Pa)  
46      DOUBLE PRECISION POZON(KDLON, KFLEV) ! O3 CONCENTRATION (kg/kg)      DOUBLE PRECISION POZON(KDLON, KFLEV) ! O3 CONCENTRATION (kg/kg)
47      DOUBLE PRECISION PTL(KDLON, KFLEV+1) ! HALF LEVEL TEMPERATURE (K)      DOUBLE PRECISION PTL(KDLON, KFLEV+1) ! HALF LEVEL TEMPERATURE (K)
48      DOUBLE PRECISION PAER(KDLON, KFLEV, 5) ! OPTICAL THICKNESS OF THE AEROSOLS      DOUBLE PRECISION PAER(KDLON, KFLEV, 5) ! OPTICAL THICKNESS OF THE AEROSOLS
# Line 68  contains Line 67  contains
67      DOUBLE PRECISION ZABCU(KDLON, NUA, 3*KFLEV+1)      DOUBLE PRECISION ZABCU(KDLON, NUA, 3*KFLEV+1)
68      DOUBLE PRECISION ZOZ(KDLON, KFLEV)      DOUBLE PRECISION ZOZ(KDLON, KFLEV)
69    
70      DOUBLE PRECISION ZFLUX(KDLON, 2, KFLEV+1) ! RADIATIVE FLUXES (1:up; 2:down)      DOUBLE PRECISION, save:: ZFLUX(KDLON, 2, KFLEV+1)
71      DOUBLE PRECISION ZFLUC(KDLON, 2, KFLEV+1) ! CLEAR-SKY RADIATIVE FLUXES      ! RADIATIVE FLUXES (1:up; 2:down)
72      DOUBLE PRECISION ZBINT(KDLON, KFLEV+1) ! Intermediate variable  
73      DOUBLE PRECISION ZBSUI(KDLON) ! Intermediate variable      DOUBLE PRECISION, save:: ZFLUC(KDLON, 2, KFLEV+1)
74      DOUBLE PRECISION ZCTS(KDLON, KFLEV) ! Intermediate variable      ! CLEAR-SKY RADIATIVE FLUXES
75      DOUBLE PRECISION ZCNTRB(KDLON, KFLEV+1, KFLEV+1) ! Intermediate variable  
76      SAVE ZFLUX, ZFLUC, ZBINT, ZBSUI, ZCTS, ZCNTRB      ! Intermediate variables:
77        DOUBLE PRECISION, save:: ZBINT(KDLON, KFLEV+1)
78        DOUBLE PRECISION, save:: ZBSUI(KDLON)
79        DOUBLE PRECISION, save:: ZCTS(KDLON, KFLEV)
80        DOUBLE PRECISION, save:: ZCNTRB(KDLON, KFLEV+1, KFLEV+1)
81    
82      INTEGER ilim, i, k, kpl1      INTEGER ilim, i, k, kpl1
83    
# Line 93  contains Line 96  contains
96               ZOZ(i, k) = POZON(i, k)*PDP(i, k) * MD/RMO3               ZOZ(i, k) = POZON(i, k)*PDP(i, k) * MD/RMO3
97            ENDDO            ENDDO
98         ENDDO         ENDDO
99         CALL LWU(PAER, PDP, PPMB, PPSOL, ZOZ, PTAVE, PVIEW, PWV, ZABCU)         CALL LWU(PAER, PDP, PPMB, ZOZ, PTAVE, PVIEW, PWV, ZABCU)
100         CALL LWBV(ILIM, PDP, PDT0, PEMIS, PPMB, PTL, PTAVE, ZABCU, &         CALL LWBV(ILIM, PDT0, PEMIS, PPMB, PTL, PTAVE, ZABCU, &
101              ZFLUC, ZBINT, ZBSUI, ZCTS, ZCNTRB)              ZFLUC, ZBINT, ZBSUI, ZCTS, ZCNTRB)
102         itaplw0 = 0         itaplw0 = 0
103      ENDIF      ENDIF

Legend:
Removed from v.82  
changed lines
  Added in v.168

  ViewVC Help
Powered by ViewVC 1.1.21