6 pzs,pzs_xy,pslopang,pslopazi,psurf_triangle )
52 USE modi_surf_rad_modif
62 REAL,
INTENT(IN) :: ptstep
63 REAL,
DIMENSION(:),
INTENT(IN) :: pzenith
64 REAL,
DIMENSION(:),
INTENT(IN) :: pazim
65 REAL,
DIMENSION(:),
INTENT(IN) :: pps
66 REAL,
DIMENSION(:),
INTENT(IN) :: pta
67 REAL,
DIMENSION(:),
INTENT(IN) :: prain
70 REAL,
DIMENSION(:,:),
INTENT(IN) :: pzs
71 REAL,
DIMENSION(:,:),
INTENT(IN) :: pzs_xy
72 REAL,
DIMENSION(:,:,:),
INTENT(IN) :: pslopazi
73 REAL,
DIMENSION(:,:,:),
INTENT(IN) :: pslopang
74 REAL,
DIMENSION(:,:,:),
INTENT(IN) :: psurf_triangle
76 REAL,
DIMENSION(:,:),
INTENT(INOUT) :: pdir_sw
79 REAL,
DIMENSION(:),
INTENT(INOUT) :: plw
93 REAL,
DIMENSION(:,:),
ALLOCATABLE :: zmap
94 REAL,
DIMENSION(:,:),
ALLOCATABLE :: zcoszen
95 REAL,
DIMENSION(:,:),
ALLOCATABLE :: zsinzen
96 REAL,
DIMENSION(:,:),
ALLOCATABLE :: zazimsol
103 REAL,
DIMENSION(:,:,:),
ALLOCATABLE :: zdirflaswd
104 REAL,
DIMENSION(:,:,:),
ALLOCATABLE :: zdirsrfswd
107 REAL,
DIMENSION(:),
ALLOCATABLE :: zalpha
109 REAL,
PARAMETER :: vpres1 = 87000.
112 inbands =
SIZE(pdir_sw,2)
123 ALLOCATE(zcoszen(nnxloc,nnyloc))
124 ALLOCATE(zsinzen(nnxloc,nnyloc))
125 ALLOCATE(zazimsol(nnxloc,nnyloc))
126 ALLOCATE(zmap(nnxloc,nnyloc))
128 ALLOCATE(zdirflaswd(nnxloc,nnyloc,inbands))
129 ALLOCATE(zdirsrfswd(nnxloc,nnyloc,inbands))
131 ALLOCATE(zalpha(nix*niy))
138 IF (lrevertgrid)
THEN
142 zcoszen(jx+1,iindy+1) = cos(pzenith( jx + (jy-1)*nixloc ))
143 zsinzen(jx+1,iindy+1) = sin(pzenith( jx + (jy-1)*nixloc ))
144 zazimsol(jx+1,iindy+1) = pazim( jx + (jy-1)*nixloc )
150 zcoszen(jx+1,jy+1) = cos(pzenith( jx + (jy-1)*nixloc ))
151 zsinzen(jx+1,jy+1) = sin(pzenith( jx + (jy-1)*nixloc ))
152 zazimsol(jx+1,jy+1) = pazim( jx + (jy-1)*nixloc )
158 zcoszen(1,:) = zcoszen(2,:)
159 zcoszen(nnxloc,:) = zcoszen(nnxloc-1,:)
160 zcoszen(:,1) = zcoszen(:,2)
161 zcoszen(:,nnyloc) = zcoszen(:,nnyloc-1)
162 zsinzen(1,:) = zsinzen(2,:)
163 zsinzen(nnxloc,:) = zsinzen(nnxloc-1,:)
164 zsinzen(:,1) = zsinzen(:,2)
165 zsinzen(:,nnyloc) = zsinzen(:,nnyloc-1)
166 zazimsol(1,:) = zazimsol(2,:)
167 zazimsol(nnxloc,:) = zazimsol(nnxloc-1,:)
168 zazimsol(:,1) = zazimsol(:,2)
169 zazimsol(:,nnyloc) = zazimsol(:,nnyloc-1)
172 IF (lrevertgrid)
THEN
177 zdirflaswd(jx+1,iindy+1,jb) = pdir_sw( jx + (jy-1)*nixloc,jb)
185 zdirflaswd(jx+1,jy+1,jb) = pdir_sw( jx + (jy-1)*nixloc,jb)
192 zdirflaswd(1,:,:) = zdirflaswd(2,:,:)
193 zdirflaswd(nnxloc,:,:) = zdirflaswd(nnxloc-1,:,:)
194 zdirflaswd(:,1,:) = zdirflaswd(:,2,:)
195 zdirflaswd(:,nnyloc,:) = zdirflaswd(:,nnyloc-1,:)
211 zcoszen, zsinzen, zazimsol,pzs,pzs_xy, &
212 pslopang,pslopazi,psurf_triangle, &
213 xxhat,xyhat,nindx1_x,nindx1_y,xzsl,xzs_xy, &
214 zdirflaswd, zdirsrfswd )
223 IF (lrevertgrid)
THEN
228 pdir_sw( jx + (jy-1)*nixloc,jb ) = zdirsrfswd(jx+1,iindy+1,jb)
237 pdir_sw( jx + (jy-1)*nixloc,jb ) = zdirsrfswd(jx+1,jy+1,jb)
265 DEALLOCATE(zdirflaswd)
266 DEALLOCATE(zdirsrfswd)
subroutine slope_radiative_effect(PTSTEP, PZENITH, PAZIM, PPS, PTA, PRAIN, PDIR_SW, PLW, PZS, PZS_XY, PSLOPANG, PSLOPAZI, PSURF_TRIANGLE)
subroutine surf_rad_modif(PMAP, PXHAT, PYHAT, PCOSZEN, PSINZEN, PAZIMSOL, PZS, PZS_XY, PSLOPANG, PSLOPAZI, PSURF_TRIANGLE, ZXHAT_ll, ZYHAT_ll, IIOR_ll, IJOR_ll, ZZS_ll, ZZS_XY_ll, PDIRFLASWD, PDIRSRFSWD)