COMMON: "block"方式的資料共享, powerful/flexible, 當然也dangerous
[Fortran] 纯文本查看 复制代码 SUBROUTINE sub1(...)
REAL :: A(10) ! all data in one "block" (打包)
COMMON /ABC/ A
SAVE /ABC/
SUBROUTINE sub2(...) !---> can be different numeric-type(+kind)/structute
COMPLEX :: z ! (a) complex = two reals
INTEGER :: i ! (b) easy to get binary representation of a real
REAL :: b(2,2), c(2), pi ! (c) flexible data structure
COMMON /ABC/ z, i, b, c, pi
SAVE /ABC/
(a)與(b) TRANSFER可為之但高下立判, (c)?
舉雙手贊成:能用 CASE/Contour-Do/WHERE/Assumed_Shape/MODULE 為之的,
就不要用 IF/General-DO/FORALL/Explicit-Shape-Adjustable-Size/COMMON
但是, "摒弃", 個人以為太激烈了點
|