52 CHARACTER(LEN=5),
INTENT(IN) :: htype
53 REAL,
DIMENSION(:,:),
INTENT(IN) :: phc
54 REAL,
DIMENSION(:,:),
INTENT(IN) :: ptc
55 REAL,
DIMENSION(:,:),
INTENT(IN) :: pd
56 REAL,
DIMENSION(:,:),
INTENT(OUT) :: phc_out
57 REAL,
DIMENSION(:,:),
INTENT(OUT) :: ptc_out
58 REAL,
DIMENSION(:,:),
INTENT(OUT) :: pd_out
62 REAL,
DIMENSION(SIZE(PHC,1)) :: zd_tot
63 REAL,
DIMENSION(SIZE(PHC,1)) :: zd_half
66 REAL,
DIMENSION(SIZE(PHC,1)) :: zd_mid
68 REAL,
DIMENSION(SIZE(PHC,1),0:SIZE(PHC ,2))::zd_in
70 REAL,
DIMENSION(SIZE(PHC,1),0:SIZE(PHC_OUT,2))::zd_out
72 REAL,
DIMENSION(SIZE(PHC,1),SIZE(PHC,2)) :: zw
73 REAL,
DIMENSION(SIZE(PHC,1),SIZE(PHC_OUT,2)) :: zw_out
79 REAL,
PARAMETER :: zd_g1 = 0.001
104 zd_in(:,jin) = zd_in(:,jin-1) + pd(:,jin)
106 zd_tot(:) = zd_in(:,iin)
110 IF (htype==
'ROAD ' .OR. htype==
'FLOOR')
THEN
112 CALL
tebgrid(zd_tot,zd_out(:,1:),zd_g1)
113 pd_out(:,1) = zd_out(:,1)
115 pd_out(:,jout) = zd_out(:,jout) - zd_out(:,jout-1)
121 IF (mod(iout,2)==0)
THEN
122 zd_half(:) = zd_tot(:) / 2.
124 zd_mid(:) = 2. * zd_tot(:) / iout
125 IF (iout==3) zd_mid=max(zd_mid,zd_tot-2.*zd_g1)
127 zd_half(:) = (zd_tot(:)-zd_mid(:)) / 2.
128 pd_out(:,iout/2+1) = zd_mid(:)
131 CALL
tebgrid(zd_half,zd_out(:,1:iout/2),zd_g1)
132 pd_out(:,1) = zd_out(:,1)
134 pd_out(:,jout) = zd_out(:,jout) - zd_out(:,jout-1)
137 pd_out(:,iout+1-jout) = pd_out(:,jout)
141 zd_out(:,jout) = zd_out(:,jout-1) + pd_out(:,jout)
147 WHERE (pd(:,1)==xundef) pd_out(:,jout) = xundef
156 WHERE (zw_out/=xundef) ptc_out=1./zw_out
162 REAL,
DIMENSION(:,:),
INTENT(IN) :: pf1
163 REAL,
DIMENSION(:,:),
INTENT(IN) :: pf2
164 REAL,
DIMENSION(:,:),
INTENT(OUT) :: pf1_out
165 REAL,
DIMENSION(:,:),
INTENT(OUT) :: pf2_out
177 IF (pd(jl,1)==xundef)
THEN
178 pf1_out(jl,:) = xundef
179 pf2_out(jl,:) = xundef
192 IF (zd_in(jl,jin)< zd_out(jl,jout)-zeps)
THEN
194 zc = zd_in(jl,jin) - zd_lim
195 zf1 = zf1 + zc * pf1(jl,jin)
196 zf2 = zf2 + zc * pf2(jl,jin)
198 zd_lim = zd_in(jl,jin)
203 zc = zd_out(jl,jout) - zd_lim
204 zf1 = zf1 + zc * pf1(jl,jin)
205 zf2 = zf2 + zc * pf2(jl,jin)
207 pf1_out(jl,jout) = zf1/zs
208 pf2_out(jl,jout) = zf2/zs
209 zd_lim = zd_out(jl,jout)
subroutine av_thermal_data(PF1, PF2, PF1_OUT, PF2_OUT)
subroutine thermal_layers_conf(HTYPE, PHC, PTC, PD, PHC_OUT, PTC_OUT, PD_OUT)
subroutine tebgrid(PSOILDEPTH, PD_G, PD_G1)