17 REAL,
DIMENSION(:,:),
INTENT(IN) :: PDG1
18 REAL,
DIMENSION(:,:),
INTENT(IN) :: PT1
19 REAL,
DIMENSION(:,:),
INTENT(IN) :: PDG2
20 REAL,
DIMENSION(:,:),
INTENT(OUT) :: PT2
24 REAL,
DIMENSION(SIZE(PDG1,1),SIZE(PDG1,2)) :: ZDZG1
25 REAL,
DIMENSION(SIZE(PDG2,1),SIZE(PDG2,2)) :: ZSUM
27 REAL,
DIMENSION(SIZE(PDG1,1),SIZE(PDG1,2),SIZE(PDG2,2)) :: ZWGHT
28 REAL,
DIMENSION(SIZE(PDG1,1),SIZE(PDG1,2)) :: ZSUM_WGHT
32 INTEGER :: INI, INL1, INL2
33 INTEGER :: JL1, JL2, JI
35 REAL(KIND=JPRB) :: ZHOOK_HANDLE
37 IF (
lhook)
CALL dr_hook(
'VERTICAL_GRID_NAT',0,zhook_handle)
50 zdzg1(:,jl1)=pdg1(:,jl1)-pdg1(:,jl1-1)
57 IF(pt1(ji,jl1)/=
xundef)
THEN 59 zwght(ji,jl1,jl2)=min(zdzg1(ji,jl1),max(0.0,pdg2(ji,jl2)-pdg1(ji,jl1)+zdzg1(ji,jl1)))
60 zwght(ji,jl1,jl2)=max(0.0,zwght(ji,jl1,jl2)-zsum_wght(ji,jl1))
62 pt2(ji,jl2)=pt2(ji,jl2)+zwght(ji,jl1,jl2)*pt1(ji,jl1)
63 zsum(ji,jl2)=zsum(ji,jl2)+zwght(ji,jl1,jl2)
65 zsum_wght(ji,jl1)=zsum_wght(ji,jl1)+zwght(ji,jl1,jl2)
74 pt2(:,:)=pt2(:,:)/zsum(:,:)
84 pt2(ji,jl2)=pt2(ji,jl2-1)
89 IF (
lhook)
CALL dr_hook(
'VERTICAL_GRID_NAT',1,zhook_handle)
subroutine vertical_grid_nat(PDG1, PT1, PDG2, PT2)