如何在fortran 90中声明复杂类型数组

时间:2014-06-21 17:00:46

标签: arrays fortran fortran90 complex-numbers

我需要一些帮助来在Linux上的Fortran中初始化复杂的1-D数组

complex(kind=dp),dimension(8),public:: zc = (/(0.0_dp,0.0_dp) ,(-3.496991526333D001,0.0_dp) ,
( -3.944481647220D+000 , 0.0_dp ) , (-4.294180799072D+000 , 0.0_dp ) , 
(-4.294180799072D+000, -1.0_dp) , ( -3.944481647220D+000,-1.0_dp ) , 
(-3.496991526333D-           001,-1.0_dp ) , (0.0_dp,-1.0_dp)/) ! z computational 

上述声明适用于Fortran Power Station(适用于Windows),但不适用于Linux。它出现以下错误

Missing ')' in statement at or before (1) 

注意:'1'是逗号b / w第3和第4复数no。 该计划的扩展名为.f90

1 个答案:

答案 0 :(得分:2)

您必须使用正确的续行方式。如果您使用固定格式(通常为.f.form),请在新行的第六列放置任何字符,然后放置您的语句。你可能会使用它,否则-3.496991526333D- 001不起作用,因为空格在自由形式中很重要。但!表示自由形式的评论。如果您使用免费表格,请更正该号码。请务必不要以固定格式通过第72列。

例如:

      complex(kind=dp),dimension(8),public:: zc = (/(0.0_dp,0.0_dp) ,(-3.496991526333D001,0.0_dp) ,
     *  ( -3.944481647220D+000 , 0.0_dp ) , (-4.294180799072D+000 , 0.0_dp ) , 
     *  (-4.294180799072D+000, -1.0_dp) , ( -3.944481647220D+000,-1.0_dp ) , 
     *  (-3.496991526333D-001,-1.0_dp ) , (0.0_dp,-1.0_dp)/) 
C z computational 

在自由格式(通常为.f90)中,使用行的&继续下一行。

complex(kind=dp),dimension(8),public:: zc = (/(0.0_dp,0.0_dp) ,(-3.496991526333D001,0.0_dp) , &
( -3.944481647220D+000 , 0.0_dp ) , (-4.294180799072D+000 , 0.0_dp ) , &
(-4.294180799072D+000, -1.0_dp) , ( -3.944481647220D+000,-1.0_dp ) , &
(-3.496991526333D-001,-1.0_dp ) , (0.0_dp,-1.0_dp)/) !z computational

您应该在任何Fortran教程中阅读有关正确的soource表单的更多信息。