stanford-oval/wikipedia huggingface dataset:
京朔高速动车组列车
车体交路

数据日期：2025年1月5日（交路仅供参考，以实际开行情况为准）
交路1：
出库→北京北开G2515至朔州东→朔州东开G2516至北京北→北京北开G2511至太原南→太原南开G2514至北京北→ 回库
交路2：
出库→北京北开G2529至大同南→大同南开G2530至北京北→北京北开G2543至朔州东→朔州东开G2544至北京北→北京北开G2545至大同南→大同南过夜→大同南开G2546至北京北→北京北开G2547至朔州东→朔州东开G2548至北京北→北京北开G2549至大同南→大同南开G2550至北京北→ 回库
交路3：
出库→清河开G2519至大同南→大同南开G2520至北京北→北京北开G2521至大同南→大同南开G2524至北京北→北京北开G2523至大同南→大同南过夜→大同南开G2522至北京北→北京北开G2525至大同南→大同南开G2526至北京北→北京北开G2527至朔州东→朔州东开G2528至清河→ 回库
参考资料

↑  北京北站. . 微信公众平台.   [2025-01-02]. （原始内容存档于2025-01-27）.
备注

↑  终到清河站。
Girl's Garden

| Girl's Garden |
| --- | --- |

《Girl's Garden》封面
类型: 動作 戀愛模擬
平台: SG-1000
开发商: 世嘉第三消費者軟體研究開發部
发行商: 世嘉
: 中裕司、川口博史（日语：）
音乐: 林克洋（日语：）、中林亨
模式: 單人
发行日: 日本：1984年12月或1985年2月
《Girl's Garden》（日语：）是一款由世嘉製作及發行的动作游戏及戀愛模擬遊戲，於1984年12月或1985年2月在SG-1000平臺推出。本作是中裕司和川口博史（日语：）的處女作，中裕司後來創造了刺猬索尼克系列，川口博史則為數款熱門的世嘉街機遊戲作曲。輿論普遍讚譽《Girl's Garden》簡潔的設計和優異的技術基礎，同時本作亦為早期戀愛模擬遊戲的代表作。
遊戲玩法

《Girl's Garden》是一款动作游戏及戀愛模擬遊戲。玩家在遊戲中將操控戀愛中的女孩「帕普莉醬」（，）收集盛開的花朵，以贏得男孩「薄荷君」（，）的心。玩家要在每一關卡中收集到一定數量的花朵，並在遊戲時間限制結束之前將花朵送到薄荷君手上，不然薄荷君就會去找帕普莉醬的情敵，另一位女孩「可可醬」（，），此時玩家即告失敗。在遊戲過程中，玩家需要繞過如同迷宮般的重重路徑，有時還會遇到熊等敵人角色，此時玩家可以使用一系列遊戲道具進行迴避。
開發過程

《Girl's Garden》是中裕司和川口博史（日语：）的處女作。中裕司於1984年4月加入世嘉之後大約一個月，所屬部門的課長要求他為SG-1000平臺開發一款女性向遊戲作為技巧測試。中裕司便與另一名新人川口博史合作，開始製作遊戲。兩個月後，他們將研發中的《Girl's Garden》展示給課長看，課長驚呼：「這會大賣！」（「」）十分滿意，並決定讓中裕司將本作開發完成，上市銷售。
《Girl's Garden》的開發過程歷時約五個月。硬體限制使得捲動螢幕和在畫面上同時顯示許多精灵图十分困難。由於SG-1000主機一次只能同時渲染四張精靈圖，加上在背景圖層捲動時並不容易同時讓熊等敵人和花朵同時出現並移動，中裕司和川口博史遂將熊等敵人直接編程繪製在背景上。音效部分，則是由林克洋（日语：）和中林亨二人負責。
遊戲開發完成後，世嘉花了三個月生產所需的ROM卡带。世嘉共製造了80,000份卡匣，其中約售出一半。據《世嘉土星雜誌（日语：）》1998年的報導，《Girl's Garden》於1984年12月發售；但中裕司後來在2002年的訪問中表示按遊戲開發進度和卡匣製造時程來看，《Girl's Garden》不可能在那個時間點發售，並認為本作應該是1985年2月才推出的，並回憶當時他的上司告訴他當月遊戲銷量欠佳。
評價與影響

輿論普遍讚譽《Girl's Garden》簡潔的設計和優異的技術基礎。USgamer（Eurogamer支部）的傑里米·佩瑞許（） 稱本作為「無害（）、可有可無的（）」簡單遊戲，鮑勃·麥基（）則認為本作是SG-1000平臺上「技術上令人印象深刻的遊戲之一」，並表示本作可愛的視覺呈現掩蓋了背後隱含的「可疑的（）互累症意涵」。佩瑞許批評本作中女主角的目標竟是要去「試圖贏得男孩的心，而不是去拯救男主角」。Ars Technica則將本作與《天使們的午後》並稱為「重要的早期戀愛模擬遊戲」。
《Girl's Garden》曾於2006年短暫於GameTap（英语：）平臺上重新發行。若玩家持有《SEGA 3D復刻檔案室（日语：）》資料存檔時，可在《SEGA 3D復刻檔案室3 FINAL STAGE（日语：）》中解鎖遊玩本作。此外，世嘉亦有考慮將本作加入SEGA Forever的遊戲陣容。
中裕司後來創造了刺猬索尼克系列，成為電子遊戲業界最負盛名的設計師之一；川口博史則為《超級摩托車（英语：）》和《Out Run》等數款熱門的世嘉街機遊戲作曲。
參考資料

