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

Annotation of /trunk/libf/phylmd/Radlwsw/lw.f

Parent Directory Parent Directory | Revision Log Revision Log


Revision 24 - (hide annotations)
Wed Mar 3 13:23:49 2010 UTC (14 years, 3 months ago) by guez
File size: 6652 byte(s)
Created directory "phylmd/Radlwsw". Split "radlwsw.f" in files
containing a single procedure.

Removed variable "itaufinp1" in "leapfrog".

1 guez 24 cIM ctes ds clesphys.h SUBROUTINE LW(RCO2,RCH4,RN2O,RCFC11,RCFC12,
2     SUBROUTINE LW(
3     . PPMB, PDP,
4     . PPSOL,PDT0,PEMIS,
5     . PTL, PTAVE, PWV, POZON, PAER,
6     . PCLDLD,PCLDLU,
7     . PVIEW,
8     . PCOLR, PCOLR0,
9     . PTOPLW,PSOLLW,PTOPLW0,PSOLLW0,
10     . psollwdown,
11     . plwup, plwdn, plwup0, plwdn0)
12     use dimens_m
13     use dimphy
14     use clesphys
15     use YOMCST
16     use raddim
17     use raddimlw
18     IMPLICIT none
19     C
20     C-----------------------------------------------------------------------
21     C METHOD.
22     C -------
23     C
24     C 1. COMPUTES THE PRESSURE AND TEMPERATURE WEIGHTED AMOUNTS OF
25     C ABSORBERS.
26     C 2. COMPUTES THE PLANCK FUNCTIONS ON THE INTERFACES AND THE
27     C GRADIENT OF PLANCK FUNCTIONS IN THE LAYERS.
28     C 3. PERFORMS THE VERTICAL INTEGRATION DISTINGUISHING THE CON-
29     C TRIBUTIONS OF THE ADJACENT AND DISTANT LAYERS AND THOSE FROM THE
30     C BOUNDARIES.
31     C 4. COMPUTES THE CLEAR-SKY DOWNWARD AND UPWARD EMISSIVITIES.
32     C 5. INTRODUCES THE EFFECTS OF THE CLOUDS ON THE FLUXES.
33     C
34     C
35     C REFERENCE.
36     C ----------
37     C
38     C SEE RADIATION'S PART OF THE MODEL'S DOCUMENTATION AND
39     C ECMWF RESEARCH DEPARTMENT DOCUMENTATION OF THE IFS
40     C
41     C AUTHOR.
42     C -------
43     C JEAN-JACQUES MORCRETTE *ECMWF*
44     C
45     C MODIFICATIONS.
46     C --------------
47     C ORIGINAL : 89-07-14
48     C-----------------------------------------------------------------------
49     cIM ctes ds clesphys.h
50     c REAL*8 RCO2 ! CO2 CONCENTRATION (IPCC:353.E-06* 44.011/28.97)
51     c REAL*8 RCH4 ! CH4 CONCENTRATION (IPCC: 1.72E-06* 16.043/28.97)
52     c REAL*8 RN2O ! N2O CONCENTRATION (IPCC: 310.E-09* 44.013/28.97)
53     c REAL*8 RCFC11 ! CFC11 CONCENTRATION (IPCC: 280.E-12* 137.3686/28.97)
54     c REAL*8 RCFC12 ! CFC12 CONCENTRATION (IPCC: 484.E-12* 120.9140/28.97)
55     REAL*8 PCLDLD(KDLON,KFLEV) ! DOWNWARD EFFECTIVE CLOUD COVER
56     REAL*8 PCLDLU(KDLON,KFLEV) ! UPWARD EFFECTIVE CLOUD COVER
57     REAL*8 PDP(KDLON,KFLEV) ! LAYER PRESSURE THICKNESS (Pa)
58     REAL*8 PDT0(KDLON) ! SURFACE TEMPERATURE DISCONTINUITY (K)
59     REAL*8 PEMIS(KDLON) ! SURFACE EMISSIVITY
60     REAL*8 PPMB(KDLON,KFLEV+1) ! HALF LEVEL PRESSURE (mb)
61     REAL*8 PPSOL(KDLON) ! SURFACE PRESSURE (Pa)
62     REAL*8 POZON(KDLON,KFLEV) ! O3 CONCENTRATION (kg/kg)
63     REAL*8 PTL(KDLON,KFLEV+1) ! HALF LEVEL TEMPERATURE (K)
64     REAL*8 PAER(KDLON,KFLEV,5) ! OPTICAL THICKNESS OF THE AEROSOLS
65     REAL*8 PTAVE(KDLON,KFLEV) ! LAYER TEMPERATURE (K)
66     REAL*8 PVIEW(KDLON) ! COSECANT OF VIEWING ANGLE
67     REAL*8 PWV(KDLON,KFLEV) ! SPECIFIC HUMIDITY (kg/kg)
68     C
69     REAL*8 PCOLR(KDLON,KFLEV) ! LONG-WAVE TENDENCY (K/day)
70     REAL*8 PCOLR0(KDLON,KFLEV) ! LONG-WAVE TENDENCY (K/day) clear-sky
71     REAL*8 PTOPLW(KDLON) ! LONGWAVE FLUX AT T.O.A.
72     REAL*8 PSOLLW(KDLON) ! LONGWAVE FLUX AT SURFACE
73     REAL*8 PTOPLW0(KDLON) ! LONGWAVE FLUX AT T.O.A. (CLEAR-SKY)
74     REAL*8 PSOLLW0(KDLON) ! LONGWAVE FLUX AT SURFACE (CLEAR-SKY)
75     c Rajout LF
76     real*8 psollwdown(kdlon) ! LONGWAVE downwards flux at surface
77     cIM
78     REAL*8 plwup(KDLON,KFLEV+1) ! LW up total sky
79     REAL*8 plwup0(KDLON,KFLEV+1) ! LW up clear sky
80     REAL*8 plwdn(KDLON,KFLEV+1) ! LW down total sky
81     REAL*8 plwdn0(KDLON,KFLEV+1) ! LW down clear sky
82     C-------------------------------------------------------------------------
83     REAL*8 ZABCU(KDLON,NUA,3*KFLEV+1)
84     REAL*8 ZOZ(KDLON,KFLEV)
85     c
86     REAL*8 ZFLUX(KDLON,2,KFLEV+1) ! RADIATIVE FLUXES (1:up; 2:down)
87     REAL*8 ZFLUC(KDLON,2,KFLEV+1) ! CLEAR-SKY RADIATIVE FLUXES
88     REAL*8 ZBINT(KDLON,KFLEV+1) ! Intermediate variable
89     REAL*8 ZBSUI(KDLON) ! Intermediate variable
90     REAL*8 ZCTS(KDLON,KFLEV) ! Intermediate variable
91     REAL*8 ZCNTRB(KDLON,KFLEV+1,KFLEV+1) ! Intermediate variable
92     SAVE ZFLUX, ZFLUC, ZBINT, ZBSUI, ZCTS, ZCNTRB
93     c
94     INTEGER ilim, i, k, kpl1
95     C
96     INTEGER lw0pas ! Every lw0pas steps, clear-sky is done
97     PARAMETER (lw0pas=1)
98     INTEGER lwpas ! Every lwpas steps, cloudy-sky is done
99     PARAMETER (lwpas=1)
100     c
101     INTEGER itaplw0, itaplw
102     LOGICAL appel1er
103     SAVE appel1er, itaplw0, itaplw
104     DATA appel1er /.TRUE./
105     DATA itaplw0,itaplw /0,0/
106     C ------------------------------------------------------------------
107     IF (appel1er) THEN
108     PRINT*, "LW clear-sky calling frequency: ", lw0pas
109     PRINT*, "LW cloudy-sky calling frequency: ", lwpas
110     PRINT*, " In general, they should be 1"
111     appel1er=.FALSE.
112     ENDIF
113     C
114     IF (MOD(itaplw0,lw0pas).EQ.0) THEN
115     DO k = 1, KFLEV ! convertir ozone de kg/kg en pa/pa
116     DO i = 1, KDLON
117     c convertir ozone de kg/kg en pa (modif MPL 100505)
118     ZOZ(i,k) = POZON(i,k)*PDP(i,k) * RMD/RMO3
119     c print *,'LW: ZOZ*10**6=',ZOZ(i,k)*1000000.
120     ENDDO
121     ENDDO
122     cIM ctes ds clesphys.h CALL LWU(RCO2,RCH4, RN2O, RCFC11, RCFC12,
123     CALL LWU(
124     S PAER,PDP,PPMB,PPSOL,ZOZ,PTAVE,PVIEW,PWV,ZABCU)
125     CALL LWBV(ILIM,PDP,PDT0,PEMIS,PPMB,PTL,PTAVE,ZABCU,
126     S ZFLUC,ZBINT,ZBSUI,ZCTS,ZCNTRB)
127     itaplw0 = 0
128     ENDIF
129     itaplw0 = itaplw0 + 1
130     C
131     IF (MOD(itaplw,lwpas).EQ.0) THEN
132     CALL LWC(ILIM,PCLDLD,PCLDLU,PEMIS,
133     S ZFLUC,ZBINT,ZBSUI,ZCTS,ZCNTRB,
134     S ZFLUX)
135     itaplw = 0
136     ENDIF
137     itaplw = itaplw + 1
138     C
139     DO k = 1, KFLEV
140     kpl1 = k+1
141     DO i = 1, KDLON
142     PCOLR(i,k) = ZFLUX(i,1,kpl1)+ZFLUX(i,2,kpl1)
143     . - ZFLUX(i,1,k)- ZFLUX(i,2,k)
144     PCOLR(i,k) = PCOLR(i,k) * RDAY*RG/RCPD / PDP(i,k)
145     PCOLR0(i,k) = ZFLUC(i,1,kpl1)+ZFLUC(i,2,kpl1)
146     . - ZFLUC(i,1,k)- ZFLUC(i,2,k)
147     PCOLR0(i,k) = PCOLR0(i,k) * RDAY*RG/RCPD / PDP(i,k)
148     ENDDO
149     ENDDO
150     DO i = 1, KDLON
151     PSOLLW(i) = -ZFLUX(i,1,1)-ZFLUX(i,2,1)
152     PTOPLW(i) = ZFLUX(i,1,KFLEV+1) + ZFLUX(i,2,KFLEV+1)
153     c
154     PSOLLW0(i) = -ZFLUC(i,1,1)-ZFLUC(i,2,1)
155     PTOPLW0(i) = ZFLUC(i,1,KFLEV+1) + ZFLUC(i,2,KFLEV+1)
156     psollwdown(i) = -ZFLUX(i,2,1)
157     c
158     cIM attention aux signes !; LWtop >0, LWdn < 0
159     DO k = 1, KFLEV+1
160     plwup(i,k) = ZFLUX(i,1,k)
161     plwup0(i,k) = ZFLUC(i,1,k)
162     plwdn(i,k) = ZFLUX(i,2,k)
163     plwdn0(i,k) = ZFLUC(i,2,k)
164     ENDDO
165     ENDDO
166     C ------------------------------------------------------------------
167     RETURN
168     END

  ViewVC Help
Powered by ViewVC 1.1.21