source: trunk/fsource/histogram2d.for @ 111

Last change on this file since 111 was 111, checked in by vondreel, 12 years ago

modified for refactoring of integration

File size: 1.1 KB
RevLine 
[111]1      SUBROUTINE HISTOGRAM2D(N,X,Y,Z,NXBINS,NYBINS,XLIM,YLIM,DX,DY,
2     1  NST,HST)
[100]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
[111]15Cf2py intent(in) DX
16Cf2py intent(in) DY
[100]17Cf2py intent(in,out) NST
[104]18Cf2py depend(NXBINS,NYBINS) NST
[100]19Cf2py intent(in,out) HST
[104]20Cf2py depend(NXBINS,NYBINS) HST
[100]21
22      IMPLICIT NONE
23      INTEGER*4   N
24      REAL*4      X(0:N-1),Y(0:N-1),Z(0:N-1)
25      INTEGER*4   NXBINS,NYBINS
26      REAL*8      XLIM(0:1),YLIM(0:1)
[111]27      REAL*8      DX,DY
[100]28      INTEGER*8   NST(0:NXBINS-1,0:NYBINS-1)
[106]29      REAL*4      HST(0:NXBINS-1,0:NYBINS-1)
[100]30
31      INTEGER*4   I,J,K
32
[104]33      DO K=0,N-1
[100]34        IF ( ( X(K) .GE. XLIM(0) .AND. X(K) .LE. XLIM(1)) .AND.
35     1    (Y(K) .GE. YLIM(0) .AND. Y(K). LE. YLIM(1)) ) THEN
[104]36          I = NINT((X(K)-XLIM(0))/DX+0.5)-1
37          J = NINT((Y(K)-YLIM(0))/DY+0.5)-1
[100]38          NST(I,J) = NST(I,J)+1
39          HST(I,J) = HST(I,J)+Z(K)
40        END IF
41      END DO
42      RETURN
43      END
Note: See TracBrowser for help on using the repository browser.