Unvollständiges Ausschreiben sehr großer DMN-Dateien mit binärem Datenteil (in der Regel DTBA-Dateien)
offen- Betroffen
- LASAT bis 3.5.7
- Beschreibung
-
DMN-Dateien mit sehr großem binären Dateinteil (ungepackt größer als etwa 2.1 GB) werden unter Umständen bzw. mit Sicherheit (ungepackt größer als etwa 4.3 GB) nur unvollständig ausgeschrieben, ohne dass eine Fehlermeldung erfolgt. Das betrifft in aller Regel nur DTBA-Dateien (verwendet zur Berechnung von Perzentilen und Überschreitungshäufigkeiten, z.B. dtba000.dmna), die für viele Stoffe und viele vertikale Schichten (Nzd>1 oder nicht gesetzt in grid.def) erzeugt wurden.
Diese Dateien können anschließend von LASAT-JAVA-Routinen (zum Beispiel Lopxtr und IBJdis) nicht eingelesen werden, es erfolgt eine Fehlermeldung. Von LASAT-C-Routinen (zum Beispiel Lopqtl) werden sie nur unvollständig eingelesen, es erfolgt nicht notwendigerweise eine Fehlermeldung.
Die Größe des binären Dateinteils bemisst sich an der Byte-Länge eines Datenrecords und den Laufbereichen der Indizes i, j, k, l (nx, ny, nz, Anzahl Stoffe nl). Für DTBA-Dateien und Verwendung der Option MAXIMA in param.def beispielsweise beträgt die Länge des Datenrecords 224 Bytes (2 mal 28 Float-Zahlen zu je 4 Bytes, siehe Eintrag "size" im Dateikopf). Damit sollte nx*ny*nz*nl kleiner als (2^31-1)/224 bzw. rund 9.5*10^6 sein, um ein unvollständiges Ausschreiben auszuschließen. Bei beispielsweise 200 Maschen jeweils in x- und y-Richtung und 20 Stoffen sollte die Anzahl der ausgeschriebenen Vertikalintervalle auf kleiner als 12 gesetzt sein.
- Workaround
- Bei Bedarf die Anzahl der ausgeschriebenen Vertikalintervalle reduzieren (Nzd in grid.def, Nzd=1 ist der Standard bei mit AUSTAL erzeugten Dateien und in der Regel ausreichend) oder die Anzahl der Stoffe oder der Maschen reduzieren.