17. ÀÚ·á¿Í ºí·Ï ÀÚ·á (data and block data)

data ¹® (The data statement)

data ¹®Àº ÇÁ·Î±×·¥À» ÀÛ¼ºÇÒ ¶§ ¾Ë°í ÀÖ´Â ÀڷḦ ÀÔ·ÂÇÏ´Â ¹æ¹ý Áß ÇϳªÀÌ´Ù. assignment ¹®°ú ºñ½ÁÇÏ´Ù. »ç¿ë¹ýÀº
      data list-of-variables/ list-of-values/, ...
·Î ¿©±â¼­ ¼¼ °³ÀÇ Á¡Àº ÀÌ ÇüÅ°¡ ¹Ýº¹µÈ´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù. ´ÙÀ½Àº ¿¹ÀÌ´Ù.
      data m/10/, n/20/, x/2.5/, y/2.5/
¶Ç ÀÌ°ÍÀ» ´ÙÀ½°ú °°ÀÌ ³ªÅ¸³¾ ¼öµµ ÀÖ´Ù.
      data m,n/10,20/, x,y/2*2.5/
°°Àº °ÍÀ» assignment·Î ÇÒ ¼öµµ ÀÖ´Ù.
      m = 10
      n = 20
      x = 2.5
      y = 2.5
data ¹®Àº ´õ °£°áÇÏ°í µû¶ó¼­ º¸Åë ´õ Æí¸®ÇÏ´Ù. ƯÈ÷ °°Àº °ªÀ» ¹Ýº¹ÇÏ¿© »ç¿ëÇÒ ¶§ °£´ÜÈ÷ »ç¿ëÇÏ´Â ¹æ¹ý¿¡ ÁÖÀÇÇ϶ó.

data ¹®Àº ´Ü ÇÑ ¹ø¸¸ ÇÁ·Î±×·¥À» ¼öÇàÇϱâ Á÷Àü¿¡ ÀÐ¾î µéÀδÙ. ÀÌ·± ÀÌÀ¯·Î data ¹®Àº ÁÖ·Î main program¿¡¼­ »ç¿ëÇÏ°í subroutines¿¡¼­´Â »ç¿ëÇÏÁö ¾Ê´Â´Ù.

data ¹®Àº ¹è¿­(vectors, matrices)À» ÃʱâÈ­ÇÒ ¶§ »ç¿ëÇϱ⵵ ÇÑ´Ù. ¾Æ·¡´Â ÇÁ·Î±×·¥À» ½ÃÀÛÇÒ ¶§ matrix¸¦ ¸ðµÎ 0À¸·Î ÇÏ´Â ¹ýÀÌ´Ù.

      real A(10,20)
      data A/ 200 * 0.0/
¾î¶² compiler´Â ÀÚµ¿À¸·Î ÀÌ·±½ÄÀ¸·Î ¹è¿­À» ÃʱâÈ­Çϱ⵵ ÇÏÁö¸¸ ¸ðµç °ÍÀÌ ´Ù ±×·± °ÍÀº ¾Æ´Ï´Ù. µû¶ó¼­ ¹è¿­ÀÇ ¿ø¼Ò°¡ 0À̾î¾ß¸¸ ÇÑ´Ù¸é ´ÙÀ½ ¿¹¸¦ ´Ù¸£´Â °ÍÀÌ ÁÁ´Ù. ¹°·Ð 0ÀÌ ¾Æ´Ñ ´Ù¸¥ °ªÀ¸·Î ÃʱâÈ­ ÇÒ ¼öµµ ÀÖ´Ù. ¶Ç´Â °¢°¢ÀÇ ¿ø¼Ò¸¦ ÃʱâÈ­ÇÒ ¼öµµ ÀÖ´Ù.
      data A(1,1)/ 12.5/, A(2,1)/ -33.3/, A(2,2)/ 1.0/
¶Ç´Â ´ÙÀ½°ú °°ÀÌ ÀÛÀº ¹è¿­ÀÇ ¸ðµç ¿ø¼Ò¸¦ ³ª¿­ÇÒ ¼ö ÀÖ´Ù.
      integer v(5)
      real B(2,2)
      data v/10,20,30,40,50/, B/1.0,-3.7,4.3,0.0/
ÀÌÂ÷¿ø ¹è¿­Àº ´Ù¸¥ °æ¿ì¿Í ¸¶Âù°¡Áö·Î column ¿ì¼±¿¡ µû¶ó °ªÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù.

block data ¹®(The block data statement)

data ¹® common blockÀÇ º¯¼ö¿¡ ´ëÇÏ¿©´Â »ç¿ëÇÒ ¼ö ¾ø´Ù. ÀÌ·± ¸ñÀûÀ¸·Î´Â block data¶ó´Â Ưº°ÇÑ "subroutine"ÀÌ ÀÖ´Ù. ÀÌ°ÍÀº ½ÇÁ¦·Î´Â subroutineÀÌ ¾Æ´ÏÁö¸¸ º°°³ÀÇ ÇÁ·Î±×·¥ ´ÜÀ§·Î ³ªÅ¸³ª±â¿¡ subroutineó·³ º¸ÀδÙ. ´ÙÀ½Àº ±× ¿¹ÀÌ´Ù.
      block data
      integer nmax
      parameter (nmax=20)
      real v(nmax), alpha, beta
      common /vector/v,alpha,beta
      data v/20*100.0/, alpha/3.14/, beta/2.71/
      end
data ¹®Ã³·³, block dataµµ main programÀÌ ¼öÇàµÇ±â ½ÃÀÛÇÒ ¶§ ÇÑ ¹ø ¼öÇàµÈ´Ù. source code¿¡¼­ÀÇ block data "subroutine"ÀÇ À§Ä¡´Â (main programÀ̳ª subprogram ¾È¿¡ µé¾î ÀÖÁö ¾Ê±â¸¸ ÇÏ´Ù¸é) ¾î´À °÷ÀÌµç »ó°ü¾ø´Ù..


[Fortran Tutorial]
Ãæ³²´ëÇб³ ¹°¸®Çаú ¿À º´¼º