4 |
|
|
5 |
contains |
contains |
6 |
|
|
7 |
SUBROUTINE swclr(knu, flag_aer, palbp, pdsig, prayl, psec, pcgaz, ppizaz, & |
SUBROUTINE swclr(knu, palbp, pdsig, prayl, psec, ppizaz, pray1, pray2, & |
8 |
pray1, pray2, prefz, prj, prk, prmu0, ptauaz, ptra1, ptra2) |
prefz, prj, prk, prmu0, ptauaz, ptra1, ptra2) |
9 |
|
|
10 |
! PURPOSE. |
! PURPOSE. |
11 |
! COMPUTES THE REFLECTIVITY AND TRANSMISSIVITY IN CASE OF |
! COMPUTES THE REFLECTIVITY AND TRANSMISSIVITY IN CASE OF |
28 |
! ARGUMENTS: |
! ARGUMENTS: |
29 |
|
|
30 |
INTEGER knu |
INTEGER knu |
|
! -OB |
|
|
logical, intent(in):: flag_aer |
|
31 |
DOUBLE PRECISION palbp(kdlon, 2) |
DOUBLE PRECISION palbp(kdlon, 2) |
32 |
DOUBLE PRECISION, intent(in):: pdsig(kdlon, kflev) |
DOUBLE PRECISION, intent(in):: pdsig(kdlon, kflev) |
33 |
DOUBLE PRECISION, intent(in):: prayl(kdlon) |
DOUBLE PRECISION, intent(in):: prayl(kdlon) |
34 |
DOUBLE PRECISION psec(kdlon) |
DOUBLE PRECISION psec(kdlon) |
35 |
|
|
|
DOUBLE PRECISION, intent(out):: pcgaz(kdlon, kflev) |
|
36 |
DOUBLE PRECISION, intent(out):: ppizaz(kdlon, kflev) |
DOUBLE PRECISION, intent(out):: ppizaz(kdlon, kflev) |
37 |
DOUBLE PRECISION pray1(kdlon, kflev + 1) |
DOUBLE PRECISION pray1(kdlon, kflev + 1) |
38 |
DOUBLE PRECISION pray2(kdlon, kflev + 1) |
DOUBLE PRECISION pray2(kdlon, kflev + 1) |
72 |
|
|
73 |
DO jk = 1, kflev |
DO jk = 1, kflev |
74 |
DO jl = 1, kdlon |
DO jl = 1, kdlon |
|
pcgaz(jl, jk) = 0d0 |
|
75 |
ptauaz(jl, jk) = prayl(jl) * pdsig(jl, jk) |
ptauaz(jl, jk) = prayl(jl) * pdsig(jl, jk) |
76 |
|
ppizaz(jl, jk) = 1d0 - repsct |
77 |
END DO |
END DO |
|
|
|
|
IF (flag_aer) THEN |
|
|
! -OB |
|
|
DO jl = 1, kdlon |
|
|
ppizaz(jl, jk) = 1d0 |
|
|
END DO |
|
|
ELSE |
|
|
DO jl = 1, kdlon |
|
|
ppizaz(jl, jk) = 1d0 - repsct |
|
|
END DO |
|
|
END IF |
|
78 |
END DO |
END DO |
79 |
|
|
80 |
! 2. TOTAL EFFECTIVE CLOUDINESS ABOVE A GIVEN LEVEL |
! 2. TOTAL EFFECTIVE CLOUDINESS ABOVE A GIVEN LEVEL |