6 SUBROUTINE average1_cover(UG,U,KLUOUT,KNBLINES,PLAT,PLON,PVALUE,PNODATA)
49 USE modd_data_cover_par
, ONLY : jpcover
51 USE modi_get_mesh_index
66 INTEGER,
INTENT(IN) :: KLUOUT
67 INTEGER,
INTENT(IN) :: KNBLINES
68 REAL,
DIMENSION(:),
INTENT(IN) :: PLAT
69 REAL,
DIMENSION(:),
INTENT(IN) :: PLON
70 REAL,
DIMENSION(:),
INTENT(IN) :: PVALUE
71 REAL,
OPTIONAL,
INTENT(IN) :: PNODATA
76 INTEGER,
DIMENSION(NOVMX,SIZE(PLAT)) :: IINDEX
79 REAL,
DIMENSION(:,:,:),
ALLOCATABLE :: ZALL
80 REAL,
DIMENSION(SIZE(PLAT)) :: ZVALUE
82 INTEGER :: JL, JOV, JCOV, IFOUND, ICOV, IND
83 INTEGER :: ICOVERCLASS
84 REAL(KIND=JPRB) :: ZHOOK_HANDLE
95 IF (
PRESENT(pnodata))
THEN 98 CALL get_mesh_index(ug,kluout,knblines,plat,plon,iindex,zvalue,znodata
109 DO jl = 1 ,
SIZE(plat)
116 IF (iindex(jov,jl)==0) cycle bloop
121 icoverclass = nint(pvalue(jl))
123 u%LCOVER(icoverclass) = .true.
125 IF (icoverclass<1 .OR. icoverclass > jpcover ) cycle
139 IF (
xall(iindex(jov,jl),jcov,1)==icoverclass*1.)
THEN 141 xall(iindex(jov,jl),jcov,2) =
xall(iindex(jov,jl),jcov,2) + 1.
149 IF (
xall(iindex(jov,jl),icov,2)/=0.)
THEN 151 ALLOCATE(zall(
SIZE(
xall,1),icov,
SIZE(
xall,3)))
152 zall(:,:,:) =
xall(:,:,:)
155 ALLOCATE(
xall(
SIZE(zall,1),icov+1,
SIZE(zall,3)))
156 xall(:,1:icov,:) = zall(:,:,:)
158 xall(:,icov+1,:) = 0.
163 ind = minloc(
xall(iindex(jov,jl),:,2),1,
xall(iindex(jov,jl),:,2)==
165 xall(iindex(jov,jl),ind,1) = icoverclass*1.
166 xall(iindex(jov,jl),ind,2) = 1.
173 IF (
lhook)
CALL dr_hook(
'AVERAGE1_COVER',1,zhook_handle)
integer, dimension(:,:), allocatable nsize_all
real, dimension(:,:,:), allocatable xall
subroutine average1_cover(UG, U, KLUOUT, KNBLINES, PLAT, PLON, PVALUE, PN
subroutine get_mesh_index(UG, KLUOUT, KNBLINES, PLAT, PLON, KINDEX, PVAL