Ignore:
Timestamp:
Feb 17, 2011 1:33:02 PM (11 years ago)
Author:
vondreele
Message:

histogram2d.for - cleaned up
add azmthOff - as for a rotation of a 2D detector
fix image integration problems

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/fsource/histogram2d.for

    r247 r248  
    1       SUBROUTINE HISTOGRAM2D(N,X,Y,Z,NXBINS,NYBINS,XLIM,YLIM,
    2      1  NST,HST,HSTX,HSTY)
     1      SUBROUTINE HISTOGRAM2D(N,X,Y,Z,NXBINS,NYBINS,XLIM,YLIM,DX,DY,
     2     1  NST,HST)
    33
    44Cf2py intent(in) n
     
    1212Cf2py intent(in) nybins
    1313Cf2py intent(in) xlim       
    14 Cf2py intent(in) ylim       
    15 Cf2py intent(inout) nst
     14Cf2py intent(in) ylim
     15Cf2py intent(in) dx
     16Cf2py intent(in) dy
     17Cf2py intent(in,out) nst
    1618Cf2py depend(nxbins,nybins) nst
    17 Cf2py intent(inout) hst
     19Cf2py intent(in,out) hst
    1820Cf2py depend(nxbins,nybins) hst
    19 Cf2py intent(inout) hstx
    20 Cf2py depend(nxbins) hstx
    21 Cf2py intent(inout) hsty
    22 Cf2py depend(nybins) hsty
    2321
    2422      IMPLICIT NONE
    2523      INTEGER*4   N
    2624      REAL*4      X(0:N-1),Y(0:N-1),Z(0:N-1)
    27       INTEGER*4   NXBINS,NYBINS
     25      INTEGER*8   NXBINS,NYBINS
    2826      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)
     27      REAL*4      NST(0:NXBINS-1,0:NYBINS-1)
     28      REAL*4      HST(0:NXBINS-1,0:NYBINS-1)
    3229
    3330      INTEGER*4   I,J,K
    3431      REAL*8      DX,DY
    3532
    36       DX = (XLIM(1)-XLIM(0))/FLOAT(NXBINS)
    37       DY = (YLIM(1)-YLIM(0))/FLOAT(NYBINS)
    3833
    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      
    4634      DO K=0,N
    4735        IF ( ( X(K) .GE. XLIM(0) .AND. X(K) .LE. XLIM(1)) .AND.
     
    4937          I = INT((X(K)-XLIM(0))/DX)
    5038          J = INT((Y(K)-YLIM(0))/DY)
    51           NST(I,J) = NST(I,J)+1
    52           HST(I,J) = HST(I,J)+Z(K)
     39          IF ( (I .GE. 0 .AND. I .LT. NXBINS) .AND.
     40     1       (J .GE. 0 .AND. J .LT. NYBINS) ) THEN
     41            NST(I,J) = NST(I,J)+1.0
     42            HST(I,J) = HST(I,J)+Z(K)
     43          END IF
    5344        END IF
    5445      END DO
Note: See TracChangeset for help on using the changeset viewer.