ESMF (Earth System Modeling Framework) je program pro vytváření vysoce výkonné, flexibilní softwarovou infrastrukturu zvýšit snadnost použití, přenositelnost výkon, interoperability a opakovaného použití v prostředí, předpovědi počasí, numerické asimilace dat, ESMF definuje architekturu pro vytváření komplexních, spolu modelování systémů a obsahuje datové struktury a nástroje pro rozvoj jednotlivých modelů.
Základní myšlenkou je, že ESMF složité žádosti by měly být rozděleny na menší kousky, nebo komponentů. Součástí je jednotka softwaru kompozice, která má koherentní funkce a standardní volání rozhraní a chování. Komponenty mohou být sestaveny vytvořit více aplikací, a různé implementace komponenty mohou být k dispozici. V ESMF, složka může být fyzický domény, nebo funkce, jako je vazební člen nebo I / O systému.
ESMF také zahrnuje sady nástrojů pro stavební komponenty a aplikace, jako je například regridding softwaru, správu kalendáře, těžba dřeva a zpracování chyb, a paralelní komunikace.
Obrázek níže ukazuje ESMF komponenty v praxi. To je diagram struktury NASA GEOS-5 atmosférický oběhu model, postavený od základu pomocí ESMF. Každá z krabic je složkou ESMF, včetně vazebních členů. Hierarchického stromu komponent může být "stříhaným" na různých úrovních, takže fyzika balíček celek by mohly být nahrazeny, nebo jeden parametrizace. Každá část je potenciálně "swap".
Vlastnosti :
- 90 interface Full Fortran, částečná C / C ++ rozhraní
- Fortran 90 referenční příručka a uživatelská příručka
- Běží na většině vysoce výkonných paralelní počítačových platforem, včetně IBM, mnoho Linux variant, Cray, Compaq, více (viz zde pro úplný seznam)
- Podpora MPI, OpenMP a hybridní uživatelské kódy
- 2500+ testy svázaný s distribucí zdrojovým
- uživatelská podpora zdarma
- aktivní uživatele
- Nástavba pro systémové komponenty spojovací Země:
- Component, státní a software spojka, která obaluje kód uživatele s minimální režií
- Jednoduché ovladače, které uživatelé mohou upravit
- sekvenční nebo souběžné provedení komponentů
- Single spustitelný schopnost
- Limited více spustitelný schopnost
- Infrastruktura pro stavební komponenty systému Země:
- Time Manager, který zahrnuje Gregorian, 360 dnů, ne-skok, Julian a další kalendáře, stejně jako široká škála časových funkcí
- Datové struktury pro skladování a manipulaci s polí, polí, a svazky pole na stejné síti.
- Paralelní datové komunikace a regridding software
- zaznamenávat zprávy nástroje
- Správce souborů Resource
Co je nového v této verzi:
- prodloužení fault-tolerant na ESMF_GridComp a ESMF_CplComp rozhraní má byla provedena.
- četná vylepšení a opravy chyb.
Co je nového ve verzi 3.2.0r:
- Tato verze upravuje kód k tomu, aby zpětné kompatibility a přidává podporu pro CHZO 11.x překladače verze na Linux / PC a platformou Cray XT.
Co je nového ve verzi 3.1.0rp2:
- Byla přidána podpora pro replikovány rozměry v poli. & Quot; 0 & quot; zápis do gridToFieldMap argumentu v ESMF_FieldCreate () a ESMF_FieldSetCommit () ukazuje, že rozměr Grid není součástí oboru. Místo toho pole je replikována napříč všemi des podél odpovídající rozměr mřížky.
- Přetížené ESMF_FieldCreate (), přijmout ukazatel Fortran pole a zachovat jeho vlastnosti (jako jsou hranice a schopnost navrátit).
- Přetížené ESMF_FieldSetCommit (), přijmout ukazatel Fortran pole a zachovat jeho vlastnosti (jako jsou hranice a schopnost navrátit).
- Grid nyní podporuje možnost ESMF_INDEX_USER pro indexflag. To umožňuje uživateli explicitně nastavit dolní mez své místní index prostor. To je nutné při vytváření pole z Fortran pole ukazatel s nestandardním indexování.
- Přetížené ESMF_ArrayCreate (), přijmout ukazatel Fortran pole a zachovat jeho vlastnosti (jako jsou hranice a schopnost navrátit).
- optimalizovaný ESMF_ArraySMM () a ESMF_ArrayBundleSMM () výkon runtime, škálovatelnost a paměti.
- Byla přidána podpora pro optimalizaci komunikace pro pole s různým rozložením, rozměrů a velikostí ve stejném ArrayBundle.
- Byla přidána podpora pro des s nulovými prvky v DistGrid, Array a pole.
- Vyrobeno localDe argumentů volitelné v ESMF_ArrayGet () a ESMF_FieldGet () metody, kde není zakázáno přetížení omezení.
- Alarms nastavit, aby zvonil v timestep 0, po ESMF_ClockCreate (), nyní zvonit správně.
- Budíky teď zvoní správně na hodiny v ESMF_MODE_REVERSE.
- Budíky teď zvoní správně na Hodiny použití negativní timestep.
- Přidáno základní funkce, velikost ukazatele ovládání vybudovat systém, který využívá nové proměnné prostředí ESMF_F90_PTR_BASE_SIZE a ESMF_F90_PTR_PLUS_RANK.
Co je nového ve verzi 3.1.0rp1:.
- Přidáno atributy třídy Grid
- Přidáno atributy třídy Array.
- Added minIndex a maxIndex argumenty ESMF_GridGet (). Tyto argumenty se vztahují na první dlaždici.
- Added minIndexPDimPDe a maxIndexPDimPDe argumenty ESMF_DistGridGet ().
- Added ESMF_GridMatch () k porovnání dvou objektů roštu.
- nová sekce v uživatelské příručce s názvem & quot; Nastavení ESMF spustit testovací sady aplikací & quot; Přidá se, že naznačuje, jak mohou uživatelé zadat vlastní mpirun skripty. ESMF nyní důsledně používá nastavení proměnné prostředí ESMF_MPIRUN zahájit přibalené testovací sady a příklady aplikací.
- Následující známé chyby byly opraveny.
Metoda
Komentáře nebyl nalezen