1 2 3 4 5  Parish, Jeremy. . USgamer. 2013-12-25  [2020-07-27]. （原始内容存档于2020-07-27） （英语）.
1 2  Staff, Ars. . Ars Technica. 2011-06-21  [2020-07-27]. （原始内容存档于2012-02-15） （英语）.
1 2 3 4  Mackey, Bob. . USgamer. 2016-05-06  [2020-07-27]. （原始内容存档于2018-02-15） （英语）.
↑  Kohler, Chris. . Wired. 2009-10-02  [2020-07-27]. ISSN 1059-1028. （原始内容存档于2019-01-07） （英语）.
1 2 3 4 5 6 7 8  . SEGA. 2002-01-15  [2020-07-27]. （原始内容存档于2020-07-27） （日语）.
1 2  . Red Bull Music Academy Daily. Red Bull.   [2020-07-27]. （原始内容存档于2020-07-27） （英语）.
1 2  . Game Music Core. 2009-04-01  [2020-07-27]. （原始内容存档于2015-04-17） （日语）.
↑  . 《セガサターンマガジン（日语：）. 1998-03-13, (7): 128 （日语）.
↑  . GamesIndustry.biz. 2006-06-23  [2020-07-31]. （原始内容存档于2018-07-16） （英语）.
↑  . Siliconera. 2016-12-20  [2020-07-31]. （原始内容存档于2020-07-31） （英语）.
↑  Donlan, Christian. . Eurogamer. 2017-06-21  [2020-07-31]. （原始内容存档于2018-06-24） （英语）.
↑  . Hardcore Gamer. 2013-09-19  [2020-07-31]. （原始内容存档于2021-05-20） （英语）.
《Girl's Garden》遊戲畫面截圖，顯示女主角在關卡完成後向男主角獻上花朵的情景
Fortran

| --- | --- |

: 多重范型：指令式、过程式、结构化、面向对象、阵列式、泛型
設計者: 約翰·巴科斯
實作者: 約翰·巴科斯與IBM
: 1957年，​68年前​（1957）
当前版本: Fortran 2023（2023年11月17日）  
型態系統: 強类型、靜態
文件扩展名: .f, .for, .f90
網站:  
主要實作產品
GFortran, Intel Fortran（英语：）, Nvidia/PGI（英语：） CUDA Fortran, Silverfrost FTN95（英语：）, Oracle f95, IBM XL Fortran（英语：）等
衍生副語言
F（英语：）
啟發語言
Speedcoding（英语：）
影響語言
ALGOL 58, PL/I, BASIC, C, PACT I（英语：）, MUMPS（英语：）, Ratfor（英语：）
Fortran，可音譯為福傳，源自於「公式翻译」（英語：）的縮寫，它是通用的编译型指令式编程语言，特别适用于数值计算和科学计算。它在1957年由IBM開發出来，是世界上第一个被正式采用並流传至今的高级编程語言。
简介

