subroutine cal_fr(nlat,nlon,ntclat,ntclon,grLAT,grLON,tclat,tclon,raii,A,msg_val) implicit none integer nlat integer nlon integer ntclat integer ntclon real grLAT real grLON real tclat real tclon real raii real A(nlon,nlat) real msg_val integer i,la,lo real dist A(1:nlon,1:nlat) = 0 do i = 1,ntclat do lo = 1,nlon do la = 1,nlat if(grLAT(la).ge.tclat(i)-1.and.grLAT(la).le.tclat(i)+1.and.grLON(lo).ge.tclon(i)-1.and.grLON(lo).le.tclon(i)+1)then dist = (((grLAT(la)-tclat(i))**2) + ((grLON(lo)-tclon(i))**2))**(0.5) if(dist.le.raii)then A(lo,la) = A(lo,la)+1 end if end if end do end do end do write(*,*)'------ok------' return end