18. Fortran ÇÁ·Î±×·¥ Çü½Ä(Fortran programming style)
ÇÁ·Î±×·¥ Çü½ÄÀ¸·Î´Â ¿©·¯ °¡Áö ´Ù¸¥ ¹æ¹ýÀÌ ÀÖÁö¸¸ ¿©±â¼´Â »ó´çÈ÷ ¸¹Àº »ç¶÷µéÀÌ Ã¤ÅÃÇÏ´Â ÀϹÝÀûÀÎ ÁöħÀ» ¾Ë·ÁÁÖ°íÀÚ ÇÑ´Ù.
À̽ļº(Portability)
À̽ļº(´Ù¸¥ ÄÄÇ»ÅÍ ½Ã½ºÅÛ¿¡¼µµ »ç¿ë°¡´ÉÇÑ Á¤µµ)À» È®½ÅÇÏ·Á¸é Fortran 77 Ç¥Áظ¸À» »ç¿ëÇ϶ó. ÀÌ tutorial¿¡¼ Ç¥ÁØ Fortran 77ÀÌ ¾Æ´Ñ °ÍÀº ¼Ò¹®ÀÚ¸¦ »ç¿ëÇÑ °Í »ÓÀÌ´Ù.
ÇÁ·Î±×·¥ ±¸Á¶(Program structure)
Àüü ÇÁ·Î±×·¥ ±¸Á¶¸¦ ¸ðµâÈ(modular)Ç϶ó. °¢°¢ÀÇ subprogramÀº Àß Á¤ÀÇµÈ ÇÑ °¡Áö ÀÛ¾÷À» ÇÏ¿©¾ß ÇÑ´Ù. ¸¹Àº »ç¶÷µéÀÌ °¢°¢ÀÇ subprogramÀ» º°°³ÀÇ file·Î ¸¸µé±â ÁÁ¾Æ ÇÑ´Ù.
¼³¸í(Comments)
´ÙÀ½À» µÇÇ®ÀÌÇ϶ó : ±ÔÄ¢¿¡ ¸Â´Â code¸¦ ÀÛ¼ºÇ϶ó ±×¸®°í source¿¡ ¹«½¼ ÀÏÀÏ ÇÏ´ÂÁö ¼³¸íÇÏ´Â ¸»À» ´õ Çضó! °¢°¢ÀÇ subprogram¿¡ ÀÔÃâ·Â º¯¼ö¿Í ÇÁ·Î±×·¥ÀÌ ÇÏ´Â ÀÏÀ» ¼³¸íÇÏ´Â ¸Ó¸´¸»À» ´õÇÏ´Â °ÍÀº ¸Å¿ì Áß¿äÇÏ´Ù.
µé¿©¾²±â(Indentation)
loop¿Í if ±¸Á¶´Â ÀÌ tutorial¿¡¼ ó·³ Ç×»ó ¾Ë¸Â°Ô µé¿©½á¶ó.
º¯¼ö(Variables)
Ç×»ó ¸ðµç º¯¼ö¸¦ ¼±¾ðÇ϶ó. ¹¬½ÃÀû type ¼±¾ðÀ» ÇÏÁö¸¶¶ó! º´©À̸§À» ÃÖ´ë 6ÀÚ·Î Çϰųª Àû¾îµµ óÀ½ 6ÀÚ´Â ¼·Î ´Ù¸¥ °ÍÀ» ȹÀÎÇ϶ó.
ºÎÇÁ·Î±×·¥(Subprograms)
ÇÔ¼ö¿¡¼ ºÎÀÛ¿ë "side effects"ÀÌ ¹ß»ýÇÏÁö ¾Êµµ·Ï Ç϶ó. Áï input parameterÀÌ °ªÀ» ¹Ù²ÙÁö ¸»¶ó. ±×·³ °æ¿ì¿¡´Â subroutineÀ» »ç¿ëÇ϶ó.
¼±¾ð¹®¿¡¼ parameters, common blocks, ±×¸®°í local º¯¼ö¸¦ ºÐ¸®Ç϶ó.
common blockÀÇ »ç¿ëÀ» ÃÖ¼Ò·Î Ç϶ó.
Goto
Minimize the use of goto »ç¿ëÀ» ÃÖ¼Ò·Î ÁÙ¿©¶ó. ºÒÇàÇÏ°Ôµµ whileÀÌ Fortran Ç¥ÁØÀÌ ¾Æ´Ï±â¿¡ ¾î¶² loop¿¡¼´Â
goto¸¦ »ç¿ëÇÒ ¼ö ¹Û¿¡ ¾ø´Ù.
¹è¿ (Arrays)
¸¹Àº °æ¿ì ¸ðµç Å« ¹è¿Àº ÁÖ ÇÁ·Î±×·¥¿¡¼ ¼±¾ð¶ó°í ¿©·¯ subroutine¿¡ argument·Î ³Ñ°Ü ÁÖ´Â °ÍÀÌ ÃÖ¼±ÀÌ´Ù. ÀÌ·± ¹æ¹ýÀ¸·Î ¸ðµç ±â¾ï °ø°£ ¹èÁ¤ÀÌ ÇÑ °÷¿¡¼ µÇµµ·Ï ÇÑ´Ù. leading Â÷¿øÀ» ³Ñ°ÜÁÖ´Â °ÍÀ» ÀØÁö ¸¶¶ó. ¾µµ¥¾øÀÌ matrixÀÇ ¸ð¾çÀ» ¹Ù²ÙÁö ¸¶¶ó.
È¿À²ÀÇ °üÁ¡(Efficiency concerns)
ÀÌÂ÷¿ø ¹è¿¿¡ °üÇÑ ÀÌÁß loop°¡ ÀÖ´Ù¸é º¸Åë ù¹ø° (row) index¸¦ °¡Àå ¾È ÂÊ loop¿¡¼ »ç¿ëÇÏ´Â °ÍÀÌ ÃÖ¼±ÀÌ´Ù. ´Ï°ÍÀÌ Fortran¿¡¼ÀÇ ÀúÀå ¹æ½ÄÀ̱⠶§¹®ÀÌ´Ù.
¿©·¯°¡Áö Á¶°ÇÀÇ if-then-elseif ¹®À» »ç¿ëÇÒ ¶§ °¡Àå È®·üÀÌ ³ôÀº °æ¿ì¸¦ óÀ½¿¡ µÐ´Ù.
[Fortran Tutorial]
Ãæ³²´ëÇб³ ¹°¸®Çаú ¿À º´¼º