Fortran最初由IBM在1950年代开发，用于科学和工程应用，并随后长时间统治了科学计算编程。它已经在计算密集领域里应用了超过六个年代，比如数值天气预报、有限元分析、计算流体力学、地球物理学、计算物理学、晶体学和计算化学。它是高性能计算的流行语言，并被用于世界上最快超级计算机的基准测试和排名。
Fortran有很多版本，每个都增加扩展却在很大程度上保持与前面版本的兼容性。后续版本已经增加支持了：结构化编程和基于字符数据的处理（FORTRAN 77），阵列编程、模块化编程和泛型编程（Fortran 90），高性能Fortran (Fortran 95），面向对象编程（Fortran 2003），并发计算（Fortran 2008）和天然的并行计算能力（Coarray Fortran 2008/2018）。
Fortran的设计是很多其他语言的基础。其中最周知的是在1964年推出的BASIC，它基于了FORTRAN II，具有一些语法（英语：）清理，尤其是更好的逻辑结构，和其他在交互式环境中使工作更加容易的变更。
起源

在1953年后期，约翰·巴科斯（John W. Backus）向他在IBM的上司提交了一份提案，要为编程他们的IBM 704主机，而开发一种更实用的语言以替代汇编语言。历史上Backus的团队包括了程序员Richard Goldberg、Sheldon F. Best、Harlan Herrick、Peter Sheridan、Roy Nutt（英语：）、Robert Nelson、Irving Ziller、Harold Stern、Lois Haibt（英语：）和David Sayre（英语：）。它的概念包括更容易的将方程录入计算机，这是J. Halcombe Laning（英语：）发展出的想法，并且在1952年演示于Laning与Zierler系统（英语：）之中。
在1954年11月，Backus等人完成了草案规定《IBM数学公式转译系统FORTRAN》，第一本FORTRAN手册出现在1956年10月，随后在1957年4月交付了第一个FORTRAN编译器。这是第一个优化编译器，因为客户不情愿使用高级编程语言，除非它的编译器能够生成接近于手工编码汇编语言性能的代码。
尽管编程社区质疑新方法能否胜过手工编码，它将操作一台机器所需的编程语句数目缩减了20倍，因而快速的获得了接受。John Backus在1979年与IBM 雇员杂志《Think》的一次访谈中说道：“我的多数工作出于懒惰。我不喜欢写程序，所以当我工作在IBM 701（英语：）上，为计算弹道轨迹书写程序的时候，我开始制造一个编程系统来使得书写程序更加容易”。
FORTRAN语言被科学家广泛接纳，用来书写数值计算密集程序，这鼓励编译器作者生产可以生成更快和更高效代码的编译器。在语言中包括复数数据类型（英语：），使得Fortran特别适合于技术应用比如电子工程。
到了1960年，FORTRAN版本已经可获得于IBM 709（英语：）、650（英语：）、1620（英语：）和7090计算机上。FORTRAN流行性的显著增长，刺激了竞争计算机制造商在它们的机器上提供FORTRAN编译器，因此到了1963年，存在了超过40个FORTRAN编译器。故此，FORTRAN被认为是第一个广泛使用的跨平台编程语言。
提供给IBM 1401（英语：）计算机的FORTRAN，采用了一种创新的63阶段编译器，它完整的运行于只有8000个（六位元）字符的磁芯内存中。这个编译器可以从磁带或者从2200张打孔卡开始运行；它不进一步的使用磁带或磁盘存储。按照Haines的描述，它保持程序在内存中并装载覆盖部分，就地逐步将其转换成可执行形式。此文被重印编辑于两版的《编译器剖析》和IBM手册《Fortran规定和操作过程，IBM 1401》之中。这种可执行形式不完全是机器语言；转而浮点数算术、下标、输入/输出和函数引用是解释执行的，这早先于UCSD Pascal的P-code两个年代。
Fortran的发展平行于编译器技术的早期演进（英语：），在理论和编译器设计上的进步，受到为Fortran程序生成高效代码的激励。
起源 > FORTRAN

最早的FORTRAN版本應用於IBM 704系統上，包含了32个语句：
DIMENSION和EQUIVALENCE语句。
赋值语句。
三态算术IF（英语：）语句。
檢查异常情況：IF ACCUMULATOR OVERFLOW、IF QUOTIENT OVERFLOW和IF DIVIDE CHECK；操纵感应开关和感应灯（英语：）：SENSE LIGHT、IF (SENSE LIGHT)和IF (SENSE SWITCH)。
无条件GO TO、计算GO TO、ASSIGN和指派GO TO。
DO循环。
格式化輸入與輸出：FORMAT、READ、READ INPUT TAPE、WRITE OUTPUT TAPE、PRINT和PUNCH。
非格式化輸入與輸出: READ TAPE、READ DRUM、WRITE TAPE和WRITE DRUM。
其他的輸入與輸出：END FILE、REWIND和BACKSPACE。
PAUSE、STOP和CONTINUE。
FREQUENCY语句（为编译器提供优化（英语：）提示）。
演化

| 年份 | 非正式名字 | ANSI标准 | ISO/IEC标准 |
| --- | --- | --- | --- |
| 1957 | FORTRAN | — | — |
| 1958 | FORTRAN II | — | — |
| 1958 | FORTRAN III | — | — |
| 1961 | FORTRAN IV | — | — |
| 1966 | FORTRAN 66 | X3.9-1966 | — |
| 1978 | FORTRAN 77 | X3.9-1978 | — |
| 1991 | Fortran 90 | X3.198-1992 | 1539:1991 |
| 1997 | Fortran 95 | — | 1539-1:1997 |
| 2004 | Fortran 2003 | — | 1539-1:2004 |
| 2010 | Fortran 2008 | — | 1539-1:2010 |
| 2018 | Fortran 2018 | — | 1539-1:2018 |
| 2023 | Fortran 2023 | — | 1539-1:2023 |
演化 > FORTRAN II

1958年IBM又推出FORTRAN II。主要的增强是凭借允许用户书写的子例程和函数，它们通过传递引用的形式参数来返回值，从而支持了过程式编程。COMMON语句为子例程提供了访问公共（或称全局）变量的一种方式。增加了如下6個新語句：
SUBROUTINE、FUNCTION和END。
CALL和RETURN。
COMMON。
接下來的幾年內，FORTRAN II又繼續支援了DOUBLE PRECISION和COMPLEX数据类型。
早期的FORTRAN编译器在子例程中不支持递归。早期的计算机架构不支持堆栈的概念，当它们直接支持子例程调用的时候，返回位置经常存储在毗邻这个子例程代码的一个固定位置（例如IBM 1130），或一个特定的机器寄存器（IBM 360系列）之中，它们只能在如下条件下允许递归，即由软件来维护一个堆栈，这个返回地址要在进行调用之前存储在堆栈之上，并在这个调用返回之后恢复。尽管没有规定于FORTRAN 77之中，很多F77编译器将其作为一个选项来支持递归，而Burroughs主机（英语：），设计有内建的递归，而将其作为缺省来支持。它在Fortran 90中通过新关键字RECURSIVE而成为标准。
演化 > FORTRAN II > 简单的FORTRAN II程序

下面的海伦公式程序, 从磁带盘上读取数据，它包含3个5位整数A、B和C作为输入。这里没有“类型”声明可用：名字开始于I、J、K、L、M或N的变量是“定点数”（就是整数），其他的是浮点数。因为这个例子要处理整数，变量的名字开始于字母“I”。在FORTRAN II中变量名字必须开始于字母，并可以后续着字母和数字二者，直到达到六个字符的限制。如果A、B和C不能表示在平面几何中一个三角形的边，程序将结束执行，STOP给出错误代码“1”。否则输出一行来显示A、B和C的输入值，随后是计算出的作为浮点数的三角形的面积AREA，它占据输出行的10个空位，并显示小数点后2位，这指定于标号904的FORMAT语句中的“F10.2”。
C     通过标准的平方根函数计算三角形面积
C     输入 - 磁带读写器单元5，整数输入
C     输出 - 行式打印机，实数输出
C     输入错误 - 输出错误信息并显示错误代码1于作业控制列表中
      READ INPUT TAPE 5, 901, IA, IB, IC
  901 FORMAT (3I5)
C     IA、IB和IC不可以是负数或零
C     一个三角形的两条边的总和必须大于第三边
      IF (IA) 110, 110, 101
  101 IF (IB) 110, 110, 102
  102 IF (IC) 110, 110, 103
  103 IF (IA+IB-IC) 120, 120, 104
  104 IF (IA+IC-IB) 120, 120, 105
  105 IF (IB+IC-IA) 120, 120, 199
  110 PRINT 902
  902 FORMAT (42H IA, IB, AN​D IC MUST BE GREATER THAN ZERO.)
      STOP 1
  120 PRINT 903
  903 FORMAT (50H SU​M OF TWO SIDES MUST BE GREATER THAN THIRD SIDE.)
      STOP 1
  199 CONTINUE
C     使用海伦公式计算三角形的面积
      S = FLOATF (IA + IB + IC) / 2.0
      AREA = SQRTF(S * (S - FLOATF(IA)) * (S - FLOATF(IB)) *
     +             (S - FLOATF(IC)))
      PRINT 904, IA, IB, IC, AREA
  904 FORMAT (4H A= ,I5,5H  B= ,I5,5H  C= ,I5,8H  AREA= ,F10.2,
     +        13H SQUARE UNITS)
      STOP
      END
演化 > FORTRAN III

IBM繼續開發FORTRAN III，至1958年時已允许內建組合語言代碼以及其他一些特征；然而這個版本卻從未作为产品推出。类似于704 FORTRAN和FORTRAN II，FORTRAN III包含了過多的機器依赖性，造成程式碼不易移植到其他機器上的問題。其他厂商提供的早期FORTRAN版本也經常遭受类似的困苦。
演化 > FORTRAN IV

自1961年開始，由於客戶的強烈要求，IBM開始發展FORTRAN IV，目的在於移除一些FORTRAN II中過於依賴機器本身的程式碼（例如：READ INPUT TAPE），同時新增一些新特征，比如LOGICAL資料型別（TRUE或者FALSE）、布尔表达式和取代了算术IF语句的逻辑IF语句。FORTRAN IV於1962年推出，最早應用於IBM 7030（英语：）（“Stretch”）計算機之上，接着又推出了IBM 7090和IBM 7094版本，和后来1966年的IBM 1401（英语：）版本。
到了1965年，FORTRAN IV应该已经符合了美国标准协会X3.4.3 FORTRAN工作组开发的标准。在1966年至1968年之间，IBM为其System/360提供了一些FORTRAN IV编译器，每个都以指示了编译器运行需要的最小内存量的字母来命名。字母F、G、H匹配System/360模式编号来指示内存大小，每个字母增长都是二倍：
1966 : FORTRAN IV F for DOS/360（64K字节）
1966 : FORTRAN IV G for OS/360（128K字节）
1968 : FORTRAN IV H for OS/360（256K字节）
数字设备公司（DEC）在1967年至1975年之间为PDP-10维护了DECSYSTEM-10 Fortran IV（F40）。
大约在这个时候，FORTRAN IV开始成为重要的教育工具和实现，比如滑铁卢大学创造了WATFOR和WATFIV（英语：）来简化早期编译器复杂的编译和链接过程。
演化 > FORTRAN 66

早期的FORTRAN語言發展史上最重要的一件大事，也許是美國標準協會（即今日的美國國家標準協會ANSI）的委員們，開始為FORTRAN制定標準規格，它名為“美国标准FORTRAN”。1966年委員會推出兩套FORTRAN標準版本，分別定義成FORTRAN（基於FORTRAN IV，它已经充任了事实標準），和Basic FORTRAN（基於FORTRAN II，并移除其机器依賴性）。由第一套標準定义的FORTRAN，官方代号为X3.9-1966，後來被稱為FORTRAN 66（仍有很多人習慣稱之為FORTRAN IV）。FORTRAN 66有效的成为第一套FORTRAN的工業標準版本。FORTRAN 66包括了：
主程序、SUBROUTINE、FUNCTION和BLOCK DATA程序单元。
INTEGER、REAL、DOUBLE PRECISION、COMPLEX和LOGICAL数据类型。
COMMON、DIMENSION和EQUIVALENCE语句。
DATA语句，用以指定初始值。
内部和EXTERNAL（例如库）函数。
赋值语句
无条件GO TO、计算GO TO、ASSIGN和指派GO TO语句。
逻辑IF和算术（三态）IF语句。
DO循环语句。
READ、WRITE、BACKSPACE、REWIND和ENDFILE语句，用以处理顺序读写。
FORMAT语句和赋值格式。
CALL、RETURN、PAUSE、STOP和CONTINUE语句。
霍尔瑞斯常量（英语：），用于DATA和FORMAT语句，作为给子程序的实际参数。
最长6个字符的标识符。
注释行。
END行。
前面的FORTRAN II版本的海伦公式程序需要进行一些修改来作为FORTRAN 66程序编译。修改包括使用更加机器无关版本的READ和WRITE语句，并移除不再需要的FLOATF类型转换函数。尽管不是必须的，算术IF语句被重写为使用逻辑IF语句，并以更加结构化的方式来表示。
C     通过标准的平方根函数计算三角形面积
C     输入 - 单元5的磁带读取器，整数输入
C     输出 - 单元6的行式打印机，实数输出
C     输入错误 - 输出错误信息并显示错误代码1于作业控制列表中
      READ (5, 901) IA, IB, IC
  901 FORMAT (3I5)
C     IA、IB和IC不可以是负数或零
      IF (IA .GT. 0 .AND. IB .GT. 0 .AND. IC .GT. 0) GOTO 110
        WRITE (6, 902)
  902   FORMAT (42H IA, IB, AN​D IC MUST BE GREATER THAN ZERO.)
        STOP 1
  110 CONTINUE
C     一个三角形的两条边的总和必须大于第三边
      IF (IA+IB-IC .GT. 0 .AND.
     +    IA+IC-IB .GT. 0 .AND.
     +    IB+IC-IA .GT. 0) GOTO 120
        WRITE (6, 903)
  903   FORMAT (50H SU​M OF TWO SIDES MUST BE GREATER THAN THIRD SIDE.)
        STOP 1
  120 CONTINUE
C     使用海伦公式计算三角形的面积
      S = (IA + IB + IC) / 2.0
      AREA = SQRT ( S * (S - IA) * (S - IB) * (S - IC))
      WRITE (6, 904) IA, IB, IC, AREA
  904 FORMAT (4H A= ,I5,5H  B= ,I5,5H  C= ,I5,8H  AREA= ,F10.2,
     +        13H SQUARE UNITS)
      STOP
      END
演化 > FORTRAN 77

在FORTRAN 66標準推出之後，各家編譯器廠商不斷推出更具擴充性的標準FORTRAN，促使ANSI委员会X3J3於1969年開始著手於1966標準版本的修订工作，这得到了计算机商业设备制造商协会CBEMA（英语：）（曾经的BEMA）的赞助。这个修订标准的最终草案于1977年发表，并在1978年4月被正式批准为新的FORTRAN标准。新标准叫做FORTRAN 77，其官方代号是X3.9-1978，它增加了一些重要特征来弥补FORTRAN 66的许多缺点：
块状IF和END IF语句，以及可选的ELSE和ELSE IF子句，提供改进了的对结构化编程的语言支持。
DO循环扩展，包括参数表达式，负数增量，和零行程计数。
OPEN、CLOSE和INQUIRE语句，用以改进I/O能力。
直接访问文件I/O。
IMPLICIT语句，用来变更或确认对未声明变量的隐含约定，即如果它们的名字开始于I、J、K、L、M或N则是INTEGER（否则为REAL）。
CHARACTER数据类型，替代了霍尔瑞斯字符串，极大地扩展了字符输入和输出以及对基于字符的数据进行处理的设施。
PARAMETER语句，用以指定常量。
SAVE语句，用以持久保存局部变量。
内部函数的通用名称（比如SQRT也接受其他类型的实际参数，例如COMPLEX或REAL*16）。
一组内部函数（LGE、LGT、LLE和LLT），用于字符串的逻辑比较，它基于了ASCII定序顺序。
在这次标准修订中，一些特征被删除或以使曾经符合标准的程序失效的方式而更改了。尽管在冲突列表的24个项目中的大多数（参见X3.9-1978的附录A2），解决了在以前标准中允许但很少使用的漏洞和病态情况，少量特定功能被特意删除了，比如：
霍尔瑞斯常量（英语：）和霍尔瑞斯数据，例如：GREET = 12HHELLO THERE!。
在FORMAT规定中读入H编辑（霍尔瑞斯字段）描述符。
通过下标对数组边界的翻越索引，例如：
DIMENSION A(10,5)
      Y = A(11,1)
将控制转移出离和回入DO循环的范围（也叫做“扩展范围”)。
开发继FORTRAN 77之后的修订标准被反复的推迟，因为标准化过程难以跟上计算和编程实践的快速变化。与此同时，作为“标准FORTRAN”将近十五年，FORTRAN 77成为了编程语言历史上最重要的Fortran方言。
FORTRAN 77版本的海伦公式程序不必需对FORTRAN 66版本程序进行修改。下面的例子展示额外的I/O语句清理，包括使用列表指导（list-directed）的I/O，并将在FORMAT语句中的霍尔瑞斯编辑描述符替代为引述的字符串。它还使用结构化的IF和END IF语句，取代GOTO/CONTINUE语句。
PROGRAM HERON
C     通过标准的平方根函数计算三角形面积
C     输入 - 默认标准输入单元，整数输入
C     输出 - 默认标准输出单元，实数输出
C     输入错误 - 输出错误信息并显示错误代码1于作业控制列表中
      READ (*, *) IA, IB, IC
