1. Fortranã®æŠèŠãšç¹åŸŽ
Fortranãšã¯ã1957幎ã«IBMãéçºããäžçåã®é«çŽããã°ã©ãã³ã°èšèªã®äžã€ã§ãç§åŠæè¡èšç®ãã¯ãããšããæ°å€èšç®ãåŸæãšããèšèªã§ãããã®ååã¯ãFormula TranslationïŒå ¬åŒç¿»èš³ïŒãã®ç¥ã§ãããæ°åŒãæ±ãããšããããã®åã®ç±æ¥ã䌺ããŸãã
Fortranã¯ãšã³ãžãã¢ãç§åŠè ãå€ã䜿çšãããšããç¹åŸŽããããçŸåšã§ãç§åŠæè¡èšç®ã®åéã§åºã掻çšãããŠããŸããFortranãå€ã䜿çšãããèæ¯ã«ã¯ããã®å¹çæ§ãšä¿¡é Œæ§ã倧ãã圱é¿ããŠããŸãã
äžæ¹ã§ãFortranã¯è¿å¹Žã®Webéçºãã¢ããªã±ãŒã·ã§ã³éçºã§äž»æµãšãªã£ãŠããPythonãJavaãªã©ãšã¯ç°ãªããæ¯èŒçåŠç¿ããæ©äŒãå°ãªãèšèªã§ããããŸãã
1.1 Fortranã®æŽå²ãšéèŠæ§
Fortranãéçºãããã®ã¯ã³ã³ãã¥ãŒã¿ãŒã®é»ææã§ããããã以åã¯ã¢ã»ã³ããªèšèªããã·ã³èªã§ããã°ã©ãã³ã°ãè¡ããªããã°ãªããªãã£ããããFortranã¯ç»æçãªååšã§ããã
Fortranã®éçºä»¥éããšã³ãžãã¢ãç§åŠè ã¯ãã·ã³äŸåã®ã¢ã»ã³ããªèšèªãã解æŸãããããæœè±¡çãªè¡šçŸã§ã¢ã«ãŽãªãºã ãèšè¿°ã§ããããã«ãªããŸããããã®æœè±¡åã®ãã©ãã€ã ã·ããã¯ãçŸä»£ã®é«çŽããã°ã©ãã³ã°èšèªãæ±ãå€ãã®ã³ã³ã»ããã圢æããŸããã
ç°¡æœã§å¹ççãªè¡šçŸãå¯èœãªFortranã¯ããã®åŸãå€ãã®ç§åŠèšç®ããšã³ãžãã¢ãªã³ã°åéã§éèŠãªåœ¹å²ãæãããŠããŸããã
1.2 Fortranã®äž»ãªç¹åŸŽ
Fortranã®ç¹åŸŽã¯ãã®å¹çæ§ãšä¿¡é Œæ§ã§ããFortranã¯æ°å€èšç®ã«ç¹åããèšèªã§ããã倧èŠæš¡ãªèšç®ãå¿«é©ã«è¡ãããšãã§ããŸãã
å¹çæ§ã®é¢ã§ã¯ãFortranã¯ã³ã³ãã€ã«èšèªã§ãããå®è¡é床ãæ©ãããšãç¹åŸŽã§ããããã«ããã倧éã®ããŒã¿ãæ±ãèšç®åŠçã«ãããŠæéççž®ãå¯èœãšãªããŸãã
ä¿¡é Œæ§ã«ã€ããŠã¯ãFortranã¯éçåä»ããæ¡çšããŠãããããã©ã³ã¿ã€ã ãšã©ãŒãèµ·ããã«ãããšããç¹æ§ããããŸããããã«ãããç§åŠèšç®ããšã³ãžãã¢ãªã³ã°ãªã©ãæ£ç¢ºããæ±ããããåéã§åºãå©çšãããŠããŸãã
1.3 Fortranã®ããŒãžã§ã³ã«ã€ããŠ
Fortranã®ããŒãžã§ã³ã¯å€å²ã«äºããããããã®ããŒãžã§ã³ã§è¿œå ãããæ©èœãä¿®æ£ãè¡ãããŠããŸããæãåæã®ããŒãžã§ã³ã¯ãFortran Iãã§ãããçŸåšã§ã¯ãFortran 2008ãããFortran 2018ããªã©ãããŸããŸãªææ°ããŒãžã§ã³ãååšããŸãã
ããŒãžã§ã³ã«ããéãã¯äž»ã«æ©èœè¿œå ãä»æ§ã®æ¹åãæ¢ç¥ã®åé¡ã®ä¿®æ£ãªã©ãå«ãŸããŸãããããã£ãŠã䜿çšããFortranã®ããŒãžã§ã³ã«ãã£ãŠãå©çšã§ããæ©èœãæžãæ¹ãå€ããå ŽåããããŸãã
ãããäžæ¹ã§ãFortranã®åºæ¬çãªæ§æãèãæ¹ã«ã€ããŠã¯ããŒãžã§ã³éã§ãå ±éããŠãããããäžåºŠFortranã®ããã°ã©ãã³ã°ãç解ããã°ãããããã®ããŒãžã§ã³éã§ã®é©å¿ã容æã«ãªããŸãã
1.4 Fortranã®äœ¿çšåé
Fortranã¯ããã®æ°å€èšç®èœåã®é«ããããç§åŠæè¡èšç®ã®åéãäžå¿ã«å±éãããŠããŸãããç¹ã«ãæ°è±¡äºå ±ãæ°åã¢ããªã³ã°ãç©çåŠãååŠããšã³ãžãã¢ãªã³ã°ãªã©ã倧éã®ããŒã¿ãšèšç®ãå¿ èŠãªåéã§åºãå©çšãããŠããŸãã
ãŸããFortranã¯äžŠåèšç®ã«ããã匷åãªãµããŒããæäŸããŠãããããã¹ãŒããŒã³ã³ãã¥ãŒã¿ãŒãçšãã倧èŠæš¡ãªã·ãã¥ã¬ãŒã·ã§ã³äœæã«ãé »ç¹ã«å©çšãããŠããŸãã
Fortranã¯ãã®æ§è³ªäžãããŒã¿åæãæ±çšã¢ããªã±ãŒã·ã§ã³ã®éçºãããå°éçãªåéã§å©çšãããåŸåã«ãããããç¹å®ã®æ¥çã§ããçšåºŠã®å°éç¥èãæã£ããšã³ãžãã¢ãç§åŠè ã«ãšã£ãŠã¯ãéåžžã«æçšãªããŒã«ãšãªããŸãã
2. Fortranã§ã§ããããš
Fortranã¯ç§åŠæè¡èšç®ãå°éã«æ±ãããã°ã©ãã³ã°èšèªã®äžã€ã§ããããã®æ©èœã䜿ãéã¯å€å²ã«ããããŸãã次ã®é ç®ã§ã¯ãã©ã®ãããªäºãFortranã§å¯èœãªã®ããå ·äœçã«çŽ¹ä»ããŠãããŸãã
2.1 æ°å€èšç®ãšã·ãã¥ã¬ãŒã·ã§ã³
Fortranã¯ãã®åºèªããæ°å€èšç®ãšã·ãã¥ã¬ãŒã·ã§ã³ãåŸæãªåéãšãªã£ãŠããŸããå§ç®åŠãç©çåŠãæ°ååŠãªã©ãç§åŠæè¡ã®åéã§ã¯ç¹°ãè¿ããå€ã倧éã®æ°å€èšç®ãé »ç¹ã«è¡ãããŸãã
ãŸãããã®ãããªè€éãªèšç®ãè¡ãããã«ã¯å¹çããã¢ã«ãŽãªãºã ãèšèšããèœåãæ±ããããFortranã¯ãã®ãããã®ãã³ããªã³ã°ã容æã§ããããšã§ãç¥ãããŠããŸããããã«ãFortranã§éçºããããœãããŠã§ã¢ã§ã¯ãé«éãªã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ããããšãå¯èœã§ãã
ãã®ããã倩æ°äºå ±ã®ã·ãã¥ã¬ãŒã·ã§ã³ãèªç©ºæ©ã®é£è¡ã·ãã¥ã¬ãŒã·ã§ã³ãéåååŠã®èšç®ãªã©ãé«åºŠãªèšç®ãå¿ èŠãªåéã§ãã䜿ãããŸãã
2.2 ããŒããŠã§ã¢ãšã®çŽæ¥çãªéä¿¡
Fortranã¯ããŒããŠã§ã¢ãšçŽæ¥ã«éä¿¡ããããšãå¯èœã§ãããããã«ããããŒããŠã§ã¢ãæ倧éã«æŽ»çšã§ããŸããããã¯ç¹ã«ã¹ãŒããŒã³ã³ãã¥ãŒã¿ãŒã®ãããªç¹æ®ãªç°å¢ã§ã®ããã°ã©ãã³ã°ã«éèŠã§ãã
ããã«ãFortranã§ã¯ããŒããŠã§ã¢ã«çŽæ¥ã¢ã¯ã»ã¹ããããšã§ãä»ã®ããã°ã©ãã³ã°èšèªã§ã¯é£ããã¬ãã«ã®ããã©ãŒãã³ã¹ãåºããŸããããã¯ãäŸãã°é«åºŠãªç©çã·ãã¥ã¬ãŒã·ã§ã³ãè¡ããããªå Žåã«éåžžã«æå¹ã§ãã
ãããã£ãŠãFortranã䜿ãããªãããšã¯ãæ倧éã®ã³ã³ãã¥ãŒãã£ã³ã°ããã©ãŒãã³ã¹ãåŸãããã«éèŠãšãªããŸãã
2.3 ããã©ãŒãã³ã¹ã®æé©å
Fortranèšèªã¯ããã©ãŒãã³ã¹ã®æé©åã«çç®ããèšèšããªãããŠãããé«éãªèšè¿°ãå¯èœãšãªã£ãŠããŸããå ·äœçã«ã¯ãé åãè¡åã®æäœã容æã§ã䞊ååŠçããã¯ãã«åã«ã察å¿ããŠããŸãã
ãŸããFortranã¯ã³ã³ãã€ã«èšèªã§ãããããå®è¡é床ãéããªããšããã¡ãªããããããŸããå ããŠãæé©åã³ã³ãã€ã©ã®é²åã«ãããã³ãŒãã®å¹çåãå¯èœãšãªã£ãŠããŸãã
ãã®ãããªç¹æ§ããã倧èŠæš¡ãªæ°å€èšç®ãé«éã«åŠçããå¿ èŠãããç§åŠæè¡ç³»ã®ç 究ãç£æ¥çã§ãFortranã¯åºãå©çšãããŠããŸãã
2.4 è€éãªããŒã¿è§£æ
Fortranã¯è€éãªããŒã¿è§£æã«ã匷ããããŸããŸãªåœ¢åŒã®ããŒã¿ãæ±ãããšãã§ããŸããå ·äœçã«ã¯ãé«æ¬¡å é åãè€éãªèšç®ãå¿ èŠãšããããŒã¿è§£æã«é©ããŠããŸãã
ãŸããFortranã¯é«åºŠãªæ°å€æŒç®ããµããŒãããŠãããããçµ±èšåŠãããŒã¿ãµã€ãšã³ã¹ã®åéã§ãå©çšãããŠããŸãããã®ãããªç¹æ§ã«ããããªããžã§ã¯ãæåçãªèšèšãå¯èœãšãªã£ãŠããŸãã
ããã«ãFortranã¯æ°å€è§£æã©ã€ãã©ãªãå å®ããŠãããããããçšããããšã§ããé«åºŠãªããŒã¿è§£æãè¡ãããšãå¯èœãšãªããŸãã
3. Fortranã®åºæ¬çãªæ§æ
Fortranãšã¯ãäžè¬çã«ç§åŠèšç®ãæ°å€èšç®ã«äœ¿çšãããããã°ã©ãã³ã°èšèªã®äžã€ã§ãããã®åºæ¬çãªæ§æã玹ä»ããåã«ãFortranãèªçããçµç·¯ã«å°ã觊ããŠã¿ãŸããããFortranã¯æåã«IBMã§éçºããããã®åŸå€ãã®ããŒãžã§ã³ããªãªãŒã¹ãããçŸåšã䜿çšããç¶ããŠããŸãã
çŸåšã§ãå€ãã®ç 究è
ãæè¡è
ã䜿ãç¶ããŠããçç±ãšããŠã
èšç®ã¹ããŒãã®éãããœãŒã¹ã³ãŒãã®å¯èªæ§ãæããããŸãããããŠããã®ç¹é·ãæ¯ããã®ãFortranã®åºæ¬çãªæ§æã§ãã
以äžã§ã¯ãFortranã®åºæ¬çãªæ§æãã€ãŸãå€æ°ã®å®çŸ©ãšåãå¶åŸ¡æ§é ãé¢æ°ãšãµãã«ãŒãã³ãã¢ãžã¥ãŒã«ãšããã°ã©ã æ§é ã«ã€ããŠèª¬æããŸãã
3.1 å€æ°ã®å®çŸ©ãšå
Fortranã§ã¯ãå€æ°ã¯INTEGER
ãREAL
ãDOUBLE PRECISION
ãCOMPLEX
ãLOGICAL
ãCHARACTER
çã®åãå®çŸ©ããŸãããããã¯ãããããæŽæ°ãå®æ°ãå粟床å®æ°ãè€çŽ æ°ãè«çå€ãæååãæ±ãããã®åã§ãã
å€æ°ã®å®çŸ©ã¯ãåã®å®£èšãšåæã«è¡ãããšããåŸããè¡ãããšãã§ããŸããäŸãã°ãINTEGER :: a
ãšããããšã§ãæŽæ°åã®å€æ°aãå®çŸ©ããããšãã§ããŸãã
ãŸããäžåºŠå®çŸ©ããå€æ°ã®åãå€æŽããããšã¯ã§ããŸããããã®ãããªç¹åŸŽã¯ãããã°ã©ã ã®å®å šæ§ãä¿ã€ããã«éèŠãªæ©èœã§ãã
3.2 å¶åŸ¡æ§é
Fortranã®å¶åŸ¡æ§é ã«ã¯ãäžè¬çãªããã°ã©ãã³ã°èšèªãšåæ§ã«ãæ¡ä»¶åå²ã®IF
æãç¹°ãè¿ãã®DO
æãååšããŸãã
IF
æã¯æ¡ä»¶ãæºãããã©ããã§åŠçãåå²ããŸããDO
æã¯æå®ããåæ°ã ãããŸãã¯æ¡ä»¶ãæºããéåŠçãç¹°ãè¿ããŸãã
ãããã®å¶åŸ¡æ§é ã«ãããFortranã§ã¯è€éãªåŠçãå¹ççã«èšè¿°ããããšãã§ããŸãã
3.3 é¢æ°ãšãµãã«ãŒãã³
Fortranã§ã¯ãFUNCTION
ããŒã¯ãŒããçšããŠé¢æ°ãå®çŸ©ããŸããé¢æ°ã¯å
¥åãåãåããäœããã®èšç®ãåŠçãè¡ã£ãåŸãäžã€ã®å€ãè¿ããŸãã
äžæ¹ãSUBROUTINE
ã䜿çšããã°ãè€æ°ã®å€ãè¿ãããšãã§ããŸãããŸããSUBROUTINE
ã¯é¢æ°ãšç°ãªããå€ãè¿ããªãå ŽåããããŸãã
ãããé¢æ°ãšãµãã«ãŒãã³ã®äœ¿çšã«ãããããã°ã©ã ã®åå©çšæ§ãåäžããã³ãŒãã®ç°¡æœæ§ãå¯èªæ§ãä¿ãããŸãã
3.4 ã¢ãžã¥ãŒã«ãšããã°ã©ã æ§é
Fortranã§ã¯ãè€æ°ã®PROGRAM
ãSUBROUTINE
ãFUNCTION
ãªã©ããæã倧èŠæš¡ãªããã°ã©ã ãå¹çè¯ã管çããããã®æ段ãšããŠãMODULE
ãšããæŠå¿µããããŸãã
MODULE
ã¯ãé¢é£ãããµãã«ãŒãã³ãé¢æ°ãå€æ°ãªã©ãäžãŸãšãŸãã«ããŠç®¡çããããã®ãã®ã§ãããPROGRAM
å
ã§USE
ããŒã¯ãŒããçšããŠåŒã³åºããŸãã
MODULE
ã䜿çšããããšã§ãããã°ã©ã ã®åå©çšæ§ãé«ãããšãšãã«ãã³ãŒãã®æŽçã容æãšãªãã倧èŠæš¡ãªããã°ã©ã ã®éçºãç¡çãªãé²ããããšãå¯èœã§ãã
4. Fortranã®åŠç¿ã¡ãœãã
åŠã¶ã¹ãããã°ã©ãã³ã°èšèªã¯æ°å€ããããŸãããèšç®ç§åŠããšã³ãžãã¢ãªã³ã°ã®åéã§é·ãé䜿ãããŠããèšèªãFortranã§ãããã®åŠç¿ã¡ãœãããæ¢æ±ããããšã§ãæè¡è ãšããŠã®ã¹ãã«ãé«ããããšãã§ããŸãã
4.1 èšèªæ§é ã®ç解
Fortranã®åŠç¿ã¯ãFortranã®èšèªæ§é ãç解ããããšããå§ããŸããFortranã¯ãç§åŠèšç®ãæ°å€èšç®ãäžå¿ã«äœ¿çšãããèšèªã§ããããããã®æ§é ã¯ãã®ãããªèæ¯ãåæ ããŠããŸããåŸã£ãŠãé åæäœã®ç解ã䞊è¡åŠçã®ç解ãå¿ èŠãšãªããŸãã
ãŸããFortranã¯èèã®ããã°ã©ãã³ã°èšèªã§ãããããæ§åŒã®èšèªæ©èœãšæ°åŒã®èšèªæ©èœãæ··åšããŠããããšãç¹åŸŽçã§ãããã®ãããæ°æ§ã®æ©èœãç解ããŠãé©åã«äœ¿çšããèœåãæ±ããããŸãã
ããã«ãFortranã¯æç¶ãåèšèªã§ãã®ã§ããã®ç解ãå¿ èŠã§ããæç¶ãåãšã¯ãåé¡ã解決ããããã®äžé£ã®æé ïŒæç¶ãïŒãèšè¿°ããæ¹åŒã®ããšãèšããŸãã
4.2 ã³ãŒãã®èªã¿æžã
èšèªæ§é ã®ç解ãæ·±ããåŸã¯ãå ·äœçãªã³ãŒãã®èªã¿æžãã«ç§»ããŸããFortranã®ã³ãŒããèªãéã«ã¯ãã³ãŒããã©ã®ãããªåŠçãæå³ããŠããã®ãããã®æèãç解ããããšãéèŠã§ãããŸããme Fortranã§ã¯è¡ã®å§ãŸããšçµãããæ確ã«å®çŸ©ãããŠããã®ã§ããã®ã«ãŒã«ã«ã泚æãå¿ èŠã§ãã
次ã«ãèªåã§ã³ãŒããæžãããã«ã¯ãè¯ãã³ãŒããšã¯äœããç解ããå¿ èŠããããŸããããã«ã¯ãå¹ççãªã¢ã«ãŽãªãºã ã®èšèšãæž æœã§èªã¿ãããã³ãŒãã®æžãæ¹ããããŠãã¹ãã®å°å ¥ãªã©ãå«ãŸããŸãã
è¯ãã³ãŒããæžãããã«ã¯ãããã°ã©ãã³ã°ãã©ãã€ã ã®ç解ãå¿ èŠã§ããFortranã¯åºæ¬çã«ã¯æç¶ãåã§ããã90以éã®ããŒãžã§ã³ããã¯äžéšãªããžã§ã¯ãæåãåãå ¥ããŠããŸãã
4.3 å®éã®ãããžã§ã¯ããžã®å¿çš
å®æŠçµéšã¯åŠç¿ã®äžéšã§ãããå®éã®ãããžã§ã¯ãã§Fortranã䜿çšããããšã¯çè«ãå®è·µã«ç§»ãããã®éèŠãªã¹ãããã§ããããã«ãããçè«çãªç¥èãå®éã®åé¡è§£æ±ºã«æŽ»çšããèœåãé€ããŸãã
ãŸãããããžã§ã¯ããéããŠã³ãŒãã®ãªãã¡ã¯ã¿ãªã³ã°ããããã°ã®çµéšãç©ãããšãå¯èœã§ããããã¯ãããå¹ççãªã³ãŒããäœæããããã®éèŠãªã¹ãã«ã§ãã
ãããŠãå®éã®ãããžã§ã¯ãã§ã®çµéšã¯ãããã°ã©ãã³ã°ã¹ãã«ã ãã§ãªããããŒã ã§åãèœåãã³ãã¥ãã±ãŒã·ã§ã³èœåãè²ãŠãŸãããããã¯ãã¯ãã«ã«ã¹ãã«ã ãã§ãªããœããã¹ãã«ãšããŠãéèŠãªèœåã§ãã
4.4 å¹ççãªãããã°æ¹æ³
ãããã°ã¯ãFortranãå«ãä»»æã®ããã°ã©ãã³ã°èšèªã§éèŠãªã¹ãã«ã§ããFortranã³ãŒãã®ãããã°ãå¹ççã«è¡ãæ¹æ³ãåŠã¶ããšã§ãçç£æ§ãåäžãããããšãã§ããŸãã
ãããã°ã«ã¯ãã€ã³ã¿ã©ã¯ãã£ããããã¬ã䜿çšããŸããã€ã³ã¿ã©ã¯ãã£ããããã¬ã¯ãã³ãŒãã®å®è¡ãäžæåæ¢ããä»»æã®å Žæã§ã³ãŒããå®è¡ããå€æ°ã®å€ã芳å¯ããããšãã§ããŸãããããå©çšããã°ããã°ã®åå ãç¹å®ããä¿®æ£ããããšãããç°¡åã«ãªããŸãã
ãŸãããŠããããã¹ããçµ±åãã¹ãããããã°ã«æå¹ãªæ段ã§ãããã¹ãã¯ãã³ãŒããäºæããåäœããããã確èªããããã®ãã®ã§ããããã«ããããã°ãæ©æã«çºèŠããä¿®æ£ããããšãå¯èœãªããŸãã
5. Fortranã®å°æ¥æ§ãšãã¬ã³ã
Fortranã¯1957幎ã«ç»å Žãããç§åŠæè¡èšç®ãäž»ãšããããã°ã©ãã³ã°èšèªã§ããçŸåšã§ããã®åœ¹å²ã¯åŒ·åºã§ãããç¹ã«æ°å€èšç®ãç§åŠæè¡èšç®é åã§ã®å©çšãåºãè¡ãããŠããŸããããããå°äœãå ããŠããããã°ã©ãã³ã°ã®äžçã§ã¯ãã®å©ç¹ãèŠéããããããšãããã®ãçŸç¶ã§ãã
5.1 Fortranã®çŸåšã®å°äœ
Fortranã¯ãçŸåšã§ãé«æ§èœãªæ°å€èšç®ãå¿ èŠãšããæ¥çãç¹ã«æ°è±¡äºå ±ãèªç©ºå®å®ãç©çåŠãªã©ã§é »ç¹ã«çšããããŠããŸãããã®é«æ§èœãªèšç®èœåãšæ±ãããããããæ å ±ç§åŠã«ãããããã©ãŒãã³ã¹ãæ±ããããå Žé¢ã§éžã°ãç¶ããŠããã®ã§ãã
ããããäžæ¹ã§æ°ããªããã°ã©ãã³ã°èšèªã®ç»å Žã«ããããã®å°äœã¯æºããã§ããŸããç¹ã«è¥ãäžä»£ã®ããã°ã©ããŒã«ãšã£ãŠã¯ãFortranã¯å€ãèšèªã§ãããšããèªèããããæ°ããªãããžã§ã¯ãã§ã®æ¡çšãæ¬é ãããåŸåã«ãããŸãã
ããã§ããªããFortranãäžéšã®é åã§éèŠãªå°äœãä¿æãç¶ããŠããã®ã¯ãèšç®é床ãè¿œæ±ããªããã°ãªããªãç¹å®ã®ç 究ãéçºã«ããããã®åªããã¹ã±ãŒã©ããªãã£ãšæ§èœã®ãããã§ãã
5.2 æªæ¥ãžã®çºå±å¯èœæ§
ãã®é«ãèšç®èœåãæã¡ã€ã€ãèèèšèªãšããç«å Žã®Fortranããããããå€ãïŒãã¡ããšè©äŸ¡ãããã®ã§ã¯ãªãããã®é·ãæŽå²ããçããå®å®æ§ãå ç¢æ§ããããŠææ°ã®ã³ã³ãã¥ãŒãã£ã³ã°æè¡ã«å¯Ÿå¿ããæ¡åŒµæ§ã«çç®ããå¿ èŠããããŸãã
ææ°ã®Fortranæšæºã¯2018幎ã«ãªãªãŒã¹ãããFortran 2018ã§ãç§åŠèšç®ä»¥å€ã®é åã§ã®å©çšãèŠéã«å ¥ããæ¹è¯ãå³ãããŠãããæ°ããªå¯èœæ§ãç§ããŠããŸãã
ãŸããæ¢åã®Fortranããã°ã©ã ã®ã¡ã³ããã³ã¹ãéçšãæ°èŠéçºã®éèŠãäŸç¶ãšããŠãããæªæ¥ãžã®çºå±å¯èœæ§ã¯ååã«ç§ããŠãããšèšããŸãã
5.3 è¡ã亀ãæèŠïŒFortranã¯æ»ãã ã®ãããããšãçããŠããã®ãïŒ
ãFortranã¯æ»ãã ããšããæèŠãšãããŸã å¿ èŠæ§ãããããšããäºã€ã®æèŠã亀é¯ããŠããŸãããããããæ»äº¡å®£åãã¯æ¥µç«¯ãã€æ©èšã§ãããšåè«ãã声ããããŸãã
å€ãèšèªã ãããšãã£ãŠãã®æçšæ§ããªããªã£ãããã§ã¯ãªããä»ããªããã®ããã©ãŒãã³ã¹ãšä¿¡é Œæ§ããç¹å®ã®é åã§æããç¶ãã䜿çšããç¶ããŠããŸãã
çµè«ãšããŠã¯ãFortranãå¿ èŠãšãããå Žé¢ã¯äŸç¶ãšããŠååšããæšä»ã®æè¡ç°å¢ã«ãããŠããã®éèŠæ§ã倱ã£ãŠããªããšèšããã§ãããã
5.4 Fortranã®ã³ãã¥ããã£
Fortranã®ã³ãã¥ããã£ã¯æŽ»çºã§ããã®äžã«ã¯æ°ããFortranæšæºãéçºããå°é家ãFortranã³ãŒããæžãããã°ã©ããŒããŸããã®ãŠãŒã¶ãŒãªã©ãå€æ§ãªäººã ãéãŸã£ãŠããŸãã
ãã®ã³ãã¥ããã£ã«ãã£ãŠãFortranã¯åžžã«é²åãç¶ããŠããããããFortranãå€ããšèª€è§£ãããåå ãããããŸããããéã«èããã°ãã¬ãã·ãã«ã«é²åãç¶ããããšãå¯èœãªããã°ã©ãã³ã°èšèªã§ãããšãèšããŸãã
ãã®ç©æ¥µçãªã³ãã¥ããã£æŽ»åããFortranãæªã ã«çŸåœ¹ãšããŠæŽ»èºãç¶ãã倧ããªèŠå ãšãªã£ãŠããŸãã
6. Fortranãšä»ã®èšèªãšã®æ¯èŒ
ãã®ã»ã¯ã·ã§ã³ã§ã¯ãFortranãšä»ã®ããã°ã©ãã³ã°èšèªãšã®éãã«ã€ããŠè§ŠããŸããããããã®èšèªã¯ç¬èªã®å©ç¹ããããç¹å®ã®ã¿ã¹ã¯ã®å®è¡ã«æé©åãããŠããŸããããã§ãC/C++ãPythonãJavaããããŠMATLABãšæ¯èŒããFortranã®ç¹æ§ã«ã€ããŠè©³ããèŠãŠãããŸãããã
6.1 FortranãšC/C++ã®æ¯èŒ
FortranãšC/C++ã¯ãã©ã¡ããç§åŠèšç®ãšãšã³ãžãã¢ãªã³ã°ã®ã¿ã¹ã¯åãã«åºãå©çšãããŠããŸãããç°ãªãææ³ãšç¹æ§ãæã¡ãŸããFortranã§ã¯ãé åæåã®ããã°ã©ãã³ã°ã匷åãããŠããã倧èŠæš¡ãªæ°å€èšç®ã«é©ããŠããŸãã
äžæ¹ãC/C++ã¯ã¡ã¢ãªç®¡çãšãªããžã§ã¯ãæåããã°ã©ãã³ã°ã匷åãããŠããŸããããã«ãããC/C++ã¯é«ãããã©ãŒãã³ã¹ãšç²Ÿå¯ãªå¶åŸ¡ãå¯èœã«ããŸãããããããããã®ç¹æ§ã¯ãã³ãŒãã®è€éæ§ãå¢å ãããå¯èœæ§ããããŸãã
ãããã£ãŠã倧èŠæš¡ãªæ°å€èšç®ãå¿ èŠãªå Žåã¯Fortranãã¡ã¢ãªç®¡çãšãªããžã§ã¯ãæåæ§ãéèŠãªå Žåã¯C/C++ãéžæãããšè¯ãã§ãããã
6.2 FortranãšPythonã®æ¯èŒ
FortranãšPythonã¯ãããããç°ãªãçšéãšã¿ãŒã²ãããŠãŒã¶ãŒãæã£ãŠããŸããFortranã¯ç§åŠèšç®ãšæ°å€èšç®ãå¹ççã«æ±ãèœåããããŸãã
äžæ¹ãPythonã¯æè»æ§ãšãŠãŒã¶ãŒãã¬ã³ããªãŒãªææ³ã§äººæ°ããããŸãããããããã®æ§è³ªããPythonã¯Fortranãšæ¯èŒããŠå®è¡é床ãé ããšããæ¬ ç¹ããããŸãã
ãããã£ãŠãåŠçå¹çãéèŠãããéãç§åŠèšç®ãæ°å€èšç®ã«ã¯Fortranãããããã¿ã€ãã³ã°ãå°èŠæš¡ããäžèŠæš¡ã®ã¿ã¹ã¯ã«ã¯Pythonãé©ããŠããŸãã
6.3 FortranãšJavaã®æ¯èŒ
FortranãšJavaãäºãã«ç°ãªãç¹æ§ãšåŒ·ã¿ãæã£ãŠããŸããFortranã¯åå©çšãšæ¡åŒµã容æãªã¢ãžã¥ã©ãŒãªèšèšããµããŒãããŠããŸãã
äžæ¹ãJavaã¯ãã©ãããã©ãŒã ã®ç§»æ€æ§ã«éèŠã眮ããŠèšèšãããŠããŸããJavaã®”Write Once, Run Anywhere”ã®å²åŠã«ãããJavaããã°ã©ã ã¯è²ã ãªã·ã¹ãã ã§åãããšãå¯èœã§ãã
ãããã£ãŠãããã©ãŒãã³ã¹ãšç²ŸåºŠãå¿ èŠãªç§åŠèšç®ã§ã¯Fortranããã¯ãã¹ãã©ãããã©ãŒã ã§ã®åäœãå¿ èŠãªã¢ããªã±ãŒã·ã§ã³éçºã§ã¯Javaãé©ããŠããŸãã
6.4 FortranãšMATLABã®æ¯èŒ
FortranãšMATLABã¯ãã©ã¡ããç§åŠèšç®ãšå·¥åŠåéã§å©çšãããŸãããçšéãšæ©èœã«ã¯å€§ããªéãããããŸããFortranã¯äžè¬çãªããã°ã©ãã³ã°ã«å¯ŸããŠãMATLABã¯è¡åæŒç®ãšã¢ã«ãŽãªãºã ã®éçºã«ç¹åããŠããŸãã
MATLABã®åŒ·ã¿ã®äžã€ã¯ãããžã¥ã¢ã«åæ©èœãšè±å¯ãªã©ã€ãã©ãªã§ãããããã«ããã¢ã«ãŽãªãºã ã®ãããã¿ã€ãã³ã°ãããŒã¿åæã容æã«ãªããŸãã
ãããã£ãŠãå®è¡å¹çãšå€§èŠæš¡ãªæ°å€èšç®ãæ±ããããå Žåã¯Fortranããã¢ã«ãŽãªãºã ã®éçºãããŒã¿ã¢ããªã·ã¹ãäž»ãªèª²é¡ã®å Žåã«ã¯MATLABãé©ããŠããŸãã