REAL FUNCTION PHI(D)
COMMON FAC,DELTA,ER,T
DOW=2.*D/DELTA
TOW=4.*T/DELTA
DOWM=DOW-1.
DOWP=DOW+1.
IF(D.EQ.0.) GO TO 1
PHI=DOWM*ALOG(DOWM)-DOWP*ALOG(DOWP)
1-0.5*DOWM*ALOG(DOWM**2+TOW**2)
2+0.5*DOWP*ALOG(DOWP**2+TOW**2)
3-TOW*(ATAN(DOWM/TOW)-ATAN(DOWP/TOW))
PHI=PHI*FAC/2.
GO TO 2
PHI=FAC*(0.5*ALOG(1.+TOW*TOW)+TOW*ATAN(1./TOW))
CONTINUE
RETURN
END
我的作业是将上面的代码转换成Matlab .m文件。Fortran代码:PHI功能的实现是否正确?
但我不能明白,我从来没有见过这样的实现:
....
PHI=DOWM*ALOG(DOWM)-DOWP*ALOG(DOWP)
1-0.5*DOWM*ALOG(DOWM**2+TOW**2)
2+0.5*DOWP*ALOG(DOWP**2+TOW**2)
3-TOW*(ATAN(DOWM/TOW)-ATAN(DOWP/TOW))
...
没有任何续行标志!这很混乱。 我应该如何将这些行转换为Matlab代码?我知道Matlab,但我不知道Fortran。
它看起来像这个功能是从[这里]复制(http://read.pudn.com/downloads110/sourcecode/book/453805/Crosstalk%20Fortran%20Programs/MSTRP.FOR__.htm),并在遭受过程(例如,线标签'1'和'2'丢失)。 –
我认为这是以固定形式提供的源代码,所以请注意代码的缩进(这里的编辑会吞下前四个空格)。如果是这样,那么确实存在行续标记:您引用的第6列中的“1”,“2”和“3”。 – francescalus
避免所有的帽子,在Fortrsn看起来很糟糕,但它是一个旧代码。但不要在新代码中使用它。还要在=运算符和括号之间使用空格,以便将运算组合在一起。 –