C     IA、IB和IC不可以是负数或零
      IF (IA .LE. 0 .OR. IB .LE. 0 .OR. IC .LE. 0) THEN
        WRITE (*, *) 'IA, IB, and IC must be greater than zero.'
        STOP 1
      END IF
C     一个三角形的两条边的总和必须大于第三边
      IF (IA+IB-IC .LE. 0 .OR.
     +    IA+IC-IB .LE. 0 .OR.
     +    IB+IC-IA .LE. 0) THEN
        WRITE (*, *) 'Sum of two sides must be greater than third side.'
        STOP 1
      END IF
C     使用海伦公式计算三角形的面积
      S = (IA + IB + IC) / 2.0
      AREA = SQRT ( S * (S - IA) * (S - IB) * (S - IC))
      WRITE (*, 901) IA, IB, IC, AREA
  901 FORMAT (' A= ', I5, '  B= ', I5, '  C= ', I5, '  AREA= ', F10.2,
     +        ' square units')
      STOP
      END
演化 > ANSI标准Fortran的扩展

一個重要的FORTRAN 77实用扩展，是1978年发行的MIL-STD-1753。這個由美國國防部制定的规范，標準化了由多数FORTRAN 77編譯器实现，却並未引入ANSI FORTRAN 77標準之中的很多特征。这些特征最終合併入Fortran 90標準之中。
DO WHILE、EXIT、CYCLE和END DO语句。
INCLUDE语句。
IMPLICIT语句的IMPLICIT NONE变体。
位操纵（英语：）内部函数，基于了包含在工业实时Fortran（英语：）（ANSI/ISA S61.1 (1976)）中的类似的函数。
1991年推出IEEE 1003.9 POSIX標準，為Fortran-77的程式人員提供了POSIX系统上的呼叫。有超過一百種功能呼叫被定義在文档中。允許访问POSIX相容的进程控制、信號处理、檔案系統控制、设备控制、过程定点，以及可移植方式下的串流式輸入/輸出。
演化 > Fortran 90

