source: trunk/fsource/histogram2d.for @ 247

Last change on this file since 247 was 247, checked in by vondreele, 12 years ago
File size: 1.5 KB
Line 
1      SUBROUTINE HISTOGRAM2D(N,X,Y,Z,NXBINS,NYBINS,XLIM,YLIM,
2     1  NST,HST,HSTX,HSTY)
3
4Cf2py intent(in) n
5Cf2py intent(in) x
6Cf2py depend(n) x
7Cf2py intent(in) y
8Cf2py depend(n) y
9Cf2py intent(in) z
10Cf2py depend(n) z
11Cf2py intent(in) nxbins
12Cf2py intent(in) nybins
13Cf2py intent(in) xlim       
14Cf2py intent(in) ylim       
15Cf2py intent(inout) nst
16Cf2py depend(nxbins,nybins) nst
17Cf2py intent(inout) hst
18Cf2py depend(nxbins,nybins) hst
19Cf2py intent(inout) hstx
20Cf2py depend(nxbins) hstx
21Cf2py intent(inout) hsty
22Cf2py depend(nybins) hsty
23
24      IMPLICIT NONE
25      INTEGER*4   N
26      REAL*4      X(0:N-1),Y(0:N-1),Z(0:N-1)
27      INTEGER*4   NXBINS,NYBINS
28      REAL*8      XLIM(0:1),YLIM(0:1)
29      INTEGER*8   NST(0:NXBINS-1,0:NYBINS-1)
30      REAL*8      HST(0:NXBINS-1,0:NYBINS-1)
31      REAL*8      HSTX(0:NXBINS),HSTY(0:NYBINS)
32
33      INTEGER*4   I,J,K
34      REAL*8      DX,DY
35
36      DX = (XLIM(1)-XLIM(0))/FLOAT(NXBINS)
37      DY = (YLIM(1)-YLIM(0))/FLOAT(NYBINS)
38
39      DO I=0,NXBINS
40        HSTX(I) = XLIM(0)+FLOAT(I)*DX
41      END DO
42      DO J=0,NYBINS
43        HSTY(J) = YLIM(0)+FLOAT(J)*DY
44      END DO
45     
46      DO K=0,N
47        IF ( ( X(K) .GE. XLIM(0) .AND. X(K) .LE. XLIM(1)) .AND.
48     1    (Y(K) .GE. YLIM(0) .AND. Y(K). LE. YLIM(1)) ) THEN
49          I = INT((X(K)-XLIM(0))/DX)
50          J = INT((Y(K)-YLIM(0))/DY)
51          NST(I,J) = NST(I,J)+1
52          HST(I,J) = HST(I,J)+Z(K)
53        END IF
54      END DO
55      RETURN
56      END
Note: See TracBrowser for help on using the repository browser.