fortran to matlab?

1 view (last 30 days)
Ted oscar
Ted oscar on 28 Dec 2011
C SUBROUTINE: LREMV
C THIS SUBROUTINE CAN REMOVE THE DC COMPONENT AND SLOPE OF AN ARRAY OF C DATA IF DESIRED
C------------------------------------------------------------------
SUBROUTINE LREMV (XX, NNN, ISWCH, DC, SLOPE)
C
C INPUT: XX = INPUT DATA ARRAY
C NNN = NUMBER OF POINTS IN DATA ARRAY
C ISWCH = 0 DO NOT REMOVE DC COMPONENT OR SLOPE
C = 1 REMOVE THE DC COMPONENT
C > 1 REMOVE THE DC COMPONENT AND SLOPE
C OUTPUT: DC = DC COMPONENT OF DATA
C SLOPE = SLOPE OF DATA
C
IMPLICIT DOUBLE PRECISION (A-H,O-Z)
DIMENSION XX(16384)
C
C ESTABLISH CONSTANTS
C
FLN = FLOAT(NNN)
DC = 0.0
SLOPE = 0.0
C
DO 10 I=1,NNN
DC = DC + XX(I)
SLOPE = SLOPE + XX(I)*FLOAT(I)
10 CONTINUE
C
C COMPUTE STATISTICS
C
DC = DC/FLN
SLOPE = 12.0*SLOPE/(FLN*(FLN*FLN-1.0)) - 6.0*DC/(FLN-1.0)
C
C DETERMINE KIND OF TREND REMOVAL
C
IF (ISWCH-1) 60, 40, 20
C
C REMOVE TREND (MEAN AND SLOPE)
C
20 CONTINUE
FLN = DC - 0.5*(FLN+1.0)*SLOPE
DO 30 I=1,NNN
XX(I) = XX(I) - FLOAT(I)*SLOPE - FLN
30 CONTINUE
GO TO 60
C
C REMOVE THE DC COMPONENT
C
40 CONTINUE
DO 50 I=1,NNN
XX(I) = XX(I) - DC
50 CONTINUE
C
60 RETURN
END
  1 Comment
Sebastian
Sebastian on 28 Dec 2011
What is your question? Do you want to implement this algorithm with MATLAB code? How far have you got? An alternative would be to compile this code to a Fortran mexfile for MATLAB.

Sign in to comment.

Accepted Answer

Walter Roberson
Walter Roberson on 28 Dec 2011
  7 Comments
Walter Roberson
Walter Roberson on 29 Dec 2011
5-3-84 or earlier according to the source. See pdf page 308 of http://dspace.mit.edu/bitstream/handle/1721.1/33805/15674832.pdf?sequence=1
They were extracted from Programs for Digital Signal Processing, which was published (IEEE Press) 1979, revised 1981, so with the 1984 source date we can safely assume a later revision date for the section, but we cannot tell where in 1979 to 1984 that particular routine was written.
Only 25 to 30 years, Derek ;-)
Besides, it isn't a Computed GOTO, it is an Arithmetic IF
http://www-linac.kek.jp/cont/langinfo/web/Fortran/docs/lrm/lrm0128.htm#arith_if_stmt
Ted oscar
Ted oscar on 29 Dec 2011
actually, i am the fortran and matlab beginner,so i don't understand this programs for what.BTW, thank you for your help

Sign in to comment.

More Answers (0)

Categories

Find more on Fortran with MATLAB in Help Center and File Exchange

Tags

No tags entered yet.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!