| 我写好了测试FM并行包的程序,使用FM包计算结果不正确,关闭FM包则可以给出正确的结果。测试程序的主要部分就是三个数的平方和,一是通过FM包转换为任意精度,另一种是直接用double计算,发现只有不使用FM包就可以给出正确的并行结果。下面是代码主体部分 
 [Fortran] syntaxhighlighter_viewsource syntaxhighlighter_copycode INTEGER :: ppi,ppj,i
  s = 1.0D0
 
!----------------------------test for FM package----------------------------------!
!$omp parallel do private(ppi,CoAMP_HELICITY)
  do ppi = 1,6
       write(str,*) s
       AP_sqs(ppi)=TO_FM(str)
 
       write(str,*) pin(ppi)
       AP_pin(ppi)=TO_FM(str)
       write(str,*) pin(ppi)
       AP_pout(ppi)=TO_FM(str)
       
       var(ppi) = AP_pin(ppi)**2+AP_pout(ppi)**2+AP_sqs(ppi)**2
       
      CoAMP_HELICITY = TO_DP(var(ppi))  
     ! CoAMP_HELICITY = pin(ppi)**2+pin(ppi)**2+s**2
      write(*,*) ppi,s,pin(ppi),CoAMP_HELICITY
  
 end do
!$OMP END parallel do
!--------------------------------------------------------------------------------! |