FORTRAN 77的被严重推迟的后续版本，非正式名称是Fortran 90，最终在1991年发行为ISO/IEC标准1539:1991，在1992年发行为ANSI标准。除了将官方拼写从FORTRAN改为Fortran之外，这个重大修订版本增加了很多特征，用来反映自从1978年标准以来演变出的编程实践中的重要变化：
自由格式源代码输入，不再需要在键入语句之前越过前6个字符位置。
小写的Fortran关键字。
最长31个字符的标识符（在以前的标准中为6个字符）。
行内注释。
能够按整体操作数组（或数组节），由此极大地简化了数学和工程计算。
WHERE语句用于选择性数组赋值。
数组值的常量和表达式。
整体、部分和遮掩的数组赋值和数组表达式，比如X(1:N)=R(1:N)*COS(A(1:N))。
用户定义的数组值的函数和数组构造子。
RECURSIVE过程。
模块，将有关联的过程和数据组合在一起，使它们可以被其它程序单元调用，包括限制只允许访问模块的特定部分的能力。
极大地改善了参数传递机制，允许在编译时检查接口。
用户书写的泛型过程的接口。
運算子多載。
派生（结构化）数据类型。
新的数据类型定义语法，以指定数据类型和变量的其它特性。
动态内存分配，通过ALLOCATABLE特性和ALLOCATE和DEALLOCATE语句。
POINTER特性，指针赋值和NULLIFY语句，以便于创建和操作动态数据结构。
结构化循环构造，使用END DO语句用于循环终止，EXIT和CYCLE语句，用于有秩序地“跳出”正常的DO循环迭代。
SELECT…CASE构造，用于多路选择。
用户控制下可移植的数值精度规定。
新的和增强的内部过程。
演化 > Fortran 90 > 废弃与删除

不同于以前的修订，在Fortran 90标准文本的附录“B.1 删除特征”中，没有列出任何要删除的特征。任何符合标准的FORTRAN 77程序，在Fortran 90之下也是符合标准的，二者标准都应当能够定义它的行为。
在附录“B.2 废弃特征”中列举了一小组特征，并期望在将来的标准中删除它们。所有这些早期版本特征的功能，都可以用较新的Fortran特征来完成。其中一些为了简化旧程序移植而保留，大多数在Fortran 95中被删除了。
| 废弃特征 | 当前状态 |
| --- | --- |
算术IF语句: 删除
非整数DO形式参数或控制变量: 删除
共享的DO循环终止或终止于END DO或CONTINUE之外的语句: 删除
从块外部分支进入END IF: 删除
PAUSE语句: 删除
ASSIGN语句和指派GO TO语句: 删除
赋值的语句编号和FORMAT指定符: 删除
H编辑描述符: 删除
替代返回: 废弃
计算GO TO语句: 废弃
语句函数: 废弃
在可执行语句之间的DATA语句: 废弃
CHARACTER*形式的CHARACTER声明: 废弃
假定字符长度的函数: 废弃
固定形式的源代码: 废弃
演化 > Fortran 95

