当前位置: 首页 > news >正文

Fortran语言,do-end do循环,相互包含测试,自动性能优化

1)上代码

    !$omp parallel private(n, j, dx, dy, dz, r, a)do n = 1, nsteps!$omp dodo i = 0, nparticles - 1x_tmp(i) = x(i) + vx(i) * dty_tmp(i) = y(i) + vy(i) * dtz_tmp(i) = z(i) + vz(i) * dtdo j = 0, nparticles - 1dx = x(j) - x(i)dy = y(j) - y(i)dz = z(j) - z(i)R = sqrt(dx ** 2 + dy ** 2 + dz ** 2 + softening)a = G * m(j) / R ** 3 * dtvx(i) = vx(i) + a * dxvy(i) = vy(i) + a * dyvz(i) = vz(i) + a * dzend dodo j1 = 0, nparticles - 1dx = x(j1) - x(i)end dodo j2 = 0, nparticles - 1dx = x(j2) - x(i)do j3 = 0, nparticles - 1dx = x(j3) - x(i)end doend doend do!$omp dodo i = 0, nparticles - 1x(i) = x_tmp(i)y(i) = y_tmp(i)z(i) = z_tmp(i)do j4 = 0, nparticles - 1dx = x(j4) - x(i)do j = 0, nparticles - 1dx = x(j) - x(i)end doend doend dodo j = 0, nparticles - 1dx = x(j) - x(i)end do!$omp masterprint *, "n =", ndo i = 0, nparticles - 1print *, i, ":", x(i), y(i), z(i)end do!$omp end masterend do!$omp end parallel

2)

循环对:

 [[8, 19, -100], [22, 24, -100], [29, 31, -100], [26, 32, -100], [3, 33, -100], [43, 45, -100], [40, 46, -100], [36, 47, -100], [49, 51, -100], [55, 57, -100], [1, 59, -100]]

3)下面这个结果有错

 [[8, 19, 4], [22, 24, 0], [29, 31, 3], [26, 32, 1], [3, 33, 10], [43, 45, 6], [40, 46, 7], [36, 47, 10], [49, 51, 10], [55, 57, 10], [1, 59, -1]]

4)这个才是对的。

 [[8, 19, 4], [22, 24, 4], [29, 31, 3], [26, 32, 4], [3, 33, 10], [43, 45, 6], [40, 46, 7], [36, 47, 10], [49, 51, 10], [55, 57, 10], [1, 59, -1]]

目前看起来是对的。

http://www.dtcms.com/a/171406.html

相关文章:

  • 《新手学看盘》速读笔记
  • 【浅尝Java】变量与数据类型(含隐式类型转换、强制类型转换、整型与字符串互相转换等)
  • 百度系列产品学习
  • Linux环境下的进程创建、退出和进程等待
  • C++专业面试题
  • comfyui错误记录:Text_Translation :No module named ‘translators‘
  • Linux文件权限管理:chmod修改权限 与 chown修改所有者
  • LeetCode 热题 100 48. 旋转图像
  • shell编程补充内容(Linux课程实验3)
  • 胶合目录解释
  • 如何提升个人情商?
  • TF-IDF算法详解
  • 【Godot】使用 Shader 实现可配置圆角效果
  • 缓存与数据库的高效读写流程解析
  • C++动态内存分配:从基础到最佳实践
  • 【数据结构】线性表--链表
  • 【Linux系统】互斥量mutex
  • Spring AI 实战:第八章、Spring AI Tool Calling之与时俱进
  • Android基于绑定的控件用法
  • SpringBoot的启动流程
  • NoSQL入门实战:MongoDB与Redis核心应用全解析
  • 从 Java 开发到 AI 工程师:全面学习指南
  • 【漫话机器学习系列】238.训练误差与测试误差(Training Error And Test Error)
  • Spring AI 实战:第十一章、Spring AI Agent之知行合一
  • 56认知干货:智能化产业
  • 《政治最后的日子》章节
  • 电动调节 V 型球阀:颗粒状含碱浆液介质的完美解决方案-耀圣
  • 原码、补码、反码、有符号整数、无符号整数
  • 【漫话机器学习系列】239.训练错误率(Training Error Rate)
  • SpringBoot智能排课系统源码开发与实现