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

Fortran: select type

Fortran: select type

实现类似C++的template函数功能

module M_reduceuse mpi_f08interface reducemodule procedure reduce_scalar,reduce_arrayend interface reducecontains!!https://docs.open-mpi.org/en/v5.0.x/man-openmpi/man3/MPI_Reduce.3.htmlsubroutine reduce_array(n,x,op,root,comm)implicit noneinteger::nclass(*)::x(n)type(MPI_Op)::op!optional integer,optional::roottype(MPI_Comm),optional::comm!localinteger::my_root,my_ranktype(MPI_Comm)::my_commtype(MPI_Datatype)::dtypeinteger::ierr my_root=0if(present(root)) thenmy_root=rootend ifmy_comm=MPI_COMM_WORLDif(present(comm)) thenmy_comm=commend ifselect type(x)type is (integer)dtype=MPI_INTEGERtype is(logical)dtype=MPI_LOGICALtype is(real(4))dtype=MPI_REAL4type is(real(8))dtype=MPI_REAL8class defaulterror stop 'unsupported type'end selectcall MPI_Comm_rank(my_comm,my_rank,ierr)if(my_rank==my_root) thencall MPI_Reduce(MPI_IN_PLACE,x,n,dtype,op,my_root,my_comm,ierr)elsecall MPI_Reduce(x,MPI_IN_PLACE,n,dtype,op,my_root,my_comm,ierr)endif!!call CHECKMPI(ierr)end subroutine reduce_arraysubroutine reduce_scalar(x,op,root,comm)implicit noneclass(*)::xtype(MPI_Op)::op!optional integer,optional::roottype(MPI_Comm),optional::comm!localinteger::my_root,my_ranktype(MPI_Comm)::my_commtype(MPI_Datatype)::dtypeinteger::ierr my_root=0if(present(root)) thenmy_root=rootend ifmy_comm=MPI_COMM_WORLDif(present(comm)) thenmy_comm=commend ifselect type(x)type is (integer)dtype=MPI_INTEGERtype is(logical)dtype=MPI_LOGICALtype is(real(4))dtype=MPI_REAL4type is(real(8))dtype=MPI_REAL8class defaulterror stop 'unsupported type'end selectcall MPI_Comm_rank(my_comm,my_rank,ierr)if(my_rank==my_root) thencall MPI_Reduce(MPI_IN_PLACE,x,1,dtype,op,my_root,my_comm,ierr)elsecall MPI_Reduce(x,MPI_IN_PLACE,1,dtype,op,my_root,my_comm,ierr)endif!!call CHECKMPI(ierr)end subroutine reduce_scalarend module M_reduce

参考

Fortran OOP-03:继承和多态

相关文章:

Fortran: select type

Fortran: select type 实现类似C的template函数功能 module M_reduceuse mpi_f08interface reducemodule procedure reduce_scalar,reduce_arrayend interface reducecontains!!https://docs.open-mpi.org/en/v5.0.x/man-openmpi/man3/MPI_Reduce.3.htmlsubroutine reduce_ar…...

QEMU启动Linux内核

在QEMU环境下启动linux内核命令如下: QEMU_AUDIO_DRVnone qemu-system-arm -m 256M -nographic -M versatilepb -kernel /home/yukeyang/myfile/linux-6.6.30/arch/arm/boot/zImage -append "consolettyAMA0 rdinit/bin/sh" -dtb arch/arm/boot/dts/arm/…...

Golang | Leetcode Golang题解之第109题有序链表转换二叉搜索树

