Coder Social home page Coder Social logo

fortran-examples's Introduction

fortran examples

usage

download

命令行中输入

git clone [email protected]:Pjer-zhang/fortran-examples.git

或者直接在网页上下载zip程序包

usage tip

对于依赖module的程序在程序内写use $(module_name),编译的时候需要再次编译模块文件,命令如下

gfortran $(module_name).f90 main.f90

例如

gfortran ../subroutines/typedef.f90 ../subroutines/integrate.f90 hw_9_1.f90

###usage 新增Makefile之后,可以批量编译,上一步完成之后可以在project的根目录上输入

make

默认不加参数的情况下是编译已经写入makefile里的所有文件

当然也可以只编译某一次作业,可以在make后面加参数

make hw23 

编译作业hw_2_3.f90,在makefile里已经解决了依赖关系,所以在用make编译执行编译命令的时候不用再考虑module之间的依赖关系

###关于python中的fortran 可以把fortran程序编译成链接库,在python中使用import $(module_name)引用之后使用,bash中使用f2py命令进行编译

f2py -c -m $(module_name).py

一个小demo:

#/usr/bin/env python

import numpy as np
import inte  #fortran compiled module
x=np.arange(2,3,0.01)
fx=np.sin(x)*np.exp(x)
print inte.simp_inte(fx,2,3) #inte 里的 simpson 积分函数

files

compile control

  • Makefile 管理编译命令的文件

homework

  • hw_2_3.f90 逻辑运算符运算
  • hw_2_4.f90 二元一次方程求解
  • hw_3_1.f90 分段函数求值
  • hw_3_2.f90 条件选择
  • hw_3_4.f90 goto语句循环
  • hw_4_1.f90 数列函数求值 (use module)
  • hw_4_2.f90 泰勒展开求sin (use module)
  • hw_5_1.f90 成绩分段统计
  • hw_5_2.f90 矩阵操作
  • hw_6_0.f90 辗转相除
  • hw_6_1.f90 三维向量叉乘
  • hw_6_2.f90 平方序列求和
  • hw_6_3.f90 e指数函数泰勒展开
  • hw_6_4.f90 素数判断 素数因素分解
  • hw_6_5.f90 求水仙数
  • hw_7_0.f90 不定方程求整数解(勾股数)
  • hw_8_2.f90 文件中顺序插入
  • hw_9_1.f90 数值积分(use module)
  • hw_9_2.f90 函数求零点(use module)
  • hw_9_3.f90 拉格朗日插值(use module)
  • hw_10_.f90 hash表散列搜索
  • matrix.txt 矩阵操作(5.2)的数据文件
  • insert.txt 顺序插入(8.2)的数据文件

python bridge

  • inte_lib_py.f90 适用于python调用的积分常用函数
  • integrate.py 使用python调用fortran编译的链接库(demo)

subroutines(modules)

  • interp.f90 插值函数(拉格朗日插值)
  • integrate.f90 积分常用函数(函数模块)
  • typedef.f90 定义类型和常数 (定义模块)
  • zerosolve.f90 函数求零点模块(函数模块)
  • sortreal.f90 排序模块(希尔排序,选择排序)

My profile My blog

fortran-examples's People

Contributors

peijin94 avatar nrgs avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.