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]
Ãæ³²´ëÇб³ ¹°¸®Çаú ¿À º´¼º