题目: 题解: var globalHead *ListNodefunc sortedListToBST(head *ListNode) *TreeNode {globalHead headlength : getLength(head)return buildTree(0, length - 1) }func getLength(head *ListNode) int {ret : 0for ; head ! nil; head head.Next…...

Qt快速入门到熟练(电子相册项目(一))

经过一段时间的学习,相信大家对QT的基本用法都有所了解,从这篇文章开始,我准备记录一下电子相册的项目的一个学习过程。 实现项目创建功能 对于这个电子相册的项目,我并没有在一开始就把所有可能用到的功能模块去事无巨细的考虑周…...

机械臂与Realsense D435 相机的手眼标定ROS包

本教程主要介绍机械臂与 Realsense D435 相机手眼标定的配置及方法。 系统:Ubuntu 20.0.4 ◼ ROS:Noetic ◼ OpenCV 库:OpenCV 4.2.0 ◼ Realsense D435:librealsense sdk(2.50.0)、realsense-ros 功能包&…...

ubuntu使用记录——如何使用wireshark网络抓包工具进行检测速腾激光雷达的ip和端口号

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言wireshark网络抓包工具1.wireshark的安装2.wireshark的使用3.更改雷达ip 总结 前言 Wireshark是一款备受赞誉的开源网络协议分析软件,其功能之强大…...

C#学习指南:重要内容与实用技巧

学习C#编程是一段充满挑战但又非常充实的旅程。以下是我在学习过程中积累的一些经验,希望能对大家有所帮助。 一、掌握基础概念 类及其成员 C#中的类是编程的基础模块。理解类的结构、属性、方法和构造函数是至关重要的。每个类都有其特定的功能,学会如…...

display(a,b)什么意思

在Python中,如果你看到display(a,b)这样的代码,它通常意味着有人正在使用IPython.display模块中的display函数来同时显示两个对象。 IPython.display是Jupyter Notebook和JupyterLab等交互式计算环境的一部分,它提供了一种在笔记本中显示各种…...

SpringBoot3整合阿里云短信服务-1(配置阿里云短信服务)

SpringBoot3整合阿里云短信服务-1(配置阿里云短信服务) 一、开通阿里云短信服务 阿里云官网:阿里云官网 选择产品中企业服务与云通信中的短信服务 选择免费开通 选择快速学习和测试 根据这几个全部配置一下我这里是配置好了所以学习进度是100% 1.1 添加资质 首先选择新增资质 …...

基于HAL库控制LED流水灯

一. 了解并掌握HAL库函数开发方法。安装 stm32CubeMX,配合Keil,使用HAL库方式完成下列任务: 1、重做上一个LED流水灯作业,用GPIO端口完成2只LED灯的周期闪烁。 2、接上,再用GPIO端某一管脚接一个开关(用杜邦…...

利用kubeadm安装k8s集群 以及跟harbor私有仓库下载镜像

目录 环境准备 master(2C/4G) 192.168.88.3 docker、kubeadm、kubelet、kubectl、flannel node01(2C/2G) 192.168.88.4 docker、kubeadm、kubelet、kubectl、flannel node02(…...

明天(周六)下午!武汉Linux爱好者线下沙龙,我们在华中科技大学等你!

2024 年 5月 25 日(周六)下午,我们将在「武汉市洪山区」 珞喻路 1037 号华中科技大学南五楼 613 室举办武汉 Linux 爱好者线下沙龙(WHLUG),欢迎广大 Linux 爱好者来到现场,与我们一同交流技术&a…...

MySQL主从复制(五):读写分离

一主多从架构主要应用场景:读写分离。读写分离的主要目标是分摊主库的压力。 读写分离架构 读写分离架构一 架构一结构图: 这种结构模式下,一般会把数据库的连接信息放在客户端的连接层,由客户端主动做负载均衡。也就是说由客户…...

阿里巴巴 EasyExcel 真正的高效与通用导入(亿级数据秒级导入)

需要lombok、hutool、alibaba EasyExcel 相关依赖包 基于Lamba表达式的通用监听器 import cn.hutool.core.util.StrUtil; import com.alibaba.excel.context.AnalysisContext; import com.alibaba.excel.event.AnalysisEventListener; import lombok.experimental.UtilityClass…...

32.5k star!!替换 postman?【送源码】

在软件开发过程中,API(应用程序接口)扮演着至关重要的角色。为了确保 API 的可靠性和性能,开发人员需要一种高效的方式来测试和调试它们。这方面的工具,大家经常用到的应该就是 postman 了。不过,今天了不起…...

课时135:awk实践_逻辑控制_综合实践

1.3.8 综合实践 学习目标 这一节,我们从 网络实践、文件实践、小结 三个方面来学习 网络实践 简介 所谓的网络实践,主要是借助于awk的数组功能,进行站点的信息统计操作。准备网络环境 安装软件 yum install nignx -y重启nginx [rootloca…...

c++ 读取MNIST数据集实现softmax回归

pytorch教材 3.4. softmax回归 — 动手学深度学习 2.0.0 documentation c实现代码 代码太长了就没整理了&#xff0c;也暂时没有运行效果截图 同样没有本文也没有实现反向自动求导 超长代码警告&#xff0c;757行。不过可能注释占一半 #include <bits/stdc.h> usin…...

JS-04何为继承以及实现方式

目录 1 JS中继承的概念 2 为什么要使用继承&#xff1f;-解决内存浪费 2.1 问题引入 2.2 问题解决 2.3 拓展 3 继承的实现方式 3.1 原型链继承 1 3.2 原型链继承 2 1 JS中继承的概念 通过【某种方式】让一个对象可以访问到另一个对象中的属性和方法&#xff0c;我们把这种…...

6款网站登录页(附带源码)

6款网站登录页 效果图及部分源码123456 领取源码下期更新预报 效果图及部分源码 1 部分源码 <style>* {margin: 0;padding: 0;}html {height: 100%;}body {height: 100%;}.container {height: 100%;background-image: linear-gradient(to right, #fbc2eb, #a6c1ee);}.l…...

spring boot打的包直接运行

Spring Boot 提供了一个插件 spring-boot-maven-plugin 把程序打包成一个可执行的jar包&#xff0c;直接执行java -jar xxx.jar即可以启动程序 1、引用 spring-boot-maven-plugin插件 <build><plugins><plugin><groupId>org.springframework.boot<…...

【HTTP】HTTP协议核心体系:请求方法与状态码全结构化解析(附《思维导图》)

文章目录HTTP协议核心体系&#xff1a;请求方法与状态码全结构化解析一、核心基础概念1.1 HTTP方法的两大核心属性&#xff08;规范级定义&#xff09;1.2 HTTP状态码分类规则二、HTTP请求方法2.1 标准核心方法&#xff08;RFC 7231 定义&#xff09;2.1.1 只读类方法&#xff…...

Realistic Vision V5.1虚拟摄影棚快速上手:新手3步生成比肩单反的人像

Realistic Vision V5.1虚拟摄影棚快速上手&#xff1a;新手3步生成比肩单反的人像 1. 为什么选择Realistic Vision V5.1虚拟摄影棚 如果你一直想尝试专业级人像摄影&#xff0c;但又苦于没有昂贵的单反设备和摄影棚&#xff0c;Realistic Vision V5.1虚拟摄影棚就是为你量身定…...

驱动管理工具:释放磁盘空间的开源解决方案

驱动管理工具&#xff1a;释放磁盘空间的开源解决方案 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer 当你的系统频繁弹出磁盘空间不足警告&#xff0c;而C盘又找不到明显的大文件时&am…...

Windows Cleaner终极攻略:系统优化与空间释放完整指南

Windows Cleaner终极攻略&#xff1a;系统优化与空间释放完整指南 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服&#xff01; 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner Windows Cleaner是一款专为Windows系统设计的开…...

Qwen3-VL-30B效果实测:识别复杂图表毫无压力,回答精准又详细

Qwen3-VL-30B效果实测&#xff1a;识别复杂图表毫无压力&#xff0c;回答精准又详细 1. 开篇&#xff1a;当AI真正"看懂"了世界 想象一下这样的场景&#xff1a;你随手拍下一张满是数据和曲线的科研论文图表&#xff0c;AI不仅能准确识别出每个坐标轴的含义&#x…...

Docker---容器编排工具Docker Compose

Docker Compose核心功能使用YAML文件定义多容器应用一键启动/停止/重建整个应用栈管理服务依赖关系与网络配置环境变量集中管理&#xff0c;适配多环境部署核心概念层级Service&#xff08;服务&#xff09;&#xff1a;一个应用组件&#xff0c;可包含多个相同镜像的容器实例P…...

Next.js API路由的正确使用姿势

在使用Next.js开发应用时,API路由的配置和使用是非常重要的一部分。尤其是当我们从客户端组件中请求API时,如果不正确配置,可能会遇到一些常见的错误,比如404错误。本文将通过实例详细解释如何在Next.js中正确配置和使用API路由。 问题背景 假设你正在使用Next.js 14.2.3…...

MySQL 5.7.32 Online DDL避坑指南:如何避免主从延迟和锁等待?

MySQL 5.7.32 Online DDL实战避坑&#xff1a;高并发场景下的零停机表结构变更策略 在数据库运维的日常工作中&#xff0c;表结构变更&#xff08;DDL&#xff09;操作总是让人又爱又恨。特别是当面对千万级数据表时&#xff0c;一个简单的ALTER TABLE操作就可能引发连锁反应—…...

深入解析内存分区:程序运行的秘密

一、完整内存分区&#xff08;进程地址空间&#xff09;一个程序跑起来&#xff0c;操作系统会给它分配虚拟内存空间&#xff0c;并严格分成这些区域&#xff1a;代码区&#xff08;Text Segment&#xff09;数据区&#xff08;Data Segment&#xff09;—— 已初始化全局 / 静…...

OpenClaw本地模型对比:千问3.5-35B-A3B-FP8与开源替代方案

OpenClaw本地模型对比&#xff1a;千问3.5-35B-A3B-FP8与开源替代方案 1. 为什么需要本地模型对比 当我第一次尝试在OpenClaw中接入本地大模型时&#xff0c;面对众多开源选项感到非常困惑。每个模型都宣称自己性能优越&#xff0c;但实际部署后却发现资源消耗、推理速度与预…...