Changeset 969


Ignore:
Timestamp:
Jun 24, 2013 12:23:30 PM (8 years ago)
Author:
vondreele
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/fsource/pypowder.for

    r795 r969  
    179179     1    ALPPART(I),BETPART(I),SIGPART(I),GAMPART(I))
    180180      END DO
     181      RETURN
     182      END
     183
     184      SUBROUTINE PYMCSASFCALC(INV,NTD,TDATA,MDATA,X,MUL,NFFS,FFS,
     185     1  NUNIQ,U,PHI,ICALC)
     186Cf2py intent(in) INV
     187Cf2py intent(in) NTD
     188Cf2py intent(in) TDATA
     189cf2py depend(NTD) TDATA
     190Cf2py intent(in) MDATA
     191cf2py depend(NTD) MDATA
     192Cf2py intent(in) X
     193cf2py depend(NTD) X
     194Cf2py intent(in) MUL
     195Cf2py intent(in) NFFS
     196Cf2py intent(in) FFS
     197cf2py depend(NFFS) FFS
     198Cf2py intent(in) NUNIQ
     199Cf2py intent(in) U
     200cf2py depend(NUNIQ) U
     201Cf2py intent(in) PHI
     202cf2py depend(NUNIQ) PHI
     203Cf2py intent(out) ICALC
     204
     205      LOGICAL*4 INV
     206      INTEGER*4 NTD,MUL,NFFS,NUNIQ,I,J,K,TDATA(0:NTD-1)
     207      REAL*4 X(0:3*NTD-1),U(0:3*NUNIQ-1)
     208      REAL*4 MDATA(0:NTD-1),FFS(0:NFFS-1)
     209      REAL*4 ICALC,PHI(0:NUNIQ-1)
     210      REAL*4 PHASE(0:NTD,0:NUNIQ),FF(0:NTD-1),FAS,FBS,TWOPI
     211
     212      TWOPI = 8.0*ATAN(1.0)
     213      DO I=0,NTD-1
     214        FF(I) = FFS(TDATA(I))*MDATA(I)/NUNIQ
     215        DO J=0,NUNIQ-1
     216          PHASE(I,J) = 0.
     217          DO K=0,2
     218            PHASE(I,J) = PHASE(I,J)+U(3*J+K)*X(3*I+K)
     219          END DO
     220          PHASE(I,J) = PHASE(I,J)+PHI(J)
     221        END DO
     222      END DO
     223      FAS = 0.
     224      FBS = 0.
     225      DO I=0,NTD-1
     226        DO J=0,NUNIQ-1
     227          FAS = FAS+FF(I)*COS(TWOPI*PHASE(I,J))
     228          IF ( .NOT. INV ) FBS = FBS+FF(I)*SIN(TWOPI*PHASE(I,J))
     229        END DO
     230      END DO
     231      ICALC = (FAS**2+FBS**2)*MUL
    181232      RETURN
    182233      END
Note: See TracChangeset for help on using the changeset viewer.