Fortran 95正式发表为ISO/IEC 1539-1:1997，它僅是一個小改版，其大部份是修正Fortran 90标准的一些較為顯著的問題。雖然如此，Fortran 95仍有不少的擴充，尤其是对高性能Fortran的规定：
FOR ALL和嵌套的WHERE结构，用以辅助向量化。
用户定义的PURE和ELEMENTAL过程。
派生类型成员的缺省初始化，包括指针初始化。
扩展了对数据对象使用初始化表达式的能力。
初始化指针至NULL()。
明确了ALLOCATABLE数组的定义，即它们在出离了作用域的时候自动的被释放。
Fortran 95的一个重要补充是ISO技术报告TR-15581：《增强的数据类型设施》，非正式名称是“可分配TR”。这一标准定义了ALLOCATABLE数组的增强的应用，先于完全与Fortran 2003兼容的Fortran编译器而投入使用。这些使用包括将ALLOCATABLE数组作为派生类型成员、用在过程伪参数列表中以及作为函数返回值。
ALLOCATABLE数组比基于POINTER的数组更受欢迎，因为ALLOCATABLE数组是由Fortran 95提供保证的，当它们退出作用域时会被自动释放掉，避免了内存泄漏的可能性。另外，别名也不再是优化数组引用时的一个问题，可以使编译器生成比用指针时更快的代码。
Fortran 95的第二个补充是ISO技术报告TR-15580：《浮点异常处理》，非正式名称是“IEEE TR”。这一标准定义了对IEEE浮点算术和浮点异常处理的支持。
演化 > Fortran 95 > 条件编译和变长字符串

除了强制性的“基础语言”（定义于ISO/IEC 1539-1 : 1997）Fortran 95语言还包括两个可选的模块：
变长字符串（ISO/IEC 1539-2 : 2000）。
条件编译（ISO/IEC 1539-3 : 1998）。
它们一起构成了多部分的国际标准（ISO/IEC 1539）。
现代Fortran

作为由二十一世纪的标准定义的语言，特别是因为它结合了面向对象编程支持和后来的Coarray Fortran（英语：），它经常被称为“现代Fortran”，这个术语在文献中的使用日渐增长。
现代Fortran > Fortran 2003

Fortran 2003正式发表为ISO/IEC 1539-1:2004，它是介入了很多新特征的重大修订版本。ISO Fortran工作组（ISO/IEC JTC 1/SC 22（英语：）/WG5）的官方网站有关于Fortran 2003新特征的详细总结。
据该文所述，本版本的主要改进包括：
增强了的派生类型：参数化派生类型，改进的可访问性控制，改进的结构构造子和终止器。
支持面向对象编程：类型扩展和继承，多态，动态类型分配，以及类型绑定过程，提供对抽象数据类型的完全支持。
改善了数据操纵：可分配的成员（结合了IEEE TR 15581），延迟类型形式参数，VOLATILE特性，在数组构造子和分配语句中显式的类型指定，增强的指针，扩展的初始化表达式，增强的内部过程。
增强的输入/输出：异步传输，串流访问，用户指定的派生类型的传输操作，用户指定的在格式转换时的舍入控制，预连接单元的命名常量，FLUSH语句，关键字的规范化，访问错误信息。
过程指针。
支持IEEE浮点算法和浮点异常处理（结合了IEEE TR 15580）。
与C语言的交互性。
支持国际化：访问ISO 10646四字节字符，在数值格式化输入/输出中选择小数点或者逗号。
增强与宿主操作系统的集成：访问命令行参数、环境变量和处理器错误信息。
对Fortran 2003的一个重要补充是ISO技术报告TR-19767：《增强的Fortran中模块设施》。这个报告提供了“子模块”，它使得Fortran模块更加类似于Modula-2模块。它们都类似于Ada私有子从单元。这允许模块的规定和实现，可以用分立的程序单元来表达，它改进了大型库的包装，允许尽管发布明确接口却保护商业机密，并防止编译级联。
现代Fortran > Fortran 2008

ISO/IEC 1539-1:2010，非正式的叫做Fortran 2008，于2010年9月通过。它只是一個小改版，略微更正了Fortran 2003的一些問題，並且合併了ISO/IEC TR 19767:2005的子模块功能。新的功能包括：
子模块，它是用于模块的补充的结构设施；取代了ISO/IEC TR 19767:2005。
Coarray Fortran（英语：），它是并行执行模型。
DO CONCURRENT（英语：）构造，用于没有内部依赖性的循环迭代。
CONTIGUOUS特性，用来指定存储格局限制。
BLOCK构造，它可以包含具有构造作用域的对象的声明。
递归可分配成员，作为在派生类型中递归指针的替代者。
对Fortran 2008的一个补充是ISO技术规定（TS）29113:2012《进一步的Fortran同C语言的互操作性》，它于2012年5月被提交到ISO并获得批准。这个规定增加对C语言访问数组描述符的支持，并允许忽略实际参数的类型和秩。
现代Fortran > Fortran 2018

Fortran语言的2018年修订版（Fortran 2018）早先称为Fortran 2015，它是一个重大的修订并且发行于2018年11月28日。
Fortran 2018结合了两个此前出版的技术规范：
ISO/IEC TS 29113:2012《进一步的Fotran同C语言的互操作性》。
ISO/IEC TS 18508:2015《补充的Fortran并行特征》。
此外的变更和新特征包括支持：ISO/IEC/IEEE 60559:2011（在IEEE 754-2019的最新细小修订之前的IEEE浮点数标准）、十六进制输入/输出、IMPLICIT NONE增强和其他变更。
现代Fortran > Fortran 2023

Fortran 2023（ISO/IEC 1539-1:2023）发表于2023年11月，可从ISO获得。
Fortran的特征

