začal jsem s Fortranem teprve nedávno a ani mi nejde o to, abych byl nějak moc zběhlý v programování, potřebuji pouze jednoduchý prográmek, který už skoro mám hotový, jediný problém, na který narážím (a v příručce, kterou mám je o tom napsáno příliš málo) je I/O funkce.
můžete mi někdo prosím vysvětli tohle?
pomocí OPEN otevřu existující soubor a potřebuji říct Fortranu, že data jsou ve formátu např:
154548.45454
154515.5454
45445.545454
můžete mi někdo vysvětlit formátování ve fortranu?
To je docela komplikovane, uvod je treba na www.cs.mtu.edu/~shene/COURSES/cs201/NOTES/chap05/format.html, nebo hledejte "fortran format"
Uvedeny priklad pokud bude volan prikazem write by mel tusim posunout o jeden znak, vypsat 'Stock is', vypsat integer se sirkou 4 znaky, vypsat kompletni string ktery se mu zada, vypsat 'at', vypsat realne cislo v sirce osm znaku se dvema cislicemi za desetinou carkou a vypsat 'each'. Zkusenejsi necht me prosim opravi.
Nejjednodušší je načítat pomocí tzv. volného formátu, tedy
open(10,file='soubor.txt',action='read')
...
read(10,*) realna_promenna, realna_promenna2, ...
...
reálná proměnná může být i pole. V tomto režimu (formát je hvězdička) překladač
rozezná všechny možné typy formátování reálných a celých čísel co umí. Pokud
Nevim, jestli dobre chapu rozdil mezi dynamickym a automatickym polem, ale to dynamicke je umisteno v heapu, takze kdyz budu mit pole dost velke (trebas 2GB nebo i vic na 64-bit), tak ho musim udelat automaticky, protoze do heapu se nevleze?
Spis bych rekl, ze je to naopak (ale vychazim ze zkusenosti z Cecka apod. jazyku). Zasobnik byva docela maly, heap muze byt realokovat systemem do libovolne velikosti. Takze dynamicke pole by nemelo byt vlastne nijak omezene (asi se tam provadi klasicky malloc), ale automaticke by mohlo presahnout rozsah zasobniku.
Mate presny odhad. Pokud ve Fortranu pouzivate velka automaticka pole, tak nekdy pro dost velke vstupy program zacne padat z duvodu preteceni zasobniku. Dnesni prekladace jiz vetsinou maji volbu, ktera alokuje automaticka pole od urcite velikosti taky na heapu. Napr. EkoPath to ale resi tak, ze uz pri spusteni programu zkusi zvetsit stack na co nejvice.
ALLOCATE se obycejne implementuje pres malloc.
timto chci podekovat autorovi za toto predstaveni Fortranu.
Resim ted v zamestnani jednu ulohu, kdy je znalost fortranu 77 a 95 nezbytnou nutnosti a nikde jsem narychlo nesehnal zadny pouzitelny zdroj jak s fortranem rychle zacit.
Mam totiz za ukol predelat jednu uzivatelskou rutinu z fortranu 77 do 95, kdy se navic zmenila struktura jejiho volani. Zde jsem dostal explicitni odpovedi na otazky, ktere jsem si zodpovedel jen intuitivne a ne vzdy zcela presne.
Tento serial svou ulohu plni na jednicku a doufam, ze pristi dil nebude posledni ;-)!
Děkuji, ještě bude asi dva díly, pak mě čeká dovolená.
Nejlepší místo, kde online řešit problémy s Fortranem je Google diskuzní
skupina comp.lang.fortran (taky tam často chodím).
Můžete se klidně dotazovat i na můj email, ale to bude asi pomalejší.
Některé online materiály k Fortranu jsem uvedl v prvním díle; najdou se i další.
Případně je tu aktuální standard F2003, ale ten je samozřejmě velmi formální a
není úplně snadné se v něm vyznat.