ESMF (Earth System Modeling Framework) er et program til opbygning af højtydende, fleksibel software infrastruktur for at øge brugervenligheden, performance portabilitet, interoperabilitet, og genbruge i klima, numerisk vejrudsigter, data assimilation, The ESMF definerer en arkitektur for at komponere komplekse, kombineret modelleringssystemer og omfatter datastrukturer og hjælpeprogrammer til udvikling af de enkelte modeller.
Den grundlæggende idé bag ESMF er, at komplicerede ansøgninger skal brydes op i mindre stykker, eller komponenter. En komponent er en enhed af software sammensætning, der har en sammenhængende funktion, og en standard calling interface og adfærd. Komponenter kan samles for at skabe flere programmer, og forskellige implementeringer af en komponent kan være til rådighed. I ESMF kan en komponent være et fysisk domæne, eller en funktion, såsom en kobling, eller I / O-system.
ESMF også toolkits til at bygge komponenter og applikationer, såsom regridding software, kalender ledelse, logning og fejlhåndtering, og parallelle kommunikation.
Nedenstående figur viser ESMF komponenter i praksis. Det er et diagram over strukturen af NASA GEOS-5 Atmosfærisk General Circulation Model, bygget op fra bunden ved hjælp ESMF. Hver af kasserne er en ESMF komponent, herunder koblinger. Den hierarkiske træ komponenter kan "snipped" på forskellige niveauer, således at hele fysik pakke kan erstattes, eller en enkelt parametrisering. Hver komponent er potentielt "swappable."
Egenskaber :
- Fuld Fortran 90 interface, delvis C / C ++ grænseflade
- Fortran 90 Reference Manual og brugervejledning
- Kører på de fleste højtydende parallel computing platforme, herunder IBM, mange Linux-varianter, Cray, Compaq, mere (se her for komplet liste)
- Understøtter MPI, OpenMP og hybrid brugerkoder
- 2500 + tests bundtet med kilde fordeling
- Gratis brugersupport
- Aktiv bruger community
- Overbygning til kobling Earth systemkomponenter:
- Component, staten og Coupler software, der ombrydes brugerkode med minimal overliggende
- Enkel drivere, som brugerne kan ændre
- Sekventiel eller samtidig udførelse af komponenter
- Single eksekverbare kapacitet
- Limited flere eksekverbare kapacitet
- Infrastruktur til opbygning Earth systemkomponenter:
- Time Manager, der omfatter gregorianske, 360 dage, ingen spring, Julian, og andre kalendere, samt en bred vifte af tidsfunktioner
- datastrukturer til opbevaring og håndtering af Arrays, Fields, og bundter af felter på samme net.
- Parallel datakommunikation og regridding software
- Message logningsværktøjerne
- Resource filhåndtering
Hvad er nyt i denne udgivelse:
- En fejltolerant udvidelse til ESMF_GridComp og ESMF_CplComp interfaces har blevet gennemført.
- Talrige forbedringer og fejlrettelser.
Hvad er nyt i version 3.2.0r:
- Denne version ændrer koden til at aktivere bagudkompatibilitet og tilføjer understøttelse for BGB 11.x compiler version på Linux / PC og Cray XT platformen.
Hvad er nyt i version 3.1.0rp2:
- Tilføjet understøttelse af replikerede dimensioner i Field. A & quot; 0 & quot; post i gridToFieldMap argument ESMF_FieldCreate () og ESMF_FieldSetCommit () angiver, at en Grid dimension er ikke en del af feltet. I stedet Field replikeres på tværs af alle DES langs den tilsvarende Grid dimension.
- Overbelastede ESMF_FieldCreate () for at acceptere en Fortran række pointer og bevare dets egenskaber (såsom grænser og evne til at deallocate).
- Overbelastede ESMF_FieldSetCommit () for at acceptere en Fortran række pointer og bevare dets egenskaber (såsom grænser og evne til at deallocate).
- The Grid understøtter nu en ESMF_INDEX_USER option for indexflag. Dette giver brugeren mulighed for udtrykkeligt at angive den nedre grænse i deres lokale indeks plads. Dette er nødvendigt, når du opretter et felt fra et Fortran række pointer med ikke-standard indeksering.
- Overbelastede ESMF_ArrayCreate () for at acceptere en Fortran række pointer og bevare dets egenskaber (såsom grænser og evne til at deallocate).
- Optimeret ESMF_ArraySMM () og ESMF_ArrayBundleSMM () runtime performance, skalerbarhed og hukommelse brug.
- Tilføjet understøttelse af optimeret kommunikation for arrays med forskellige distributioner, dimensioner og størrelser i samme ArrayBundle.
- Tilføjet understøttelse af Des med nul elementer i DistGrid, Array og Field.
- Made localDe argument valgfri i ESMF_ArrayGet () og ESMF_FieldGet () metoder, hvor der ikke er forbudt ved overbelastning restriktioner.
- Alarmer sat til at ringe på tidsskridt 0 efter ESMF_ClockCreate (), nu ringer korrekt.
- Alarmer nu Ring ordentligt for en Ur i ESMF_MODE_REVERSE.
- Alarmer nu Ring ordentligt for et ur ved hjælp af en negativ tidsskridt.
- Tilføjet standard pointer størrelse overstyring funktion til at bygge systemet udnytte nye miljøvariabler ESMF_F90_PTR_BASE_SIZE og ESMF_F90_PTR_PLUS_RANK.
Hvad er nyt i version 3.1.0rp1:.
- Tilføjet attributter til Grid klasse
- Tilføjet attributter til Array klassen.
- Tilføjet minIndex og maxIndex argumenter til ESMF_GridGet (). Disse argumenter gælder for første flise.
- Tilføjet minIndexPDimPDe og maxIndexPDimPDe argumenter til ESMF_DistGridGet ().
- Tilføjet ESMF_GridMatch () metode til at sammenligne to Grid objekter.
- Et nyt afsnit i brugervejledningen titlen & quot; Opsætning ESMF at køre test suite Applikationer & quot; sattes der skitserer, hvordan brugerne kan angive deres egne mpirun scripts. ESMF nu konsekvent anvender indstillingen af miljøvariablen ESMF_MPIRUN at lancere de medfølgende test suite og eksempel programmer.
- Følgende kendte fejl er blevet rettet.
Kommentarer ikke fundet