Ïðîãðàììà íà ÿçûêå Ôîðòðàí-Convex, ïîëó÷åííàÿ èç ïðîãðàììû Summa â ðåçóëüòàòå ðàáîòû Íîðìà òðàíñëÿòîðà:
Ôàéë summa.for
C $DIR ÈÍÔÎÐÌÀÖÈß ÊÎÍÔÈÃÓÐÀÒÎÐÀ
C $DIR ÃËÀÂÍÛÉ ÐÀÇÄÅË
C $DIR ÌÎÄÓËÜ SUMMA
C $DIR proc:
C $DIR SUMV
C $DIR send:
C $DIR ÊÎÍÅÖ ÈÍÔÎÐÌÀÖÈÈ ÊÎÍÔÈÃÓÐÀÒÎÐÀ
PROGRAM SUMMA
C +++++ ÏÐÎÃÐÀÌÌÀ SUMMA ÄËß ÃËÀÂÍÎÃÎ ÏÝ
DOUBLE PRECISION V(30,40),Vsum(30),Contr(30)
DOUBLE PRECISION RF0,RF1
C +++ OÏEPATOP 5 +++
DO 2 i=1,30
DO 2 j=1,40
V(i,j)=j+(i-1)*40
2 CONTINUE
C +++ OÏEPATOP 6 +++
CALL SUMV(V,Vsum)
C +++ OÏEPATOP 7 +++
DO 4 i=1,30
RF1 = 0.0
DO 3 j=1,40
RF1 = RF1+(V(i,j))
3 CONTINUE
Contr(i)=RF1
4 CONTINUE
C +++ OÏEPATOP 8 +++
OPEN(UNIT=8,FILE='summa.out')
WRITE(8,40001)
WRITE(8,40002) (Vsum(i),i=1,30)
C +++ OÏEPATOP 9 +++
WRITE(8,40003)
WRITE(8,40004) (Contr(i),i=1,30)
40001 FORMAT (1X,'Vsum=')
40002 FORMAT ((7(1X,4D20.10/),1X,2D20.10))
40003 FORMAT (1X,'Contr=')
40004 FORMAT ((7(1X,4D20.10/),1X,2D20.10))
CLOSE(8)
END
C $DIR ÈÍÔÎÐÌÀÖÈß ÊÎÍÔÈÃÓÐÀÒÎÐÀ
C $DIR ÌÎÄÓËÜ SUMV
C $DIR proc:
C $DIR send:
C $DIR ÊÎÍÅÖ ÈÍÔÎÐÌÀÖÈÈ ÊÎÍÔÈÃÓÐÀÒÎÐÀ
SUBROUTINE SUMV(V,Vsum)
C +++++ ÍÅÐÀÑÏÐÅÄÅËÅÍÍÀß ÏÐÎÃÐÀÌÌÀ SUMV
DOUBLE PRECISION V(30,40),Vsum(30)
DOUBLE PRECISION RF0,RF1
C +++ OÏEPATOP 5 +++
DO 3 i=1,30
RF1 = 0.0
DO 2 j=1,40
RF1 = RF1+(V(i,j))
2 CONTINUE
Vsum(i)=RF1
3 CONTINUE
RETURN
END