Fortran中common 定义数组
时间: 2024-03-27 09:40:41 浏览: 15
在Fortran中,COMMON块可以用于定义共享数组。共享数组的声明方式和普通变量类似,只需要在COMMON块中将数组名和其维数一起声明即可。例如,下面的代码定义了一个名为/mycommon/的COMMON块,其中包含了一个大小为10的实数数组a:
```
COMMON /mycommon/ a(10)
```
在程序中,可以在任何子程序中使用这个数组,而不需要进行额外的传递参数。例如,可以在一个子程序中修改数组a的某个元素,然后在另一个子程序中读取修改后的值。需要注意的是,COMMON块中的数组必须在所有使用它们的子程序中都被声明,并且维数必须相同,否则会出现编译错误。
相关问题
Fortran中common与real一起定义数组
在Fortran中,`common`和`real`可以一起使用来定义数组。`common`可以用来定义一个内存块,其中可以包含多个`real`数组。这样,多个子程序就可以共享这个内存块,来访问这些数组。
例如,下面的代码定义了一个名为`my_vars`的`common`块,其中包含两个单精度实数数组`x`和`y`:
```
common /my_vars/ x(10), y(10)
real :: z(10)
subroutine sub1
do i = 1, 10
x(i) = i
y(i) = i * 2
z(i) = x(i) + y(i)
end do
end subroutine
subroutine sub2
do i = 1, 10
print *, x(i), y(i), z(i)
end do
end subroutine
```
在这个例子中,`common`块`my_vars`定义了两个单精度实数数组`x`和`y`,都包含10个元素。在`sub1`子程序中,`x`数组被赋值为1到10,`y`数组被赋值为2到20,`z`数组被计算为`x`和`y`相加。在`sub2`子程序中,`x`、`y`和`z`数组都被打印出来。
需要注意的是,`common`块中的数组需要在使用前进行声明,并指定数组的大小。同时,在使用数组时需要小心下标越界的问题,否则可能会出现未定义的行为。
fortran定义数组
在Fortran中,定义数组的一般语法如下:
```
type :: array_name(dimensions)
```
其中,`type` 是数组元素的数据类型,`array_name` 是数组的名称,`dimensions` 是数组的维度。
例如,下面的代码定义了一个名为 `my_array` 的一维整数数组,它有 10 个元素:
```
integer :: my_array(10)
```
如果要定义一个二维数组,可以像这样:
```
real :: my_2d_array(5, 10)
```
这将创建一个 5 行 10 列的二维实数数组。
注意,在Fortran中,数组的下标从 1 开始,而不是从 0 开始。因此,对于 `my_2d_array` 数组来说,第一个元素是 `my_2d_array(1, 1)`,而不是 `my_2d_array(0, 0)`。