Fortran中common 定义数组
时间: 2024-03-27 20:40:41 浏览: 76
在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中定义二维数组可以使用以下语法:
```
real, dimension(row_size, column_size) :: my_array
```
其中,row_size和column_size分别表示数组的行数和列数,real表示数组中元素的数据类型,my_array是数组的名称。这里我们定义了一个名为my_array的二维数组,其大小为row_size × column_size。
例如,如果我们想定义一个3行4列的实数类型数组,则可以这样写:
```
real, dimension(3, 4) :: my_array
```
这将定义一个名为my_array的3行4列的二维数组。
阅读全文