Поддерживать
www.wikidata.ru-ru.nina.az
Ne sleduet putat s Fortom drugim yazykom programmirovaniya Fortra n angl Fortran pervyj yazyk programmirovaniya vysokogo urovnya poluchivshij prakticheskoe primenenie imeyushij translyator i ispytavshij dalnejshee razvitie Sozdan v period s 1954 po 1957 god gruppoj programmistov pod rukovodstvom Dzhona Bekusa v korporacii IBM Nazvanie Fortran yavlyaetsya sokrasheniem ot FORmula TRANslator formulnyj translyator Fortran shiroko ispolzuetsya v pervuyu ochered dlya nauchnyh i inzhenernyh vychislenij Odno iz preimushestv sovremennogo Fortrana bolshoe kolichestvo napisannyh na nyom programm i bibliotek podprogramm FortranSemantika imperativnyj parallelnyjKlass yazyka procedurnyj modulnyj c elementami obektno orientirovannogo programmirovaniyaTip ispolneniya kompiliruemyjPoyavilsya v 1957Avtor Dzhon Bekus IBMRazrabotchik IBM i Dzhon BekusRasshirenie fajlov for f f90 f95 ftnVypusk Fortran 2023 ISO IEC 1539 1 2023 17 noyabrya 2023 Sistema tipov strogaya staticheskayaOsnovnye realizacii GFortran Open Watcom Sun Studio Intel FortranDialekty High Performance FortranIspytal vliyanie Speedcoding vd Povliyal na ALGOL 68 Bejsik PL ILicenziya licenziya MITSajt fortran lang org angl Mediafajly na Vikisklade Imeetsya bolshoe kolichestvo napisannyh na Fortrane v bolshej chasti na staryh versiyah yazyka razlichnyh matematicheskih bibliotek dlya matrichnoj algebry i resheniya sistem linejnyh uravnenij biblioteki dlya resheniya differencialnyh uravnenij integralnyh uravnenij i ih sistem approksimacii funkcij specialnyh funkcij bystryh preobrazovanij Fure matematicheskoj statistiki i drugih matematicheskih disciplin Eti biblioteki postavlyayutsya kak pravilo s kompilyatorom Ryad takih paketov sozdavalsya na protyazhenii desyatiletij i populyaren v nauchnoj srede po sej den naprimer Mezhdunarodnaya matematicheskaya biblioteka podprogramm IMSL Bolshinstvo takih bibliotek yavlyaetsya fakticheski dostoyaniem chelovechestva oni dostupny v ishodnyh kodah horosho dokumentirovany otlazheny i vesma effektivny Sovremennyj Fortran Fortran 95 i Fortran 2003 priobryol cherty neobhodimye dlya effektivnogo programmirovaniya dlya novyh vychislitelnyh arhitektur pozvolyaet primenyat sovremennye tehnologii programmirovaniya v chastnosti obobshyonnoe i modulnoe programmirovanie OOP sohranyaya pri etom preemstvennost s bolee rannimi versiyami Odna iz glavnyh koncepcij razvitiya sovremennogo Fortrana sredstva podderzhki parallelnosti i vektornye operacii Evolyuciya standartov yazykaFortran zhyostko standartizirovannyj yazyk poetomu on legko perenositsya na razlichnye platformy Novye standarty yazyka v znachitelnoj mere sohranyayut preemstvennost s bolee starymi chto pozvolyaet ispolzovat kody ranee napisannyh programm i modificirovat ih Pri etom po mere razvitiya yazyka zaranee obyavlyayutsya ustarevshie konstrukcii kotorye v budushem vozmozhno budut udaleny FORTRAN 66 1966 Standart ANSI X3 9 1966 opredelil yazyk FORTRAN osnovannyj na FORTRAN IV firmy IBM kotoryj sluzhil standartom de fakto Vposledstvii na nego stali ssylatsya kak na FORTRAN 66 hotya mnogie prodolzhali nazyvat ego FORTRAN IV yazyk na kotorom standart byl v znachitelnoj stepeni osnovan Programma na FORTRAN 77 s vydachej kompilyatoraFORTRAN 77 1978 ANSI X3 9 1978 ISO 1539 1980 vvedeno mnozhestvo uluchshenij Vvedeny operatory otkrytiya i zakrytiya fajla OPEN CLOSE i vyvoda na standartnoe ustrojstvo PRINT Dobavleny strokovyj tip dannyh i funkcii dlya ego obrabotki Vvedyon blochnyj operator IF i konstrukciya IF THEN ELSE IF THEN END IF a takzhe operator vklyucheniya fragmenta programmy INCLUDE Vvedena vozmozhnost raboty s fajlami pryamogo dostupa Uvelichena maksimalnaya razmernost massiva s 3 do 7 Snyaty ogranicheniya na indeksy massiva Usovershenstvovany i rasshireny vozmozhnosti raboty s procedurami Vvedeno ponyatie vnutrennego fajla kakovymi yavlyayutsya massivy chislovye i strokovye peremennye Vnutrennie fajly pozvolyayut v chastnosti osushestvlyat preobrazovanie chislo stroka i stroka chislo standartnym operatorami chteniya i zapisi READ i WRITE Fortran 90 1991 ISO IEC 1539 1991 ANSI INCITS 198 1992 znachitelno pererabotan standart yazyka vklyuchaya smenu nazvaniya FORTRAN na Fortran Vvedyon svobodnyj format napisaniya koda Poyavilis dopolnitelnye opisaniya IMPLICIT NONE TYPE ALLOCATABLE POINTER TARGET NAMELIST Vvedeny upravlyayushie operatory i konstrukcii Dobavleny DO END DO vmesto zaversheniya cikla metkoj DO WHILE operator peredachi upravleniya na nachalo cikla CYCLE konstrukciya vybora SELECT CASE dlya zameny gromozdkih konstrukcij IF i operatorov GOTO a takzhe zaklyuchitelnyj operator programmnoj edinicy modulnoj ili vnutrennej procedury END Vvedyon instrumentarij ukazatelej i funkcii dlya raboty s operativnoj pamyatyu po analogii s yazykom S Vvedeny operatory raboty s dinamicheskoj pamyatyu ALLOCATE DEALLOCATE NULLIFY Dobavleny programmnye komponenty MODULE PRIVATE PUBLIC CONTAINS INTERFACE USE INTENT Vvedeno maskirovanie prisvaivaniya massivov prisvaivanie pri vypolnenii nalozhennogo na elementy massiva logicheskogo usloviya bez ispolzovaniya operatorov usloviya a takzhe rabota s secheniyami massivov Vvedyon operator i konstrukciya WHERE dlya chastichnoj zameny ciklov pravaya chast operatora prisvaivaniya ne izmenyaetsya Maskirovanie prisvaivaniya rasprostranyaetsya prakticheski na vse operatory konstrukcii i funkcii operiruyushie s massivami Standartnye operacii prisvaivaniya slozheniya vychitaniya a takzhe deleniya i umnozheniya na chislo rasprostraneny na massivy i ih sekcii opredelyaemye secheniyami V etom sluchae osushestvlyaetsya poelementnoe prisvaivanie Poyavilis novye vstroennye funkcii v pervuyu ochered dlya raboty s massivami Funkcii dlya vychislenij v massivah ALL logicheskoe proizvedenie i MASK logicheskoe slozhenie COUNT chislo istinnyh elementov PRODUCT proizvedenie elementov massiva SUM slozhenie elementov massiva DOT PRODUCT skalyarnoe proizvedenie MATMUL umnozhenie matric Dobavilis spravochnye funkcii a takzhe funkcii pereformirovaniya i svyortki massivov V yazyke poyavilis elementy OOP Vvedeny proizvodnye tipy dannyh Otdelno obyavlen spisok ustarevshih chert yazyka prednaznachennyh dlya udaleniya v budushem Dobavleny dopolnitelnye funkcii dlya raboty so strokovymi dannymi v chastnosti funkcii TRIM udalenie zavershayushih probelov i REPEAT kratnoe kopirovanie stroki i funkcii vyravnivaniya po levoj i pravoj granicam Fortran 95 1997 ISO IEC 1539 1 1997 korrekciya predydushego standarta Vvedyon operator i konstrukciya FORALL pozvolyayushie bolee gibko chem operator i konstrukciya WHERE prisvaivat massivy i zamenyat gromozdkie cikly FORALL pozvolyaet zamenit lyuboe prisvaivanie sechenij ili operator i konstrukciyu WHERE v chastnosti obespechivaet dostup k diagonali matricy Dannyj operator schitaetsya perspektivnym v parallelnyh vychisleniyah sposobstvuya bolee effektivnomu chem cikly osushestvleniyu rasparallelivaniya Fortran 2003 2004 Prinyat kak ISO IEC 1539 1 2004 Dalnejshee razvitie podderzhki OOP v yazyke Vzaimodejstvie s operacionnoj sistemoj Dobavleny takzhe sleduyushie vozmozhnosti Asinhronnyj vvod vyvod dannyh Sredstva vzaimodejstviya s yazykom C Usovershenstvovanie dinamicheskogo razmesheniya dannyh Fortran 2008 2010 ISO IEC 1539 1 2010 obsheprinyatoe neformalnoe nazvanie Fortran 2008 Standartom predpolagaetsya podderzhka sredstvami yazyka parallelnyh vychislenij Co Arrays Fortran Takzhe predpolagaetsya uvelichit maksimalnuyu razmernost massivov do 15 dobavit vstroennye specialnye matematicheskie funkcii i dr Fortran 2018 Poslednyaya versiya yazyka Fortran 2018 ranee izvestnaya kak Fortran 2015 byla vypushena 28 noyabrya 2018 goda Fortran 2018 ISO IEC 1539 1 2018 vklyuchaet v sebya ISO IEC TS 29113 2012 Dalnejshaya sovmestimost s C ISO IEC TS 18508 2015 Dopolnitelnye parallelnye funkcii v Fortran Takzhe vvedeny podderzhka ISO IEC IEEE 60559 2011 shestnadcaterichnyj vvod vyvod chisel s plavayushej tochkoj usovershenstvovaniya IMPLICIT NONE i drugie izmeneniya Vozmozhnosti i harakternye osobennosti yazykaFortran imeet bolshoj nabor vstroennyh matematicheskih funkcij podderzhivaet rabotu s celymi veshestvennymi i kompleksnymi chislami dvojnoj i povyshennoj tochnosti pri binarnyh operaciyah ispolzuetsya real 10 imeet bogatyj instrumentarij raboty s massivami i vneshnimi fajlami Sovremennyj Fortran 2003 i vyshe imeet polnocennyj instrumentarij dlya raboty s simvolnymi dannymi Iznachalno vyrazitelnye sredstva yazyka byli ne ochen veliki poskolku Fortran byl pervym realizovannym yazykom vysokogo urovnya V dalnejshem v Fortran byli dobavleny mnogie leksicheskie konstrukcii harakternye dlya strukturnogo modulnogo obobshyonnogo i obektno orientirovannogo programmirovaniya Format zapisi koda Perfokarta s razmetkoj kolonok dlya Fortrana rannih versij Struktura programm iznachalno byla orientirovana na vvod s perfokart i imela ryad udobnyh imenno dlya etogo sluchaya svojstv Tak s 1 j po 5 yu kolonku raspolagalas oblast metok 6 ya sluzhila dlya markirovki teksta kak prodolzheniya predydushej stroki lyubym simvolom krome probela i 0 a s 7 j po 72 yu raspolagalsya sobstvenno tekst operatora ili kommentariya Kolonki s 73 j po 80 yu mogli sluzhit dlya numeracii kart chtoby vosstanovit sluchajno rassypavshuyusya kolodu ili dlya kratkogo kommentariya translyatorom oni ignorirovalis Esli tekst operatora ne vpisyvalsya v otvedyonnoe prostranstvo s 7 j po 72 yu kolonku v 6 j kolonke sleduyushej stroki stavilsya priznak prodolzheniya i zatem operator prodolzhalsya na nej Raspolozhit dva ili bolee operatora v odnoj stroke karte bylo nelzya Kogda perfokarty ushli v istoriyu eti dostoinstva prevratilis v seryoznye neudobstva Imenno poetomu k standartu Fortrana nachinaya s Fortran 90 s sohraneniem fiksirovannogo formata ishodnogo teksta byl dobavlen svobodnyj format kotoryj ne reglamentiruet pozicii stroki i pozvolyaet zapisyvat bolee odnogo operatora na stroku Vvedenie svobodnogo formata i sovremennyh sposobov strukturnogo programmirovaniya pozvolilo sozdavat kod chitaemost i yasnost kotorogo ne ustupaet kodu sozdannomu pri pomoshi drugih sovremennyh yazykov programmirovaniya takih kak Paskal C ili Java Sovremennye sredy razrabotki pozvolyayut kombinirovat formaty naprimer rasshiryat dlinu stroki do svobodnogo formata obychno 132 simvola pozvolyayut zapisyvat neskolko operatorov v stroke no pri etom pozvolyayut takzhe sohranyat otstup sleva delat levoe pole harakternyj dlya starogo fiksirovannogo formata ostavlyaya tem samym vydelennuyu kolonku dlya metok oshibok i formatov a takzhe kolonku prodolzheniya stroki Svoego roda vizitnoj kartochkoj starogo Fortrana yavlyaetsya ogromnoe kolichestvo metok kotorye ispolzovalis v operatorah bezuslovnogo perehoda a href wiki GOTO class mw redirect title GOTO GOTO a operatorah ciklov v uslovnyh operatorah i v operatorah opisaniya formatnogo vvoda vyvoda FORMAT Bolshoe kolichestvo metok i operatorov GOTO chasto delalo programmy na Fortrane trudnymi dlya ponimaniya Imenno etot negativnyj opyt stal prichinoj po kotoroj v ryade sovremennyh yazykov programmirovaniya naprimer v yazyke Java metki i svyazannye s nimi operatory bezuslovnogo perehoda silno vidoizmeneny Odnako sovremennyj Fortran v osnovnom nachinaya s versii Fortran 90 izbavlen ot izbytka metok za schyot vvedeniya takih operatorov kak DO END DO DO WHILE SELECT CASE konstrukcii IF THEN ELSEIF THEN ELSE END IF i dr Bolee togo v sovremennyh standartah yazyka ostavlen lish klassicheskij operator GOTO primenyaemyj vo mnogih yazykah i ponyne Vychislyaemyj operator GOTO a takzhe konstrukciya ENTRY mnozhestvennogo vhoda v procedury byli isklyucheny iz standarta hotya kak pravilo prodolzhayut podderzhivatsya kompilyatorami Hello World Fiksirovannyj format simvolami vydeleny probely v poziciyah stroki s 1 po 6 PRINT Hello World END Svobodnyj format print Hello World end Zamechaniya Operator nachala glavnoj programmy PROGRAM ne yavlyaetsya obyazatelnym Strogo govorya edinstvennyj obyazatelnyj operator Fortran programmy operator END Vybor propisnyh ili strochnyh bukv dlya napisaniya operatorov programmy proizvolen S tochki zreniya sovremennyh standartov yazyka Fortran mnozhestvo propisnyh bukv i mnozhestvo strochnyh bukv sovpadayut Tipy dannyh Fortran podderzhivaet 5 osnovnyh elementarnyh vstroennyh tipov dannyh dejstvitelnyj REAL kompleksnyj COMPLEX celyj INTEGER so znakom ili bez logicheskij LOGICAL i simvolnyj CHARACTER Krome togo vozmozhno sozdavat proizvodnye tipy dannyh s pomoshyu klyuchevogo slova TYPE S samogo nachala sozdaniya yazyka sushestvovali 4 tipa dannyh dejstvitelnyj kompleksnyj celyj i logicheskij Sushestvuet ponyatie raznovidnosti tipa dannyh ili parametry tipa Eto pozvolyaet parametrizovat veshestvennye i kompleksnye dannye to est ukazyvat tochnost i diapazon desyatichnogo poryadka i drugie dannye povyshaya mobilnost prilozhenij Dlya vseh chislovyh dannyh opredeleny obychnye arifmeticheskie operacii i prisvaivaniya sushestvuyut vstroennye funkcii Vstroennaya funkciya Log i x i v kachestve argumenta i x i mozhet imet tolko dejstvitelnoe ili kompleksnoe chislo ne celoe Kak pravilo dlya dejstvitelnyh chisel odinarnoj tochnosti otvoditsya 4 bajta REAL 4 ili parametr raznovidnosti tipa KIND 4 dvojnoj 8 bajt Dlya kompleksnyh chisel chislo bajt udvaivaetsya Celye chisla mogut zanimat ot 1 do 4 bajt Sovremennye kompilyatory pozvolyayut programmistu operirovat chislami i uchetveryonnoj tochnosti V arifmeticheskih operaciyah izmenenie tipa proizvoditsya po umolchaniyu ot celogo v dejstvitelnoe i dalee kompleksnoe chislo libo primeneniem specialnoj vstroennoj chislovoj funkcii Tak ekvivalentny sleduyushie vyrazheniya i celoe Log i i i 1 i i i Log real i i i Strokovye simvolnye dannye zadayutsya s ukazaniem dliny v skobkah libo posle atributa tipa libo posle imeni stroki Dlya zadaniya stroki v tele programmy ispolzuyutsya odinarnye ili dvojnye kavychki Tak ekvivalentny zapisi A It is hot ili A It is hot Eto udobno v teh sluchayah kogda v samoj stroke prisutstvuyut kavychki B It isn t hot Dlya strok sushestvuet vstroennaya operaciya konkatenacii slozheniya strok Sushestvuet 17 specializirovannyh vstroennyh funkcij dlya simvolnyh dannyh pomimo universalnyh obrabatyvayushih vse tipy dannyh Metki eto celye chisla s chislom cifr ne bolee 5 simvoly ne dopuskayutsya Metki ispolzuyutsya v operatorah GO TO operatorah chteniya zapisi i formatirovaniya a takzhe pri obrabotke oshibok i isklyuchenij Pomimo metok v Fortrane imeetsya vozmozhnost imenovat upravlyayushie konstrukcii cikly logicheskie usloviya konstrukcii FORALL END FORALL WHERE END WHERE SELECT CASE END SELECT TYPE END TYPE i dr prichyom imya konstrukcii mozhet soderzhat lyubye dopustimye v imenah peremennyh simvoly Vstroennye funkcii dlya simvolnyh dannyh Dlya preobrazovaniya chislo simvol CHAR i i ACHAR i Preobrazuyut celoe v sootvetstvuyushij emu simvol operacionnoj sistemy ili simvol tablicy ASCII Dlya preobrazovaniya simvol chislo ICHAR i i IACHAR i Osushestvlyayut obratnye preobrazovaniya Funkcii sravneniya strok LGE A B LGT A B LLE A B i LLT A B Rezultat funkcij istina esli dliny strok L A i L B vyrazhennye v simvolah ASCII udovletvoryayut sleduyushim neravenstvam sootvetstvenno L A displaystyle geqslant L B L A gt displaystyle gt L B L A displaystyle leqslant L B i L A lt displaystyle lt L B Funkcii dliny LEN A i LEN TRIM A Pervaya vozvrashaet dlinu stroki A kolichestvo simvolov vtoraya vozvrashaet dlinu stroki bez zavershayushih probelov esli oni imeyutsya Funkcii preobrazovaniya TRIM A ADJUSTL A i ADJUSTR A REPEAT A N Funkciya TRIM A vozvrashaet stroku A bez zavershayushih probelov Funkcii ADJUSTL A i ADJUSTR A vyravnivayut stroku udalyayut probely sleva i sprava sootvetstvenno Funkciya REPEAT A N vozvrashaet N kopij stroki A Funkcii poiska v stroke SCAN A B i back i INDEX A B i back i VERIFY A B i back i Fakultativnyj parametr back opredelyaet napravlenie poiska po umolchaniyu sleva dlya i back false i napravo dlya i back true i Funkciya SCAN opredelyaet nomer pozicii v stroke A sleva ili sprava pervogo najdennogo simvola iz spiska stroki V Esli rezultat otricatelnyj to funkciya vozvratit celochislennyj 0 Funkciya INDEX opredelyaet nomer pozicii s kotoroj vpervye nachinaetsya polnoe vhozhdenie stroki V v stroku A Prichyom poisk mozhet vestis kak sleva tak i sprava no nomer pozicii ischislyaetsya vsegda sleva ot nachala stroki Pri neudachnom poiske funkciya vozvratit 0 Funkciya VERIFY obratna funkcii INDEX Tak VERIFY vozvrashaet nomer pozicii takogo simvola stroki A kotorogo net v stroke maske V Esli zhe vse razlichnye simvoly stroki A prisutstvuyut v stroke maske V to funkciya vernyot 0 Vse eti funkcii yavlyayutsya elementnymi i ih argumentom mozhet byt massiv simvolov ili celyh chisel Rezultatom budet soglasovannyj chislennyj simvolnyj ili logicheskij massiv Standarty Fortrana nachinaya s versii 2003 predusmatrivayut vozmozhnost raboty s simvolami Yunikoda Pomimo ukazannyh vozmozhnostej Fortran pozvolyaet obrabatyvat simvolnye dannye sredstvami svoego vstroennogo matrichnogo vektornogo analiza chto sushestvenno povyshaet gibkost obrabotki simvolnyh dannyh V Fortrane dlya sovmestimosti s programmami napisannymi na yazyke Si sushestvuet ponyatie Si stroki kotoraya zadayotsya dobavleniem simvola s posle kavychki A Eto Si stroka s Nulevaya stroka budet zadana tak A 0 c Podprogrammy procedury i funkcii Podprogrammy v Fortrane sushestvovali s samogo pervogo standarta i ponyne yavlyayutsya odnim iz glavnyh instrumentov programmirovaniya V Fortrane vyzov podprogramm funkcij i peredacha ih parametrov proishodyat isklyuchitelno po ssylke a ne po znacheniyu Poetomu podprogramma mozhet izmenit peredannyj ej argument v glavnoj programme esli specialnym obrazom eto ne predotvratit Takoj mehanizm pozvolyaet sdelat estestvennoj notaciyu pri zapisi matematicheskih formul i sohranit pri etom vysokoe bystrodejstvie pri rabote s bolshimi massivami dannyh Podprogrammy Fortrana mogut soderzhat v spiske parametrov nazyvaemyh formalnymi parametrami i neobyazatelnye opcionalnye parametry a mogut voobshe ne soderzhat parametrov Standart yazyka pozvolyaet osushestvlyat peregruzku procedur i operacij posredstvom rodovogo interfejsa obedinyaya razlichnye procedury operiruyushaya kazhdaya naprimer celymi dejstvitelnymi kompleksnymi chislami i simvolnymi peremennymi pod odnim rodovym imenem V etom sluchae v glavnoj programme dostatochno obratitsya k rodovoj procedure a harakter vypolnyaemyh operacij budet zaviset ot tipa dannyh predlozhennyh procedure dlya obrabotki Po takomu principu sdelany vse vstroennye funkcii i podprogrammy naprimer COS x Peregruzka procedur funkcij i operatorov prichyom simvoly peregruzhennyh operatorov programmist mozhet predlozhit svoi pomimo vstroennyh rasprostranyaetsya ne tolko na vstroennye tipy dannyh no i na tipy opredelyonnye programmistom Vidy podprogramm Procedury razdelyayutsya na podprogrammy i funkcii Podprogrammy udobnee esli neobhodimo vozvratit bolshoe chislo raznorodnyh rezultatov funkcii pri vozvrashenii rezultata odnogo tipa v tom chisle massiva Podprogramma opredelyaetsya operatorom opisaniya Subroutine imya podprogrammy spisok formalnyh argumentov funkciya operatorom Function imya funkcii spisok formalnyh argumentov Vyzov podprogrammy osushestvlyaetsya operatorom Call imya podprogrammy spisok fakticheskih argumentov Vyzov funkcii osushestvlyaetsya po imeni s ukazaniem spiska fakticheskih argumentov i bez ispolzovaniya kakogo libo specialnogo operatora Nachinaya so standarta F 90 podderzhivayutsya rekursivnye procedury otsutstvovavshie v rannih versiyah iz za ogranichennoj mashinnoj pamyati dlya obyavleniya kotoryh neobhodim yavnyj specifikator recursive Pri etom rezultat funkcii dolzhen otlichatsya ot imeni samoj funkcii Chistye procedury i funkcii pure subroutine function vvedyonnye standartom F 95 procedury i funkcii ne imeyushie pobochnyh effektov Chistaya funkciya dolzhna vozvrashat znachenie i ne dolzhna izmenyat ni odnogo iz svoih vhodnyh parametrov i ili globalnyh dannyh chistaya procedura dolzhna izmenyat tolko te parametry kotorye yavno ukazany kak rezultiruyushie vyhodnye posredstvom atributa intent out ili inout Vozmozhnost pobochnyh effektov v Fortrane to est v konechnom itoge vozmozhnost izmeneniya peremennyh v glavnoj programme cherez podprogrammu pobochnoe sledstvie bystrogo metoda peredachi po adresu Chistye programmnye edinicy ne mogut soderzhat operatorov V V WRITE i READ vo vneshnie fajly i ustrojstva vklyuchaya klaviaturu i ekran a takzhe operatorov pauzy i ostanova programmy Vse vstroennye funkcii i podprogrammy Fortrana v tom chisle matematicheskie krome obrashayushihsya k operacionnoj sisteme funkcij daty i vremeni a takzhe datchikov sluchajnyh chisel yavlyayutsya chistymi to est ne sozdayut pobochnyh effektov Chistye funkcii vvedeny s celyu povysheniya kultury programmirovaniya i povysheniya effektivnosti rasparallelivaniya algoritmov Argumenty podprogramm V kachestve argumentov podprogramm mogut byt lyubye vstroennye tipy dannyh vklyuchaya massivy i ih sekcii ukazateli a takzhe tipy opredelyaemye programmistom Argumentami podprogramm takzhe mogut byt funkcii i drugie podprogrammy krome vnutrennih podprogramm operatornoj funkcii rodovyh obobshyonnyh procedur dopuskayutsya tolko specificheskie imena i nekotoryh dr vstroennyh tipov Argumenty podrazdelyayutsya na formalnye i fakticheskie Argumenty zaklyuchayutsya v skobki posle imeni podprogrammy i razdelyayutsya zapyatymi Imena fakticheskih i formalnyh argumentov mogut sovpadat Formalnye argumenty eto argumenty podprogrammy funkcii ukazannye pri eyo opisanii Pri otsutstvii argumentov u podprogrammy skobki mogut byt opusheny U funkcii skobki rasstavlyayutsya i pri otsutstvii formalnyh argumentov Formalnyj parametr procedura nazyvaetsya formalnoj proceduroj Fakticheskie argumenty eto argumenty peredavaemye podprogramme ili funkcii dlya vypolneniya pri eyo vyzove Funkciya bez argumentov vyzyvaetsya s pustym spiskom v skobkah podprogramma bez skobok Formalnye i fakticheskie argumenty dolzhny byt soglasovany Tipy argumentov i raznovidnosti ih vida dolzhny byt odinakovymi massivu dolzhen sootvetstvovat massiv ili sechenie massiva toj zhe konfiguracii Sushestvuyut massivy perenimayushie konfiguraciyu i perenimayushie razmer kak formalnye argumenty procedur Massiv perenimayushij konfiguraciyu eto formalnyj argument massiv kotoryj nasleduet konfiguraciyu sootvetstvuyushego emu fakticheskogo massiva U takogo massiva pri ego obyavlenii zadayotsya razmernost sovpadayushaya s razmernostyu fakticheskogo argumenta massiva i opuskayutsya verhnie granicy Po umolchaniyu nizhnie granicy ravny 1 no mogut byt zadany proizvolnymi Chislo i znachenie elementov massiva perenimayushego konfiguraciyu tochno nasleduyutsya ot fakticheskogo argumenta massiva Massiv perenimayushij razmer eto ostavlennyj dlya sovmestimosti bolee rannij svojstvennyj yazyku Fortran 77 sposob opisaniya nasleduyushih massivov U takih massivov nasleduetsya tolko poslednee izmerenie verhnyaya granica kotorogo opisyvaetsya zvyozdochkoj Pri etom formalnyj i fakticheskij massivy argumenty mogut imet raznuyu razmernost Massivy perenimayushie konfiguraciyu i razmer ne mogut byt dinamicheskimi ili byt ukazatelyami Procedury imeyushie nasleduyushie massivy dolzhny imet yavnyj interfejs Stroki formalnye argumenty takzhe mogut nasledovat perenimat dlinu u sootvetstvuyushego fakticheskogo argumenta stroki Stroki perenimayushie dlinu opisyvayutsya posredstvom simvola Character Len imya stroki Pri yavnom zadanii dliny stroki dlina stroki formalnogo argumenta ne mozhet byt bolshe sootvetstvuyushego fakticheskogo argumenta stroki Argumenty byvayut pozicionnymi i klyuchevymi Pozicionnye formalnye i fakticheskie argumenty svyazyvayutsya drug s drugom po poryadku ih raspolozheniya v spiske argumentov kotoryj dolzhen sovpadat Klyuchevye po imeni klyucha kotoryj sovpadaet s imenem formalnogo argumenta Klyuchevye pozvolyayut narushit poryadok sledovaniya argumentov ili propustit chast iz nih Tak dlya podprogrammy s zagolovkom Subroutine ONE A B C D vyzov mozhet byt takim Call ONE D Z C Y B X A W gde W X Y Z fakticheskie argumenty Klyuchevye argumenty pozvolyayut imet neobyazatelnye argumenty kotorye mogut byt opusheny V etom sluchae neobyazatelnye argumenty dolzhny imet atribut Optional Naprimer esli zadano Optional C D to v etom sluchae vozmozhen vyzov Call ONE B X A W Procedury s neobyazatelnymi parametrami dolzhny imet yavnyj interfejs Rabota s massivami Massivy centralnyj punkt filosofii Fortrana Vse konstrukcii yazyka dannye programmnye edinicy operatory vstroennye funkcii cikly sozdany i sozdayutsya dlya effektivnoj obrabotki prezhde vsego massivov Fortran po mere svoego razvitiya sleduet principu maksimalnogo naskolko eto vozmozhno uhoda ot detalnogo poelementnogo opisaniya i obrabotki massivov Osobenno eto effektivno pri obrabotke mnogomernyh massivov predelnaya razmernost massivov standarta F2008 15 Takoj vzglyad na massivy ne byl svojstvenen rannim versiyam yazyka pervye elementy obobshyonnogo podhoda k massivam poyavilis v FORTRAN77 razvivayutsya oni i ponyne Massivy byvayut staticheskimi i dinamicheskimi Dinamicheskie razdelyayutsya na razmeshaemye i avtomaticheskie obrazuemye pri vyzove podprogrammy Elementy dvumernogo massiva v Fortrane razmeshayutsya po stolbcam a ne po strokam kak naprimer v Si Takim obrazom bystree vsego izmenyaetsya pervyj indeks massiva Poetomu dlya effektivnoj raboty s massivami vo vlozhennyh ciklah sleduet indeksirovat vnutrennie cikly levymi indeksami a vneshnie pravymi Po umolchaniyu prisvaivanie vvod vyvod i inicializaciya massivov osushestvlyayutsya po stolbcam do k 1 10 do j 1 20 do i 1 100 arr i j k 25 pravilno brr k j i 0 rabotosposobno no medlennee v neskolko raz end do end do end do Massivy mogut byt nulevogo razmera v tom chisle esli nizhnyaya granica prevoshodit verhnyuyu Indeksami granic massivov mogut byt lyubye celye chisla Po umolchaniyu nizhnyaya granica ravna 1 Real allocatable ArR obyavlenie razmeshaemogo dinamicheskogo dejstvitelnogo massiva Integer allocatable ArI ArSI 2 5 celyh dinamicheskogo i staticheskogo massivov Character 32 allocatable ArC ArC2 20 dinamicheskogo massiva strok dlinoj 32 simvola i staticheskogo massiva strok Allocate ArR 74 0 8 1 3 ArI 0 ArC 1 1 razmeshenie dinamicheskih massivov print size ArR size ArI size ArC size ArSI 1800 0 0 10 ArC2 17 5 27 Eto prisvaivanie stroki V stroku nomer 17 budet zapisano Eto prisvaivanie stroki Secheniya massivov operatory FORALL i WHERE Fortran pozvolyaet effektivno prisvaivat massivy bez ciklov posredstvom maskirovaniya prisvaivaniya s pomoshyu operatorov WHERE i FORALL a takzhe sechenij massivov i vektornyh indeksov Vo vseh sluchayah pervonachalno vychislyaetsya pravaya chast vyrazheniya celikom dlya vseh indeksov massiva i lish zatem vypolnyaetsya prisvaivanie dlya indeksov udovletvoryayushih massivu maske Vychisleniya s pomoshyu etih instrumentov pozvolyayut povyshat bystrodejstvie i oblegchayut kompilyatoru rabotu po vydeleniyu uchastkov programmy kotorye mogut byt vypolneny nezavisimo to est rasparalleleny Real arr I1 I2 J1 J2 K1 K2 arr1 I1 I2 J1 J2 K1 K2 arr2 I1 I2 J1 J2 K1 K2 Real frr 100 frr1 10 1 2 3 3 4 4 5 ili Real frr1 10 1 2 3 4 4 4 5 5 5 5 arr 1 prisvaivanie massiva vstroennaya peregruzka dlya operatora prisvaivaniya arr1 Sin arr arr elementnaya funkciya sin primenyaetsya k kazhdomu elementu massiva arr2 I1 I2 1 J1 J2 2 K2 K1 4 arr1 I1 I2 1 J1 J2 2 K2 K1 4 prisvaivanie elementov s shagom 1 2 i 4 nazad zadannoe indeksnym tripletom frr J J 1 100 prisvaivanie odnomernogo massiva posredstvom ciklicheskogo spiska Forall i I1 I2 j J1 J2 k K1 K2 arr i j k gt 0 brr i j k Log arr i j k zamena ciklov i uslovnyh operatorov i konstrukcij Maskirovanie prisvaivaniya maska arr i j k gt 0 Forall i 1 N j 1 N k 1 N crr i j k Sin 0 5 i j k rasshirenie vozmozhnostej sechenij Forall i 1 100 konstrukciya Forall dlya neskolkih operatorov prisvaivaniya drr i i 0 dostup k diagonali matricy err i i i 1 i diagonali tryohmernogo massiva End Forall Vozmozhny menee ochevidnye operacii Integer V 2 2 1 5 V reshape source i i 1 25 shape 5 5 inicializaciya massiva poryadkovymi nomerami s pomoshyu konstruktora massiva i funkcii pereformirovaniya print V Vyvod v DOS okno budet proizvedyon po strokam 1 2 3 4 5 1 j stolbec 6 7 8 9 10 2 j 11 12 13 14 15 3 j 16 17 18 19 20 4 j 21 22 23 24 25 5 j V 2 3 4 V 1 0 1 Povernut kusochek massiva print V Vyvod v DOS okno budet proizvedyon po strokam 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 zamena v 3 em stolbce 15 na 2 16 17 18 19 3 zamena v 4 m stolbce 20 na 3 21 22 23 24 25 Vozmozhnosti operatora i konstrukcii FORALL vvedyonnogo standartom F 95 shire vozmozhnostej operatora i konstrukcii WHERE odnako poslednij v nekotoryh sluchayah logicheskogo vetvleniya pozvolyaet uprostit kod vvidu nalichiya alternativy ELSEWHERE izbegaya vlozhennyh uslovnyh operatorov i slozhnosostavlennyh massivov masok Operator i konstrukciya FORALL dopuskaet ispolzovanie tolko chistyh procedur i funkcij Pri maskirovanii prisvaivaniya v operatorah WHERE FORALL a takzhe v specialnyh vstroennyh funkciyah dlya massivov naprimer SUM logicheskij massiv maska vychislyaetsya do prisvaivaniya i pozvolyaet zamenyat cikly s logicheskimi usloviyami vnutri nih chto pozvolyaet izbezhat dopolnitelnoj raboty dlya predskazatelya perehodov mikroprocessora Vektornyj indeks celochislennyj odnomernyj massiv znacheniya kotorogo indeksy nekotorogo drugogo massiva Vektornye indeksy ispolzuyutsya dlya sozdaniya proizvolnyh sechenij mnogomernyh massivov i yavlyayutsya ih obobsheniyami Pri ispolzovanii vektornyh indeksov sleduet sledit za povtoryayushimisya znacheniyami indeksov v levoj chasti operatora prisvaivaniya tak kak v etom sluchae budet osushestvlena popytka zapisi v odnu yachejku pamyati vozmozhno raznyh znachenij Poryadok indeksov proizvolnyj hotya etim ne sleduet zloupotreblyat vo izbezhanie snizheniya bystrodejstviya Integer vi 5 7 7 7 3 8 vj 4 1 2 3 10 inicializaciya massivov vektornyh indeksov Real arr 20 20 brr 10 10 brr 0 arr 1 vektornye indeksy mozhno zadavat i vnutri ispolzuyushego ih massiva brr 8 6 2 1 4 vj arr vi vj razmernost vektornyh indeksov dolzhna sovpadat sleva i sprava a ih znacheniya ne vyhodit za predely granic ispolzuyushih ih massivov razmer vektornyh indeksov mozhet byt menshe razmera rabochih massivov Vstroennye funkcii dlya massivov V sovremennom Fortrane imeetsya bolshoe kolichestvo specializirovannyh vstroennyh funkcij dlya raboty s chislennymi i simvolnymi massivami pomimo razobrannyh vyshe obshih sposobov Argumentami funkcij vystupayut chislennyj i ili simvolnyj massiv array logicheskij massiv mask yavlyayushijsya naprimer usloviem array gt 0 i izmerenie dim massiva array formiruyushee esli zadan argument dim sechenie massiva vdol odnogo iz izmerenij s nomerom dim Massiv array mozhet byt esli ne ukazano inoe celochislennym soderzhat dejstvitelnye ili kompleksnye chisla Esli massiv maska ne zadan to ego znachenie schitaetsya tozhdestvenno istinnym Logicheskij massiv mask esli zadan dolzhen imet tu zhe formu chto i massiv array libo skalyarnoe znachenie TRUE Osnovnaya massa funkcij vvedena standartom F 90 ALL mask dim logicheskaya funkciya vozvrashaet istina esli vse elementy logicheskogo massiva mask istinny vdol fakultativnogo izmereniya dim i naoborot v protivnom sluchae ANY mask dim logicheskaya funkciya imeet znachenie istina esli hotya by odin element logicheskogo massiva mask istinen vdol fakultativnogo izmereniya dim COUNT mask dim celochislennaya funkciya rezultat raven chislu istinnyh elementov massiva mask vdol fakultativnogo izmereniya dim MAXLOC array mask dim MINLOC array mask dim celochislennye funkcii vozvrashayushie sootvetstvenno indeks maksimalnogo i minimalnogo elementa ili indeksy maksimalnyh i minimalnyh elementov vdol fakultativnogo izmereniya dim dlya elementov udovletvoryayushih massivu maske Funkcii vozvrashayut indeks pervogo po poryadku sledovaniya elementa massiva array Esli argument funkcij dim ne zadan ili esli array odnomernyj massiv to rezultat zapisyvaetsya v odnomernyj massiv Dlya mnogomernyh massivov array rezultat zapisyvaetsya v massiv s rangom na edinicu menshim ranga massiva array isklyuchaetsya izmerenie s nomerom dim Znacheniya indeksov otschityvayutsya po poryadku ot nizhnih granic massiva To est v sluchae esli nomer nizhnej granicy massiva array otlichaetsya ot edinicy to dlya dostupa k maksimalnomu ili minimalnomu elementu massiva sleduet pribavit k rezultatu funkcij MAXLOC i MINLOC raznicu mezhdu indeksom nizhnej granicy i edinicej MAXVAL array mask dim MINVAL array mask dim funkcii poiska maksimalnogo i minimalnogo elementa sootvetstvenno v massive array dlya elementov udovletvoryayushih logicheskomu massivu maske mask vdol fakultativnogo izmereniya dim Rezultat funkcii takogo zhe tipa i raznovidnosti chto i massiv array Massiv array mozhet byt tolko veshestvennym ili celochislennym Dlya odnomernogo massiva array ili pri otsutstvii argumenta dim rezultatom yavlyaetsya skalyar inache massiv s rangom na edinicu menshim ranga massiva array FINDLOC array value dim mask celochislennaya funkciya vozvrashayushaya indeks ravnogo value elementa massiva array Vvedena standartom F2008 Iskomye elementy massiva udovletvoryayut logicheskomu massivu maske mask vdol fakultativnogo izmereniya dim Tip argumenta value dolzhen sovpadat s tipom massiva array i mozhet byt lyubogo vstroennogo tipa vklyuchaya kompleksnyj logicheskij ili simvolnyj Ostalnye svojstva funkcii analogichny svojstvam funkcij MAXLOC i MINLOC Nachinaya so standarta F2003 funkcii MAXLOC i MINLOC kak i funkciya FINDLOC operiruyut takzhe i simvolnymi dannymi SUM array mask dim i PRODUCT array mask dim osushestvlyayut sootvetstvenno summirovanie i umnozhenie elementov massiva Smysl argumentov funkcij SUM i PRODUCT tot zhe chto i u vyshe rassmotrennyh funkcij Funkciya PRODUCT operiruet kompleksnymi dannymi nachinaya so standarta F2003 DOT PRODUCT vector 1 vector 2 osushestvlyaet skalyarnoe proizvedenie po pravilam linejnoj algebry vektorov vector 1 i vector 2 odnomernyh massivov odinakovogo razmera Odnomernye massivy vector 1 i vector 2 mogut soderzhat dannye lyubogo chislennogo i logicheskogo tipa Vektora vector 1 i vector 2 mogut byt libo oba chislennymi libo oba logicheskimi MATMUL matrix a matrix b vstroennaya funkciya matrichnogo peremnozheniya Peremnozhaet dve matricy matricu na vektor vektor na matricu po pravilam linejnoj algebry Argumenty funkcii matrix a i matrix b dvumernye ili odnomernye chislennye lyubyh vstroennyh chislennyh tipov ili logicheskie massivy Argumentami funkcii ne mogut byt odnovremenno dva vektora odin iz argumentov obyazan byt matricej dvumernym massivom Chislo elementov pervogo libo edinstvennogo izmereniya massiva matrix b dolzhno byt ravno chislu elementov poslednego izmereniya massiva matrix a Vvedena standartom F 90 V nekotoryh sluchayah pri raschyote proizvedeniya vektor stolbca na vektor stroku trebuyushego pri ispolzovanii funkcii MATMUL dopolnitelnogo preobrazovyvaniya vektorov v matricy formy m 1 i 1 n effektivnost MATMUL po dannym Barteneva zametno ustupaet obychnomu vlozhennomu ciklu Po testam NASA dlya proizvedeniya matric dvumernyh massivov bystrodejstvie MATMUL kompilyatora firmy Intel pri ispolzovanii polnoj optimizacii O3 sushestvenno v nekotoryh sluchayah na poryadok prevyshaet bystrodejstvie vlozhennyh ciklov hotya dlya matric razmerom 1000 1000 i bolshe neskolko ustupaet bystrodejstviyu podprogrammy DGEMM biblioteki LAPAK V to zhe vremya dlya matric 100 100 i menshe MATMUL prevoshodit po skorosti DGEMM Kompilyator Fortrana firmy IBM nachinaya s versii F 90 ispolzuet dlya MATMUL algoritm Vinograda Shtrassena so slozhnostyu O n2 81 displaystyle rm O n 2 81 Otmetim chto standartom algoritmicheskie realizacii matematicheskih funkcij obychno ne ogovarivayutsya i ostayutsya na usmotrenie razrabotchika kompilyatora MERGE t source f source mask funkciya sozdayushaya novyj massiv pod upravleniem maski massiva mask iz elementov massivov t source i f source toj zhe formy i togo zhe razmera chto i ishodnye massivy Massivy argumenty i massiv rezultat mogut byt lyubogo vstroennogo tipa i sovpadat po tipu dannyh razmeru i forme Esli element mask est istina TRUE to sootvetstvuyushij emu element massiva rezultata raven sootvetstvuyushemu elementu massiva t source esli lozh FALSE to elementu massiva f source Argumentami funkcii mogut byt skalyary v etom sluchae naprimer MERGE a 0 c gt 0 a 8 s gde 8 s celochislennaya funkciya Hevisajda MOVE ALLOC from to vstroennaya podprogramma pozvolyayushaya dinamicheski pererazmeshat ranee razmeshyonnyj dinamicheskij massiv to s novymi granicami i razmerom kak u dinamicheskogo massiva from Pri etom dannye iz massiva from kopiruyutsya v massiv to Tip dannyh i rang massivov from i to dolzhny sovpadat Posle pererazmesheniya massiva to massiv from osvobozhdaet pamyat i stanovitsya nerazmeshyonnym Mozhet byt polezna v chislennyh metodah s izmenyayushejsya diskretizaciej zadachi mnogosetochnyh i metodah Vvedena standartom F2003 TRANSPOSE matrix funkciya transponiruyushaya menyayushaya mestami stroki i stolbcy dvumernuyu matricu V sovremennom Fortrane predusmotreny vstroennye funkcii upakovki i raspakovki mnogomernogo massiva v odnomernyj massiv i iz odnomernogo massiva sootvetstvenno pod upravleniem logicheskogo usloviya dlya povysheniya bystrodejstviya i ekonomii pamyati PACK array mask vector funkciya upakovyvaet mnogomernyj massiv lyubogo tipa array v odnomernyj massiv vektor pod upravleniem logicheskogo massiva mask Neobyazatelnyj odnomernyj massiv vector dolzhen imet tot zhe tip dannyh chto i array prichyom kolichestvo elementov v vector esli on zadan dolzhno byt ne menshe chisla istinnyh elementov v mask Esli mask skalyar so znacheniem TRUE to chislo elementov v massive vector esli on zadan dolzhno byt ne menshe chem obshee chislo elementov v array Rezultatom funkcii budet odnomernyj massiv togo zhe tipa chto i array Dlina rezultata budet ravna dline vektora vector esli on zadan esli net to chislu istinnyh elementov v massive maske mask Esli vector ne zadan a mask skalyar so znacheniem istina to dlina rezultiruyushego odnomernogo vektora ravna chislu elementov massiva array Rezultiruyushij massiv posledovatelno zapolnyaetsya elementami massiva array v poryadke ih razmesheniya v kompyuternoj pamyati udovletvoryayushimi istinnym znacheniyam massiva mask Pri etom esli zadan vector iz nego vybirayutsya nedostayushie vozmozhno elementy v massive rezultate prichyom nachinaya s indeksa sleduyushego za poslednim po poryadku istinnym elementom massiva array Tak dlya massiva A 010200003 displaystyle A begin bmatrix 0 amp 1 amp 0 2 amp 0 amp 0 0 amp 0 amp 3 end bmatrix rezultatom funkcii PACK A mask A NE 0 budet odnomernyj massiv 123 displaystyle begin bmatrix 1 amp 2 amp 3 end bmatrix Esli dopolnitelno zadan vektor V 77 95045678910 displaystyle V begin bmatrix 77 amp 95 amp 0 amp 4 amp 5 amp 6 amp 7 amp 8 amp 9 amp 10 end bmatrix to rezultatom PACK A mask A NE 0 V budet 12345678910 displaystyle begin bmatrix 1 amp 2 amp 3 amp 4 amp 5 amp 6 amp 7 amp 8 amp 9 amp 10 end bmatrix Fajly i operacii vvoda vyvoda Fortran obladaet bogatym vstroennym instrumentariem dlya operacij vvoda vyvoda v tom chisle dlya bolshih massivov dannyh Fajly v Fortrane byvayut vnutrennie i vneshnie Vnutrennij fajl eto lyuboj massiv simvolnaya stroka ili podstroka Vnutrennie fajly vsegda otkryty po umolchaniyu Vneshnij fajl eto lyuboj fajl vneshnij po otnosheniyu k vypolnyaemoj programme S oboimi tipami fajlov ispolzuyutsya odni i te zhe operatory zapisi WRITE i chteniya READ Vnutrennie fajly ispolzuyutsya dlya preobrazovanij chislo stroka chislo i dlya sozdaniya smeshannyh chislovyh i simvolnyh zapisej Character 15 string Real xyz 12 3 456 Integer intg Write string xyz Zapis v stroku chisla 123 456 Print string string string 123 4560 Read string I6 intg Chtenie iz stroki celogo chisla Print intg intg intg 123 Vneshnie fajly podrazdelyayutsya na formatnye tekstovye CR i LF potoki binarnye dvoichnye neposredstvenno otobrazhayushie operativnuyu pamyat i neformatnye ne dvoichnye Krome togo oni mogut byt fajlami pryamogo i posledovatelnogo dostupov s zapisyami fiksirovannoj i peremennoj dliny peremennoj tolko dlya posledovatelnyh fajlov a takzhe segmentirovannymi zapisyami dlya ochen bolshih neformatnyh posledovatelnyh fajlov Takim obrazom Fortran pozvolyaet sozdavat i obrabatyvat dovolno bolshoe kolichestvo vidov fajlov 15 sposobov organizacii Maksimalnyj razmer odnoj zapisi dva gigabajta Fajly pryamogo dostupa pozvolyayut osushestvlyat operacii vvoda vyvoda s zapisyami s zadannym nomerom bez zatiraniya vysheraspolozhennyh ili nizheraspolozhennyh zapisej v fajle Pri otkrytii posledovatelnogo fajla ego mozhno pozicionirovat v nachalo v konec pered zapisyu konec fajla chto pozvolyaet dobavlyat dannye po mere ih nakopleniya bez zatiraniya ranee vvedyonnyh a takzhe libo v nachalo libo v konec v zavisimosti ot ranee opredelyonnogo statusa fajla byl on otkryt ranee ili net Rabota s pamyatyu V sovremennyh standartah yazyka nachinaya s Fortran 90 ili Fortran 95 vozmozhna rabota s tremya vidami dinamicheskih massivov avtomaticheskimi razmeshaemymi i massivami ssylkami ukazatelyami ssylkami imeyutsya vstroennye procedury dlya raboty s pamyatyu napryamuyu i procedury dlya pobitovyh operacij Standarty yazyka predpolagayut avtomaticheskoe osvobozhdenie operativnoj pamyati zanyatoj lyubym tipom dinamicheskogo massiva posle zaversheniya raboty programmy ili podprogrammy procedury funkcii dazhe esli programmistom osvobozhdenie ne bylo vypolneno yavno Eto pozvolyaet izbegat vozniknoveniya utechek pamyati pri rabote s dinamicheskimi massivami sredstvami Fortrana pri ispolzovanii ukazatelej i v drugih sluchayah utechki vozmozhny pri nebrezhnosti programmirovaniya Avtomaticheskie massivy razmeshaemye kompilyatorom sozdayutsya pri vyzove podprogrammy i yavlyayutsya eyo lokalnymi obektami Ih granicy opredelyayutsya vsyakij raz pri obrashenii k procedure pri etom pri vyhode iz neyo oni unichtozhayutsya a pamyat ochishaetsya Avtomaticheskie massivy vo vremya vypolneniya programmy nahodyatsya v steke razmeshaemye s pomoshyu operatora ALLOCATE v kuche Ukazateli Fortrana analogichny ukazatelyam Si odnako pri reshenii vychislitelnyh zadach i razrabotke matematicheskih algoritmov oni v bolshinstve sluchaev s uspehom zamenyayutsya inymi instrumentami Fortrana Upravlyayushie konstrukcii Nachinaya so standarta F 90 konstrukciya uslovnogo perehoda IF THEN ELSEIF THEN END IF ne otlichaetsya ot podobnyh konstrukcij v drugih sovremennyh yazykah i zamenila t n arifmeticheskij IF s metkami priznannyj ustarevshim Sushestvuet i bolee prostaya forma uslovnogo operatora IF i logicheskoe i i uslovie i i operator i gde ispolnyaemyj operator dolzhen byt edinstvennym posle operatora IF naprimer Goto i metka i Konstrukciya vybora SELECT CASE CASE CASE DEFAULT END SELECT naoborot otlichaetsya ot konstrukcii SWITCH CASE v Si podobnyh yazykah yazyke Java i neskolko napominaet po vozmozhnostyam operator CASE v Paskale Integer N 74 vyrazhenie vybora eto celoe logicheskoe simvolnoe vyrazhenie ili celochislenyj massiv ili massiv simvolov s lyubym nenulevym chislom elementov nameSC Select Case N i nameSC imya konstrukcii N i element massiva Case 5 vypolnyaetsya dlya vseh N i menshih libo ravnyh 5 s shagom 1 Blok 1 Case 3 1 0 2 dlya peremennoj N i ravnoj 3 1 0 2 Blok 2 Case 50 100 dlya N i v diapazone ot 50 do 100 vklyuchitelno shag 1 Blok 3 Case 400 dlya N i 400 Blok 4 Case 1 20 30 35 dlya N i 1 N i v diapazone ot 20 do 30 vklyuchitelno i N i 35 Blok 5 Case Default dlya vseh prochih situacij Case Default opcionalnyj neobyazatelnyj operator Blok po umolchaniyu End Select nameSC Esli znachenie peremennoj N nazyvaemoj vyrazheniem vybora sovpadyot so spiskom selektorov spiskom znachenij ili diapazonom v k libo operatore CASE naprimer v tretem dlya N 70 to posle vypolneniya sootvetstvuyushego bloka operatorov Blok 3 proishodit vyhod iz konstrukcii SELECT CASE i operatorov preryvaniya tipa BREAK ne trebuetsya Operator CASE DEFAULT ravno kak i imya konstrukcii ne yavlyaetsya neobhodimym Diapazony v spiskah selektorov razlichnyh operatorov CASE ne dolzhny peresekatsya ili imet hotya by odnogo obshego elementa V kachestve vyrazheniya vybora N mozhet byt element celochislennogo massiva Diapazony v spiskah selektorov primenyayutsya tolko dlya celyh ili dlya simvolov po vozrastaniyu ot nizhnej granicy k verhnej dlya simvolov po vozrastaniyu ih kodov V sovremennom Fortrane sushestvuyut dve formy ciklov so schyotchikom iteracij tradicionnaya konstrukciya DO ENDDO i cikl s metkoj Poslednyaya priznana ustarevshej konstrukciej nachinaya so standarta F 90 odnako do sih por vhodit v standarty Dlya vlozhennyh ciklov s bolshim urovnem vlozhennosti poslednyaya forma mozhet byt bolee lakonichnoj Sintaksis ustarevshej konstrukcii cikla do 1 k 1 10 1 eto metka konca cikla do 1 j 1 20 metka mozhet byt odinakovoj dlya vlozhennyh ciklov do 1 i 1 100 arr i j k 25 1 Continue metka mozhet stoyat tolko pered k libo operatorom L1 do k 1 10 odnako sovremennaya zapis dopuskaet imenovat cikly L2 do j 1 20 chto bolshe sootvetstvuet koncepcii strukturnogo programmirovaniya L3 do i 1 100 i pozvolyaet legche izbezhat oshibok arr i j k 25 end do L3 end do L2 end do L1 Zagolovok cikla so schyotchikom imeet sleduyushij polnyj vid name DO I N1 N2 dN imya konstrukcii neobyazatelno N1 nachalnoe znachenie schyotchika N2 konechnoe dN shag parametry cikla END DO name Parametry cikla celye chisla proizvolnogo znaka dN ne ravno nulyu Chislo vypolneniya tela cikla bez preryvaniya ravno Ns max int N2 N1 dN dN 0 i mozhet byt ravnym nulyu Naprimer cikl vypolnitsya nul raz esli N2 lt N1 i shag polozhitelen dN gt 0 Esli shag otricatelnyj dN lt 0 to cikl projdyot v obratnom poryadke pri etom dlya vypolneniya cikla neobhodimo chtoby N2 lt N1 Esli shag dN opushen to po umolchaniyu on schitaetsya ravnym edinice dN 1 Znachenie peremennoj cikla I posle vyhoda iz nego vsegda ravno Ns 1 to est na edinicu bolshe chisla iteracij cikla i ne menee edinicy I 1 Vozmozhen takzhe cikl s usloviem DO WHILE i logicheskoe i i uslovie i END DO i beskonechnyj cikl DO END DO imeyushie standartnuyu formu Operator CYCLE i imya cikla i preryvaet tekushuyu iteraciyu cikla i perehodit k sleduyushej iteracii etogo zhe cikla Esli imya cikla ne ukazano to vypolnyaetsya preryvanie iteracii tekushego cikla v kotorom raspolozhen operator CYCLE Operator EXIT i imya cikla i preryvaet vypolnenie cikla s ukazannym imenem i peredayot upravlenie dalee a pri otsutstvii imeni preryvaet tekushij cikl v kotoryj vlozhen operator EXIT Operatory CYCLE i EXIT logicheski tozhdestvenny operatoru GOTO v sootvetstvuyushih obstoyatelstvah no sushestvenno oblegchayut ponimanie i obsluzhivanie koda programmistom KompilyatoryS momenta pervonachalnoj razrabotki yazyka kompilyatory Fortrana proizvodit firma IBM V nastoyashee vremya firmoj IBM postavlyaetsya optimiziruyushij kompilyator dlya mejnfrejmov IBM System z istoriya razvitiya razlichnyh versij kotorogo voshodit eshyo k 1964 godu a takzhe kompilyator dlya platform na baze arhitektury PowerPC AIX Linux i superkompyutera Blue Gene vypuskalas takzhe versiya dlya Mac OS X kogda kompyutery Macintosh ispolzovali processory PowerPC Oba etih kompilyatora soderzhat ochen slozhnye optimizatory yavlyayushiesya rezultatom nepreryvnoj nauchnoj raboty specialistov IBM na protyazhenii poluveka Na baze kompilyatora IBM Fortran XL firmoj Absoft biznes partnyorom IBM sozdan i postavlyaetsya kompilyator Absoft Pro Fortran dlya sistem na baze processorov PowerPC Linux Mac OS X i Intel Linux Mac OS X Windows Do 1997 krupnym proizvoditelem kompilyatora Fortran dlya operacionnoj sistemy Windows byla korporaciya Microsoft Vposledstvii ona otkazalas ot ih razrabotki v svyazi s nizkoj pribylnostyu Posle etogo kompilyator postavlyala firma DEC voshedshaya v 1998 godu v sostav Compaq i vmeste s poslednej v 2002 godu slivshayasya s HP Dalnejshej razrabotkoj etoj versii kompilyatora stala zanimatsya firma Intel a kompilyator nazyvaetsya Intel Fortran Compiler kotoryj pozvolyaet optimizirovat kod pod platformy Intel IA 32 x86 64 i IA 64 Kompaniya DEC postavlyaet kompilyator integrirovannyj v sredu razrabotki Digital Visual Fortran osnovannuyu na Microsoft Visual Studio Naibolee izvestnymi produktami etoj linejki yavlyayutsya FPS 4 0 Microsoft Fortran Power Station DVF 5 0 i 6 0 Kazhdyj kompilyator mozhet podderzhivat neskolko standartov Fortrana Sliyaniya kompanij yavilis prichinoj togo chto posleduyushie produkty poyavlyalis na rynke pod torgovymi markami Compaq i HP V nastoyashee vremya HP prodayot sredu razrabotki versii 6 6 dlya Intel win32 Podderzhka Fortrana realizovana takzhe dlya vseh vysokoproizvoditelnyh platform HP Drugim krupnym postavshikom sistem razrabotki na Fortrane yavlyaetsya firma predlagayushaya integrirovannye resheniya dlya Windows i Linux Dolgoe vremya luchshim kompilyatorom Fortrana dlya PC schitalsya kompilyator firmy Watcom kotoryj byl vydelen v otdelnyj proekt Open Watcom razvivayushij kompilyator na otkrytoj osnove Sredi besplatnyh kompilyatorov Fortran sleduet vydelit kompilyator ot byvshej Sun Microsystems sejchas Oracle vhodyashij v sostav Sun Studio kotoryj generiruet effektivnyj kod pod SPARC x86 i x86 64 i dostupen dlya OS Solaris OpenSolaris i GNU Linux Fond svobodnogo programmnogo obespecheniya GNU vypuskal otkrytyj kompilyator Fortrana 77 dostupnyj prakticheski dlya lyuboj platformy i polnostyu sovmestimyj s GCC Sejchas emu na smenu prishyol kompilyator GFortran v kotorom realizovany prakticheski vse konstrukcii standarta Fortran 95 i mnogie konstrukcii standartov Fortran 2003 Fortran 2008 i Fortran 2018 On takzhe polnostyu obratno sovmestim s Fortran 77 Takzhe sushestvuet nezavisimyj proekt po sozdaniyu na osnove GCC kompilyatora Fortran 95 Vzaimodejstvie s drugimi yazykamiMnogie sistemy programmirovaniya pozvolyayut komponovat poluchennye v rezultate translyacii fortranovskoj programmy obektnye fajly s obektnymi fajlami poluchennymi ot kompilyatorov s drugih yazykov chto pozvolyaet sozdavat bolee gibkie i mnogofunkcionalnye prilozheniya Dlya yazyka Fortran takzhe dostupno bolshoe kolichestvo bibliotek soderzhashih kak podprogrammy resheniya klassicheskih vychislitelnyh zadach LAPACK IMSL BLAS zadach organizacii raspredelyonnyh vychislenij MPI PVM tak i zadach postroeniya graficheskih interfejsov ili dostupa k SUBD Oracle Fortran v SSSRFortran v SSSR poyavilsya pozzhe chem na Zapade poskolku ponachalu v SSSR bolee perspektivnym yazykom schitalsya Algol Vo vnedrenii Fortrana bolshuyu rol sygralo obshenie sovetskih fizikov so svoimi kollegami iz CERN gde v 1960 h godah pochti vse raschyoty velis s ispolzovaniem programm na Fortrane Pervyj sovetskij kompilyator s Fortrana byl sozdan v 1967 godu dlya mashiny Minsk 2 odnako on ne poluchil bolshoj izvestnosti Shirokoe vnedrenie Fortrana nachalos posle sozdaniya v 1968 godu kompilyatora FORTRAN DUBNA dlya mashiny BESM 6 Fortran osnovnoj yazyk dlya ASVT i SM EVM chasto ispolzovalsya vmeste s preprocessorom Mashiny ES EVM poyavivshiesya v 1972 godu uzhe iznachalno imeli translyator Fortrana pozaimstvovannyj s IBM 360 vmeste s drugim programmnym obespecheniem V 1970 x godah v IPM byla razrabotana graficheskaya biblioteka GRAFOR Graficheskoe RAsshirenie FORtrana V konce 1980 h nachale 1990 h fizik sozdal seriyu detskih knizhek odnim iz glavnyh geroev kotoryh byl professor Fortran dostupnym yazykom obyasnyavshij detyam osnovy i programmirovaniya PrimechaniyaHistory of FORTRAN I II and III Journal of the ACM 1981 V E Karpov KLASSIChESKAYa TEORIYa KOMPILYaTOROV Uchebnoe posobie 2 e izd Moskva 2011 91 s ISBN 5 230 16344 5 Yazyk Plankalkyul pretenduyushij na palmu pervenstva byl izobretyon eshyo v 1945 godu no ne byl realizovan vplot do 2000 goda Slovar inostrannyh slov M Russkij yazyk 1989 624 s ISBN 5 200 00408 8 Sm naprimer Netlib Repository at UTK and ORNL ot 27 iyulya 2021 na Wayback Machine IMSL Fortran Numerical Library Rogue Wave neopr Data obrasheniya 19 avgusta 2015 16 avgusta 2015 goda Bartenev O V 1 3 Fortran dlya professionalov Matematicheskaya biblioteka ISML Moskva Dialog MIFI 2001 ch1 448 s ch2 320 s ch3 368 s 3000 ekz ISBN 5 86404 157 2 ch 2 5 86404 18 58 0 ch 3 Gorelik A M Evolyuciya yazyka programmirovaniya Fortran 1957 2007 i perspektivy ego razvitiya rus Vychislitelnye metody i programmirovanie 2008 T 9 S 53 71 ot 2 aprelya 2015 na Wayback Machine Gorelik A M Chast 2 Glavy 14 20 Programmirovanie na sovremennom Fortrane Moskva Finansy i statistika 2006 352 s 3000 ekz ISBN 5 279 03066 X ANSI X3 9 1966 FORTRAN 1966 1 noyabrya 2020 goda ot 1 noyabrya 2020 na Wayback Machine Fortran 77 ANSI X3J3 90 4 Working Group angl Data obrasheniya 18 fevralya 2021 11 noyabrya 2020 goda Bartenev O V Sovremennyj Fortran M Dialog MIFI 2005 ISBN 5 86404 113 0 10 fevralya 2011 goda Fortran 90 Last Working Draft angl wg5 fortran org Data obrasheniya 18 fevralya 2021 5 noyabrya 2020 goda Gorelik A M Obektno orientirovannoe programmirovanie na sovremennom Fortrane ot 7 sentyabrya 2011 na Wayback Machine Fortran 95 Last Working Draft angl wg5 fortran org Data obrasheniya 18 fevralya 2021 1 iyulya 2021 goda Gorelik A M 3 Vvedenie v parallelnoe programmirovanie na Fortrane Programmirovanie na sovremennom Fortrane Moskva Finansy i statistika 2006 352 s ISBN 5 279 03066 X Algazin S D Kondratev V V Programmirovanie na Visual Fortran M Dialog MIFI 2008 448 s ISBN 5 8243 0759 8 Fortran 2003 Last Working Draft neopr Gnu Org Data obrasheniya 10 maya 2014 25 fevralya 2021 goda Fortran 2008 Last Working Draft neopr Gnu Org Data obrasheniya 10 maya 2014 3 marta 2021 goda Gorelik A M Novosti ot 2 marta 2012 na Wayback Machine Fortran 2018 neopr ISO Data obrasheniya 30 noyabrya 2018 1 dekabrya 2017 goda Further Interoperability with C neopr ISO Data obrasheniya 20 noyabrya 2017 8 marta 2021 goda Additional Parallel Features in Fortran neopr ISO Data obrasheniya 20 noyabrya 2017 Troj Duglas Douglas A Troy per s angl B A Kuzmina Programmirovanie na yazyke Si dlya personalnogo kompyutera IBM PC Complete C Language Programming for the IBM PC I V Emelin Moskva Radio i svyaz 1991 432 s ISBN 5 256 00707 6 0 316 85311 9 Gorelik A M Chast 1 Glavy 1 13 Programmirovanie na sovremennom Fortrane 1 Moskva Finansy i statistika 2006 352 s ISBN 5 279 03066 X Thomas Clune Comparing Python NumPy Matlab Fortran etc neopr NASA Modeling Guru oktyabr 2009 Data obrasheniya 7 oktyabrya 2015 23 oktyabrya 2015 goda Craig C Douglas Gordon Slishman Variants of Matrix matrix Multiplication for Fortran 90 SIGNUM Newsl 1994 04 01 T 29 vyp 2 S 4 6 ISSN 0163 5778 doi 10 1145 181498 181500 9 avgusta 2021 goda Operator switch C neopr msdn microsoft com Data obrasheniya 5 iyunya 2016 13 avgusta 2016 goda Konstrukciya switch neopr learn javascript ru Data obrasheniya 5 iyunya 2016 9 iyunya 2016 goda Tonkosti operatora switch neopr habrahabr ru Data obrasheniya 5 iyunya 2016 17 iyunya 2016 goda The Case statement neopr www freepascal org Data obrasheniya 5 iyunya 2016 22 maya 2016 goda VS FORTRAN neopr Data obrasheniya 8 marta 2010 9 avgusta 2021 goda XL Fortran for Linux neopr Data obrasheniya 8 marta 2010 9 avgusta 2021 goda Absoft Pro Fortran Compiler Suites General Overview neopr Data obrasheniya 8 marta 2010 9 avgusta 2021 goda Sun Studio Benchmarks neopr Data obrasheniya 20 noyabrya 2007 26 oktyabrya 2007 goda Ocherk Aleksandra Rastorgueva o poyavlenii Fortrana v Dubne neopr Data obrasheniya 22 yanvarya 2012 10 iyulya 2014 goda neopr Data obrasheniya 8 yanvarya 2012 Arhivirovano iz originala 17 marta 2012 goda Enciklopediya professora Fortrana Sutki net 2008 01 29 10 marta 2012 Data obrasheniya 11 iyunya 2013 Kirilenko Aleksandr 2009 09 07 Estoniya vvodit programmirovanie v shkolah nachinaya s mladshih klassov Noosfera 9 sentyabrya 2012 Data obrasheniya 11 iyunya 2013 LiteraturaFortran Programmer s Reference Manual The Fortran Automatic Coding System for the IBM 704 EDPM IBM Corp 1956 51 s Robert U Sebesta 2 3 Kompyuter IBM 704 i yazyk Fortran Osnovnye koncepcii yazykov programmirovaniya Concepts of Programming Languages Per s angl 5 e izd M 2001 S 63 69 672 s 5000 ekz ISBN 5 8459 0192 8 rus ISBN 0 201 75295 6 angl ISO IEC 1539 1 2010 Information technology Programming languages Fortran Part 1 Base language ISO IEC 1539 2 2000 Information technology Programming languages Fortran Part 2 Varying length character stringsSsylkiMediafajly na Vikisklade Professional Programmer s Guide to Fortran77 angl gfortran Kompilyator Fortrana 95 2003 2008 chast Kollekcii kompilyatorov GNU angl Statya Fortran v enciklopedii yazykov programmirovaniya rus
Вершина