错误的Fortran输出

时间:2017-07-12 11:20:09

标签: r fortran

我用R附加了一个fortran代码,但我得不到预期的输出。 我的Fortran代码非常简单:

  subroutine getintparms(sml,eps,big,mnlam,rsqmax,pmin,exmx)          
  data sml0,eps0,big0,mnlam0,rsqmax0,pmin0,exmx0  /1.0e-5,1.0e-6,9.9&    
  &e35,5,0.999,1.0e-9,250.0/
  sml=sml0                                                              
  eps=eps0                                                              
  big=big0                                                              
  mnlam=mnlam0                                                          
  rsqmax=rsqmax0                                                        
  pmin=pmin0                                                            
  exmx=exmx0                                                            
  return
  end

我使用以下R代码调用Fortran代码:

dyn.load("C:\\Users\\Fabian\\Documents\\FortranRoutine.dll")
value=.Fortran("getintparms",fdev=double(1), eps=double(1), 
big=double(1),mnlam=integer(1),devmax=double(1),
pmin=double(1),exmx=double(1))

,但我得到了

$fdev
[1] 4.571853e-315           ->instead of 1.0e-5
$eps
[1] 4.436653e-315           ->instead of 1.0e-6
...
$mnlam
[1] 5                       ->this is correct
...

我不知道为什么我会得到这个数字而且我不知道我做错了什么。

...好吧我现在把我的变量宣布为......

double precision::sml,eps,big,mnlam,rsqmax,pmin,exmx

现在我有一些调用我的getintparms子程序的调用,我总是得到错误:

  

警告189 - 在之前的getintparm调用中,第五个Argument类型为Real(KIND = 2),它现在是REAL(KIND = 1)

如何避免此警告消息?

0 个答案:

没有答案