Fortran语言的最大特征，是接近数学公式的自然描述，在计算机里具有很高的执行效率。Fortran可以直接对矩阵和复数进行运算。其矩陣元素在記憶空間儲存次序，採用了纵列为主（英语：）（Column major）次序，Matlab也承襲這點，而C語言則採用横行为主（英语：）（Row major）次序。
Fortran自诞生以来广泛地应用于数值计算领域，特别是并行计算和高性能計算领域。很多专用的大型数值运算计算机针对Fortran做了优化。Fortran积累了大量高效而可靠的源程序。Fortran 90、Fortran 95、Fortran 2003、Fortran 2008和Fortran 2018的相继推出，使Fortran语言具备了现代高级编程语言的一些特征。
代码例子 > Hello World

示例一个在标准输出设备上输出Hello World的简单程序，这种程序通常作为开始学习编程语言时的第一个程序，下面是FORTRAN 77的写法：
PROGRAM HELLO
C     PRINT语句类似WRITE，
C     但是打印到标准输出单元
        PRINT '(A)', 'Hello, world'
        STOP
      END
下面是Fortran 90的写法：
program HelloWorld
   write (*,*) 'Hello, world!'   ! 这是个行内注释
 end program HelloWorld
代码例子 > 最大公约数

下面的FORTRAN 77代码例子，使用欧几里德算法计算两个数A和B的最大公约数：
*     euclid.f (FORTRAN 77)
*     使用欧几里德算法找到最大公约数
      PROGRAM EUCLID
        PRINT *, 'A?'
        READ *, NA
        IF (NA.LE.0) THEN
          PRINT *, 'A must be a positive integer.'
          STOP
        END IF
        PRINT *, 'B?'
        READ *, NB
        IF (NB.LE.0) THEN
          PRINT *, 'B must be a positive integer.'
          STOP
        END IF
        PRINT *, 'The GCD of', NA, ' and', NB, ' is', NGCD(NA, NB), '.'
        STOP
      END

      FUNCTION NGCD(NA, NB)
        IA = NA
        IB = NB
   10   IF (IB.NE.0) THEN
          ITEMP = IA
          IA = IB
          IB = MOD(ITEMP, IB)
          GOTO 10
        END IF
        NGCD = IA
        RETURN
      END
下面展示编译和运行这个程序的结果：
$ f77 -o euclid euclid.f
$ ./euclid
 A?
24
 B?
36
 The GCD of          24  and          36  is          12 .
代码例子 > Fortran 90特色示例

下面的程序展示动态内存分配和基于数组的运算，这是Fortran 90介入的两个特征。要特别注意的是在操纵数组时，未出现DO循环和IF/THEN语句，数学运算应用于作为整体的数组。同样明显的是运用了描述性变量名字和普通代码格式，这符合当代编程风格。这个例子在交互式录入的数据上计算平均值：
program average
  ! 读取一些数值并取其平均
  ! 如下所写，如果没有数据点，返回均值为零
  ! 尽管这可能不是预期行为，它保持例子简单
  implicit none

  real, dimension(:), allocatable :: points
  integer :: number_of_points
  real :: average_points, positive_average, negative_average
  average_points = 0.0
  positive_average = 0.0; negative_average = 0.0

  write (*,*) "Input number of points to average:"
  read  (*,*) number_of_points
  allocate (points(number_of_points))
  write (*,*) "Enter the points to average:"
  read  (*,*) points

  ! 通过总和诸点并除以点数来取平均
  if (number_of_points > 0) average_points = sum(points) / number_of_points

  ! 现在分别只在正数和负数上取平均
  if (count(points > 0.) > 0) &
    positive_average = sum(points, points > 0.) / count(points > 0.)
  if (count(points < 0.) > 0) &
    negative_average = sum(points, points < 0.) / count(points < 0.)

  ! 打印结果到终端标准输出单元6
  write (*,'(a,g12.4)') 'Average = ', average_points
  write (*,'(a,g12.4)') 'Average of positive points = ', positive_average
  write (*,'(a,g12.4)') 'Average of negative points = ', negative_average
  deallocate (points) ! 释放内存
end program average
下面展示编译和运行这个程序的结果：
$ gfortran -o average average.f90
$ ./average
 Input number of points to average:
8       
 Enter the points to average:
0 1 -1 2 -2 3 -3 4
Average =   0.5000    
Average of positive points =    2.500    
Average of negative points =   -2.000
FORTRAN编译器

Windows操作系统下：
Fortran Power Station 4.0（FPS 4.0），微软公司开发的Fortran编译器。1997年3月转让给DEC公司。
Digital Visual Fortran（DVF），Fortran Power Station的DEC公司版本，版本号为5.0.x ~ 6.0.x。
Compaq Visual Fortran（CVF），1998年1月，DEC公司被康柏公司收购，Digital Visual Fortran更名为Compaq Visual Fortran，版本号为6.5.x ~ 6.6.B。2002年5月康柏公司已并入惠普公司，但CVF并未改名，版本号升级到6.6.C。
Intel Fortran（英语：），英特尔公司开发的Fortran编译器。惠普购买了CVF技术之后不久，将Windows平台上的从CVF 6.6.C之后Fortran编译器相关权利全部转售给Intel，它需要微软Visual Studio外壳的支持才能实现Visual IDE功能。在Intel手上的版本編號從7.0開始至現在。
Absoft Fortran（英语：）
Open Watcom
Silverfrost FTN95（英语：），个人用户可免费使用的Fortran 95编译器套件。支持编译为Win32或.NET可执行程序，内置名为Plato的IDE，也可通过插件支持Visual Studio，调试器使用SDBG。
Linux操作系统下：
PGI Fortran（英语：），现已被Nvidia收购。
g77，GNU的Fortran 77编译器，集成在GCC中。
gfortran，GNU的最新的Fortran编译器，集成在GCC 4.x及以上版本中，目前支持全部Fortran 95、大部分Fortran 2003和Fortran 2008的功能，以替代g77。
Intel Fortran（英语：），它支持Linux操作系统。
Absoft Fortran（英语：）
G95（英语：），开放源代码的Fortran 95编译器。
Sun Studio
Open64編譯器
FORTRAN数值库

几个著名的Fortran软件包：
IMSL — 国际数学和统计库的数值库
MKL（英语：） — Intel数学核心库
NAG（英语：） — 数值算法组的数值库
BLAS — 基本线性代数子程序库
LAPACK — 线性代数软件包
參見

