6 SUBROUTINE average1_mesh(UG,KLUOUT,KNBLINES,PLAT,PLON,PVALUE,OMULTITYPE,KFACT,PNODATA)
47 USE modd_data_cover_par
,ONLY : xcdref
49 USE modi_get_mesh_index
63 INTEGER,
INTENT(IN) :: KLUOUT
64 INTEGER,
INTENT(IN) :: KNBLINES
65 REAL,
DIMENSION(:),
INTENT(IN) :: PLAT
66 REAL,
DIMENSION(:),
INTENT(IN) :: PLON
67 REAL,
DIMENSION(:),
INTENT(IN) :: PVALUE
68 LOGICAL,
INTENT(IN) :: OMULTITYPE
69 INTEGER,
INTENT(IN) :: KFACT
70 REAL,
OPTIONAL,
INTENT(IN) :: PNODATA
75 INTEGER,
DIMENSION(NOVMX,SIZE(PLAT)) :: IINDEX
77 INTEGER :: JVAL, JTY, IDX
82 LOGICAL,
DIMENSION(SIZE(PLAT)) :: GFLAG
83 REAL,
DIMENSION(SIZE(PLAT)) :: ZVALUE
86 REAL(KIND=JPRB) :: ZHOOK_HANDLE
95 IF (
PRESENT(pnodata))
THEN 103 CALL get_mesh_index(ug,kluout,knblines,plat,plon,iindex,zvalue,znodata)
105 IF (.NOT.
PRESENT(pnodata)) zvalue(:) = pvalue(:)
113 DO jl = 1 ,
SIZE(plat)
120 IF (idx==0) cycle bloop
125 IF (
PRESENT(pnodata))
THEN 126 IF (zvalue(jl)==znodata) cycle
131 jty = floor(zvalue(jl)/100.)
132 zvalue(jl) = (zvalue(jl) - jty*100.) / float(kfact)
145 xall(idx,jty,1) =
xall(idx,jty,1) + zvalue(jl)
148 xall(idx,jty,1) =
xall(idx,jty,1) + 1./zvalue(jl)
151 xall(idx,jty,1) =
xall(idx,jty,1) + 1./(log(xcdref/zvalue(jl)))*
157 IF (abs(
xvallist(idx,jval,jty) - zvalue(jl)) < zeps)
THEN 164 IF (.NOT. gfound)
THEN 166 CALL abor1_sfx(
'TOO MANY DIFFERENT VALUES TO AGGREGATE WITH THE MAJORITY RULE' real, dimension(:,:,:), allocatable xvallist
integer, dimension(:,:), allocatable nsize_all
real, dimension(:,:,:), allocatable xall
subroutine abor1_sfx(YTEXT)
integer, dimension(:,:), allocatable nvalnbr
subroutine get_mesh_index(UG, KLUOUT, KNBLINES, PLAT, PLON, KINDEX, PVAL
integer, dimension(:,:,:), allocatable nvalcount
subroutine average1_mesh(UG, KLUOUT, KNBLINES, PLAT, PLON, PVALUE, OMULT
integer, parameter jpvalmax