2011-10-23 44 views
0

Fortran是否在公共塊中具有常用塊?就像結構中有結構一樣。例如。Fortran中的常見塊

integer int 1, int2 
common/Common1/int1, int2 
float f1, f2 
common/Common2/f1, f2 
save/Common2/, /Common1/ 

以上代碼是否表示common2,在common1中?

回答

0

不,你寫的代碼是無效的。一個常見的塊只是一個命名的內存區域。

Fortran具有與C結構非常相似的「派生數據類型」。如果Fortran派生類型聲明如下:

type float_struct 
    real :: f1, f2 
end type 

現在你可以聲明包含此類型的變量另一個派生類型:

type my_struct 
    integer :: int1, int2 
    type (float_struct) :: my_float_struct 
end type 

注意,這些都是一個類型的聲明,而不是實例該類型的變量。最好將聲明放在一個模塊中,允許你在子程序,函數或程序中訪問它們。例如,假設上述聲明放置在名爲「my_structs_mod」的模塊中。然後你可以使用它們像這樣:

subroutine sub() 
use my_structs_mod 
type (my_struct) :: ms 
ms%int1 = 42 
... 
end subroutine 

注意百分號(%)是相似點運營商C.它允許您訪問包含在一個派生類型的數據()。