f2c（英语：）
NumPy提供的F2PY
Fortran编译器列表（英语：）
Fortran数值库列表（英语：）
矩阵表示（英语：）
行主序和列主序（英语：）
注解

↑  注意：通常人们会认为这一语句对应于IBM 704上的一个三态分支指令。但事实并非如此，704的分支指令只包含了一个目标地址（例如，TZE - 转换AC为零，TNZ - 转换AC为非零，TPL - 转换AC为加，TMI - 转换AC为减）。机器（以及它的后继者如700/7000系列（英语：））确实有一个三态跳转指令（CAS - 比较AC与存储），那可能是这一说法的最初起源，但是用这一指令来执行IF的话，会消耗4个指令词，需要把常数零放入存储中，然后执行三个机器循环，而如果使用转换指令来实现IF的话，只需要1到3个指令词就够了，不需要将常数存入存储，只需要1到3个机器循环来执行。一个优化的编译器如FORTRAN最有可能采用的是更精简的和通常来说更快的转换指令，而不是比较指令（使用指换指令同时也允许FREQUENCY语句来优化IF，而如果使用比较指令的话则无法实现）。同时，比较指令还将-0和+0认为是不同的值，而转换零和转换非零语句将它们视为相同的值。
↑  FORTRAN中的FREQUENCY最初是被用来给算术IF语句的三种分支状态给出可能性的，以供选择代码生成的方式以及生成的代码的基本块的顺序，在全局优化时，会在内存中安排以便于优化。第一个FORTRAN编译器使用这一权重法来在编译时作运行时生成代码的蒙特卡洛模拟。在当时来说是非常复杂的。这一技术最初记载于1957年的一篇关于第一个FORTRAN编译器实现的文章中，作者是J. Backus等人。许多年之后，FREQUENCY语句对代码已经没有作用了，就被作为注释语句对待了，因为编译器不再作这种编译时模拟了。
以下摘自1957的论文："FORTRAN自动编码系统"，作者：Backus等人，FREQUENCY语句和它在编译时蒙特卡洛模拟运行时的用法，以优化生成的代码。引文：“
The fundamental unit of program is the basic block; a basic block is a stretch of program which has a single entry point and a single exit point. The purpose of section 4 is to prepare for section 5 a table of predecessors (PRED table) which enumerates the basic blocks and lists for every basic block each of the basic blocks which can be its immediate predecessor in flow, together with the absolute frequency of each such basic block link. This table is obtained by an actual "execution" of the program in Monte-Carlo fashion, in which the outcome of conditional transfers arising out of IF-type statements and computed GO TO'S is determined by a random number generator suitably weighted according to whatever FREQUENCY statements have been provided.”
波多野秀尚

| 波多野 秀尚 |
| --- | --- |
時代: 日本戰國時代—安土桃山時代
出生日期: 不詳
逝世日期: 天正7年6月2日（1579年6月25日）
氏族: 波多野氏（日语：）
父母: 父：波多野晴通
兄弟: 兄：秀治 弟：秀香
| 日語寫法 |
| --- | --- |
日語原文: 
假名: 
平文式罗马字: 
波多野秀尚（?—1579年6月25日），日本戰國時代至安土桃山時代的武將。父親是波多野晴通。
生平

生年不詳，家中次男。與哥哥秀治一同在八上城（日语：）死守城池，與織田氏家臣明智光秀軍戰鬥長達1年半，最後降伏（黑井城之戰（日语：）），與秀治一同被送到安土，在慈恩寺被處以磔刑。
辭世句是「」。
相關條目

波多野氏（日语：）
经前综合症

| 經前綜合症 |
| --- | --- |

經前症候群的典型症狀有易怒、壓力大或是心情低落。
症状: 肌肉疼痛、關節疼痛、頭痛、疲倦
类型: 女性生殖系统病患[*]、疾病
分类和外部资源
醫學專科: 婦科學
ICD-11: GA34.40
ICD-10: N94.3
ICD-9-CM: 625.4
DiseasesDB: 
MedlinePlus: 
eMedicine: 953696
[编辑此条目的维基数据]
經前綜合症（Premenstrual syndrome，PMS），有時被稱為經前緊張症（PMT），是在女性月經來潮之前一至二週出現的生理及心理相關症狀。症狀的程度因人和時間而異，約在月經出現時結束 。常見症狀包括粉刺、乳房壓痛、腹脹、容易疲倦、易怒及情緒上的改變 。症狀一般會持續六天。多数育龄妇女（约80%）都有一些经前综合征的症状，而美国家庭医生学將把經前綜合症限定为具有“严重妨碍某些方面的生活功能”症状。同一位女性其經前綜合症的症狀或是出現的時間也會隨時間而改變。在懷孕時或是更年期不會有經前綜合症的症狀。
造成經前症候群的原因不明，但若不斷攝取高鹽、高酒精與高咖啡因食物則會使得症狀加劇 ，目前認為造成病徵的根本原因和賀爾蒙的改變有關，例如雌激素在經期後半段會顯著的減少，這樣的供應中斷會造成心理變化。診斷方式需要持續記錄在月經前的情緒以及生理狀況，直到因此疾病造成的變化開始影響正常生活，這些病徵不會是在月經一開始就出現的。若有一張保持記錄每月病況的清單，將有助於疾病的診斷。在確診前，必須排除其他有可能造成相似症狀的疾病。
減少食鹽、咖啡因的攝取，並且減少壓力的產生還有增加運動量，就是醫師會給予因經前症候群而苦惱的病患之建議，在某些時候，補充鈣質還有維他命D也會有些許幫助。例如奈普生之類的抗發炎藥物可以緩解生理上的症狀。對於那些病況更嚴重的患者，避孕藥或是安達通（一種利尿劑）可有部分助益。
研究顯示，有8成在生育年齡的婦女月經前會有些微的經前症候群症狀。在這些婦女當中，約有2至3成確診患有經前症候群，而更有2至8%的她們，其病徵已達嚴重程度。經期憂鬱症（PMDD）則是經前症候群中的另一種疾病，且有更明顯的情緒、精神性病徵。選擇性血清回收抑制劑類的抗憂鬱藥物可以作為治療經期憂鬱症患者的非常手段。