3.可調(diào)數(shù)組
在主程序中定義數(shù)組元素時(shí),定義說明符中各維下標(biāo)的上下限必須為整常數(shù),不能是 變量或算術(shù)表達(dá)式。但在子程序中定義數(shù)組時(shí),允許用變量來定義各維下標(biāo)的上下限。子 程序中用變量來定義各維下標(biāo)上下限的數(shù)組稱為可調(diào)數(shù)組。但使用可調(diào)數(shù)組必須遵循以下 幾個(gè)原則。
(1)可調(diào)數(shù)組名必須是形參數(shù)組名。
(2)說明可調(diào)數(shù)組各維下標(biāo)上下限的表達(dá)式中只能出現(xiàn)整型變量,且這種變量必須是 形參或出現(xiàn)在COMMON 語句中。但在某些FORTRAN 77子集中,定義可調(diào)數(shù)組各維下 標(biāo)上下只能是整型變量,而不能是任何算術(shù)表達(dá)式。
(3)可調(diào)數(shù)組的大小不得超過對(duì)應(yīng)實(shí)參數(shù)組的大小。
4.字符型變量的虛實(shí)結(jié)合
(1)當(dāng)子程序中的形參為字符型變量時(shí),對(duì)應(yīng)的實(shí)參必須是字符型變量、字符常數(shù)、 字符型數(shù)組元素或字符表達(dá)式。字符型實(shí)參必須用CHARACTER 語句加以說明。
(2)如果字符型形參的長(zhǎng)度小于對(duì)應(yīng)的實(shí)參長(zhǎng)度,則從實(shí)參中最左邊的字符開始與形 參結(jié)合,而實(shí)參中右邊多余的字符被截去。例如:
CHARACTER A*5
A=ABCDE'
CALL SB (A)
END
SUBROUTINE SB (X)
CHARACTER X*3
WRITE (* , *) X
END
程序執(zhí)行后的輸出結(jié)果為: ABC。
(3)在FORTRAN 77中,對(duì)字符型形參的長(zhǎng)度還可以用"*"號(hào)來說明,此時(shí),形 參字符變量自動(dòng)與對(duì)應(yīng)的實(shí)參取相同的長(zhǎng)度。例如在上面的子程序SB中,如果將CHARACTER X*3改變?yōu)镃HARACTER X* (*) ,則執(zhí)行后,輸出的結(jié)果為: ABCDE。
(4)當(dāng)子程序中形參為字符型數(shù)組時(shí),如果形參字符型數(shù)組元素的長(zhǎng)度與對(duì)應(yīng)實(shí)參字符型數(shù)組元素長(zhǎng)度一致,則其虛實(shí)結(jié)合的情況與一般的數(shù)組虛實(shí)結(jié)合的情況相同。如果形參與實(shí)參的字符型數(shù)組元素長(zhǎng)度不同,則按字符依次對(duì)應(yīng)。例如,有主程序與子程序 如下:
CHARACTER A (5) *3
DATA A(' ABC', 'DEF', 'GHI', 'JKL', 'MNO' )
CALL SB (A)
END
SUBROUTINE SB (D)
CHARACTER D (4) *2
END
則形參數(shù)組D中元素的值為:
D (1):' AB'
D (2): 'CD'
D (3): 'EF'
D (4): 'GH'
(5)過程名的虛實(shí)結(jié)合 FORTRAN允許子程序中的形參為過程名,此時(shí),調(diào)用程序中的實(shí)參必須是過程名.如果實(shí)參是外部過程名(如函數(shù)子程序名、子程序名) ,則該外部過程名在調(diào)用程序 中必須用EXTERNAL 語句說明。
如果實(shí)參是內(nèi)部過程名(如內(nèi)部函數(shù)名) ,則該內(nèi)部過程名在調(diào)用中必須用INTRINSIC語句說明。
在主程序中定義數(shù)組元素時(shí),定義說明符中各維下標(biāo)的上下限必須為整常數(shù),不能是 變量或算術(shù)表達(dá)式。但在子程序中定義數(shù)組時(shí),允許用變量來定義各維下標(biāo)的上下限。子 程序中用變量來定義各維下標(biāo)上下限的數(shù)組稱為可調(diào)數(shù)組。但使用可調(diào)數(shù)組必須遵循以下 幾個(gè)原則。
(1)可調(diào)數(shù)組名必須是形參數(shù)組名。
(2)說明可調(diào)數(shù)組各維下標(biāo)上下限的表達(dá)式中只能出現(xiàn)整型變量,且這種變量必須是 形參或出現(xiàn)在COMMON 語句中。但在某些FORTRAN 77子集中,定義可調(diào)數(shù)組各維下 標(biāo)上下只能是整型變量,而不能是任何算術(shù)表達(dá)式。
(3)可調(diào)數(shù)組的大小不得超過對(duì)應(yīng)實(shí)參數(shù)組的大小。
4.字符型變量的虛實(shí)結(jié)合
(1)當(dāng)子程序中的形參為字符型變量時(shí),對(duì)應(yīng)的實(shí)參必須是字符型變量、字符常數(shù)、 字符型數(shù)組元素或字符表達(dá)式。字符型實(shí)參必須用CHARACTER 語句加以說明。
(2)如果字符型形參的長(zhǎng)度小于對(duì)應(yīng)的實(shí)參長(zhǎng)度,則從實(shí)參中最左邊的字符開始與形 參結(jié)合,而實(shí)參中右邊多余的字符被截去。例如:
CHARACTER A*5
A=ABCDE'
CALL SB (A)
END
SUBROUTINE SB (X)
CHARACTER X*3
WRITE (* , *) X
END
程序執(zhí)行后的輸出結(jié)果為: ABC。
(3)在FORTRAN 77中,對(duì)字符型形參的長(zhǎng)度還可以用"*"號(hào)來說明,此時(shí),形 參字符變量自動(dòng)與對(duì)應(yīng)的實(shí)參取相同的長(zhǎng)度。例如在上面的子程序SB中,如果將CHARACTER X*3改變?yōu)镃HARACTER X* (*) ,則執(zhí)行后,輸出的結(jié)果為: ABCDE。
(4)當(dāng)子程序中形參為字符型數(shù)組時(shí),如果形參字符型數(shù)組元素的長(zhǎng)度與對(duì)應(yīng)實(shí)參字符型數(shù)組元素長(zhǎng)度一致,則其虛實(shí)結(jié)合的情況與一般的數(shù)組虛實(shí)結(jié)合的情況相同。如果形參與實(shí)參的字符型數(shù)組元素長(zhǎng)度不同,則按字符依次對(duì)應(yīng)。例如,有主程序與子程序 如下:
CHARACTER A (5) *3
DATA A(' ABC', 'DEF', 'GHI', 'JKL', 'MNO' )
CALL SB (A)
END
SUBROUTINE SB (D)
CHARACTER D (4) *2
END
則形參數(shù)組D中元素的值為:
D (1):' AB'
D (2): 'CD'
D (3): 'EF'
D (4): 'GH'
(5)過程名的虛實(shí)結(jié)合 FORTRAN允許子程序中的形參為過程名,此時(shí),調(diào)用程序中的實(shí)參必須是過程名.如果實(shí)參是外部過程名(如函數(shù)子程序名、子程序名) ,則該外部過程名在調(diào)用程序 中必須用EXTERNAL 語句說明。
如果實(shí)參是內(nèi)部過程名(如內(nèi)部函數(shù)名) ,則該內(nèi)部過程名在調(diào)用中必須用INTRINSIC語句說明。