Fortran学习笔记——5.其他
一些琐碎的小部分,放在最后。 自定义类型 Fortran 90 支持自定义类型,相当于 c 语言的结构体。 12345678910111213141516program main implicit none type :: person integer :: age integer :: height integer :: weight end type person type(person) :: a ! 声明a是一个person类型的变量 ! %用于提取结构体的分量 read(*,*) a%age, a%height, a%weight write(*,*) a%age, a%height, a%weight stopend program main 字符/字符串 在前面的基本数据类型的笔记中,我们特意完全忽略了字符和字符串的部分,只是在 write 语句中使用了字符串常量。 注:Fortran 对于字符串的处理效率比较慢,谨慎使用——数值计算其实也没什么字符串处理的需求。 与 c...
Fortran学习笔记——4.数组,指针与数值计算
在前三篇笔记,学习了 Fortran 作为一个编程语言,最基本的内容:变量,输入输出,流程控制和程序结构。接下来是 Fortran 的数组以及基于数组的数值计算,我认为这是 Fortran 语言最有价值的精华部分,因此特意放在了学习笔记靠后的部分,在学习了基本的语法和子程序等之后。注意,Fortran 的字符集不包括中括号[],因此与 c 语言的风格不同,Fortran 对数组分量的操作全都是使用小括号()的。 因为这部分内容比较重要,不像前几篇对 Fortran 77 的上古语法大部分进行了忽略,这一篇对于 Fortran 77 的语法也进行介绍。 一维数组 最基本的一维数组声明如下 123integer :: nums(10)integer, parameter :: len = 20real :: datas(len) 一维数组的类型可以是 integer, real, complex, logical 四种基本类型,(也可以是字符或者自定义类型,暂时不管)一维数组的长度可以是字面值常量,也可以是声明为 parameter 的整数——和 c...
Fortran学习笔记——3.子程序, 函数与模块
与 c 语言只有函数不同,Fortran 提供了子程序 subroutine,函数 function,模块 module 等多种结构。 子程序 subroutine 首先,回顾之前的 HelloWorld 1234program main implicit none write(*,*) "hello,world!"end program main 其中使用了名称为 main 的主程序 program,一个可执行程序只允许有一个 program,为了分离和复用某个功能,可以使用子程序 subroutine。 123456789101112program main implicit none write(*,*) "hello,world!" call hello() ! call 调用子程序end program mainsubroutine hello() implicit none write(*,*) "hello,subroutine!"end subroutine...
Fortran学习笔记——2.流程控制
第一部分基本内容包括了变量的声明,输入输出语句,接下来是条件语句和循环语句等运算的流程控制。 if 条件语句 无需多言,例子即可: 1234567891011121314151617if(a > 10) then ! do somethingend ifif(a > 10) then ! do 1else ! do 2end ifif(a > 10) then ! do 1else if(a > 5) then ! do 2else ! do 3end if 在 if 后面必须接 then,if 和 end if 构成一个标准的条件结构。支持 if 结构的嵌套。可以使用简单的单行 if,不需要 end 和 then。 1if(a>10) b=a 逻辑语句和逻辑运算 在 if 语句之后,顺便介绍逻辑类型和运算。逻辑类型:.true.,.false.。0 被视作 false,1 被视作 true。 12logical varvar = (a>10) 逻辑运算: Fortran...
Fortran学习笔记——1.基本内容
本系列笔记假定读者具有基础的计算机知识,以及 c/c++, Java 等至少一门现代编程语言,只学习 Fortran 的核心应用——数值计算需要的部分,对于其他的部分比如鸡肋的 Fortran 面向对象等,直接忽略(c++,Java 不香么)。我们使用 vscode+mingw(gfortran)的编程环境和编译器,环境配置过程见前文。 基本特点 固定格式 Fortran:在早期计算机使用 Fortran 进行科学计算时,需要使用穿孔卡片纸带输入源代码,因此每行的缩进/长度等格式有着极其苛刻的要求,一般全文都使用大写字符,文件名以.FOR,.for 或.f 为后缀。语法标准为 Fortran 77。如果希望感受 20 年前的 Fortran 教程风格,参考USTC Fortran 教程。 自由格式 Fortran:为了适应现代的编程风格,Fortran 标准提出了自由格式,没有那些适合打孔纸带的格式要求。一般全文的保留关键词使用小写字符,文件名以.F90、.f90 为后缀。(固定格式就应该彻底留在历史书上,我们当然应该使用自由格式编写 Fortran,使用 Fortran...
hexo测试4——Latex
Latex 公式 行内公式 行内的分式支持\(\frac12\),\(\frac{1}{\sqrt{1-x^2}}\)。 行间公式 注意跨行大括号可能会渲染错误,建议避免序号。 \[ f(x) = x^2 \] \[ g(x)=\left\{ \begin{aligned} & 1, x<1\\ & x, otherwise \end{aligned} \right. \] \[ \begin{aligned} \frac{\partial \mathbf{u}}{\partial t} + (\mathbf{u}\cdot \nabla) \mathbf{u} &= -\nabla p + \nu \nabla^2 \mathbf{u}\\ \nabla \cdot \mathbf{u} &= 0\\ \mathbf{u}|_{\partial \Omega} &= \mathbf{u}_b\\ \mathbf{u}|_{t=0} &= \mathbf{u}_0 \end{aligned} \] Kramed 支持...
hexo测试3——其它
第三部分,其它内容。 Emoji 图标 例如 常见 💡⭐🐞🚀🌍🚁⚡️🌌 书本 📔📕📗📘📙📒📃📜📚📖🧾 动植物 🌲🌵🐳🐬🐍🐣 人 🤺✍👌👈👉👆👇 其他 ⚠🚩💬🔨⏰💎 提供一个查询 Emoji 的网站:https://www.emojiall.com/。 音乐 可以在文章中嵌入一个网易云播放器(不能是会员歌曲) 代码如下,可以去网易云网页版复制外链播放器。 1<iframe frameborder="no" border="0" marginwidth="0" marginheight="0" width=330 height=86 src="//music.163.com/outchain/player?type=2&id=1488737309&auto=1&height=66"></iframe> 视频 可以嵌入 b 站的视频播放 代码如下,可以去 b...
hexo测试2——hexo定制样式
第二部分,hexo 和 butterfly 主题提供的一些样式,这里的部分内容在其它主题中可能不支持,在博客文件中尽量避免使用。 博客内的引用 hexo 提供的引用语法为 1{% post_link my-first-blog %} 例如这是第一篇测试博客:hexo测试1——markdown基础语法。 这种语法的好处是:不基于 URL 或者文章标题,而是基于文章的 markdown 文件名(其实是相对于_posts文件夹的相对路径,不含文件后缀),在生成时会自动替换成文章当前的标题。 Tag hexo 支持一些 Tag,效果如下,具体样式可以在主题配置文件中修改。 default Tag primary Tag success Tag info Tag warning Tag danger Tag 语法如下, 1234567891011121314151617181920212223{% note default %}default Tag{% endnote %}{% note primary...
hexo测试1——markdown基础语法
第一部分,markdown 的基本语法部分以及 hexo 的支持效果。 标题 支持 markdown 的各级别标题,效果略。 12345# title 1## title 2### title 3#### title 4##### title 5 列表 注意必须在列表的前面空一行,否则语法解析时无法识别为列表。列表支持嵌套,包括两类列表的混合嵌套。 无序列表 可以使用星号* XX、减号- XX、加号+ XX等三种样式,目前只使用减号。 a b c 有序列表 样式一,数学编号1. XX a b c 1231. a2. b3. c 样式二,全 1 编号1. XX a b c 1231. a1. b1. c 待办事项 大部分markdown编辑器支持checkbox样式的待办事项 12- [x] TODO 1- [ ] TODO 2 效果如下 TODO 1 TODO 2 引用 可以用> XX表示引用,支持嵌套引用> > XXX,例如 白日依山尽,黄河入海流 众里寻他千百度,慕然回首,那人却在灯火阑珊处。 注意,hexo 以及...