\chapter*{前言}
\addcontentsline{toc}{chapter}{前言}

天文系的师兄师姐师弟师妹们估计普遍对 Fortran 深恶痛绝. 然而我认为 Fortran 并不是那么可恶. 对 Fortran 深恶痛绝, 可能源于老师上课时对同学们的花式折磨.

学 Fortran 的时候, 老师可能从 FORTRAN 77 开始讲起, 然后就有一千种方法可以折磨人啦. 最常见的就是用 I--N 隐式规则来折磨人了. 比如搞两个变量 \ttt{m1} 和 \ttt{m2}, 代表两物体质量, 令 \ttt{m1 = 3.0}, \ttt{m2 = 2.0}, 然后算质量比. 没加类型声明语句, 直接除, 就成功被坑啦. 老师可能很喜欢摆出各种各样有坑的程序问同学们输出是什么, 但实际上现代 Fortran 程序设计是在极力避免这些坑人的特性发挥作用, 比如, 直接在程序一开始加上 \ttt{implicit none}, 禁用 I--N 隐式规则, 以避免各种麻烦出现. 竭尽全力地训练同学们分析各种坑人程序, 在实际的程序设计中并没有什么直接的好处.

当然, 老师让同学们分析这些坑人程序也不能说没用. 老师可能觉着, 分析这些坑人程序能让同学们对程序本身的运作过程有更清楚完整的认识, 这我难以直接否定. 然而简单地这么做, 很可能导致同学们觉得 ``Fortran 就是这么折磨人'', 不好用, 于是上完课就怒卸 Fortran 编译器, 再也不玩儿了. 其实, 坑人的不是 Fortran, 坑人的是老师. 以我的经验, 只要严格遵守一些规则, Fortran 还是好使的. 当然, 一般情况下肯定不会比 Python 好使.

这份笔记旨在完整讲解天文学研究中会用到的全部 Fortran 相关知识, 让同学们在读完这份笔记后能快乐地玩 Fortran!
