fortran - 我可以安全地使用`spread`从数组切片复制到同一个数组吗?
问题描述
我将 2D 数据存储在一个文件中,我想在最后一个索引上加载并传播到一个 3D 数组中。我可以安全地将数据加载到一个切片中,然后从中使用扩展,如下所示:
real, dimension(nx,ny,nz) :: data
call load_some_data(data(:,:,1))
data = spread(data(:,:,1), 3, nz)
或者我是否需要一个临时的二维数组来使传播符合标准?该spread
调用是否也适用于 OpenMPworkshare
子句?
解决方案
是的,你可以这么做。根据编译器优化的级别,它会或不会使用临时数组,但它是合法的。
不,它不会在workshare
构造中并行化。一个简单的数组赋值将是,但我担心函数结果会有问题。并且调用spread
肯定是连续的。
推荐阅读
- javascript - 是否可以从 HTA 的 IE11 WSShell 中的 WMIC 直接输出?
- pine-script - 要记录的当天第一根蜡烛的高点和低点
- reactjs - 用户停止输入时的搜索仅在第一次有效(React)
- java - 安卓 | 可以在列表中创建一个点彩球吗?
- python - 在尝试量化张量流模型时,“EndVector() 需要 1 个位置参数,但给出了 2 个”
- html - 在单行而不是多行上显示文本
- powershell - wmic 与 powershell 顺序的子命令。(“wmic”然后是下一行“csproduct”)。子命令“csproduct”未执行
- azure - 具有多个站点的应用程序网关的 Azure 流量管理器自定义标头设置
- mysql - MySQL中多次执行sql查询,类似于TSQL(SQL Server)中的GO
- sql - impala shell 输出带有附件的 csv 文件生成