## page was renamed from I3dChanges === Änderungen im Paket i3d === || 21.06.2004 || i3d || 1.8 und 1.9 || Aufruf von determ_weight bei großem äußeren Gitter sehr langsam (nur mit pgf90, nicht mit NAG!). => Änderung in sub. int3d: Vor Aufruf von determ_weight wir ein Hilfsfeld belegt und dieses dann übergeben. || || 27.09.2004 || i3d.f90 || 1.10 || sub. int3d: missing_values in den Daten (äußeres Gitter) werden abgefangen. Wenn einer der drei Datenwerte mdi ist, wird das zugehörige Gewicht auf die beiden anderen Gewichte (im Verhältnis dieser beiden Gewichte zueinander) verteilt. || || 27.09.2004 || lib_io.f90 || 1.9 || pos-Dateien können genutzt werden: <
> sub. nc_get_partg: "nparts" wird anders ermittelt <
> sub. nc_read_lfz_data: Einlesen von "time" od. "TIME_INIT" || || 24.03.2005 || lib_triang.f90 || 1.7 || Sub. find_triang: Evtl. Endlosschleife, wenn der aktuelle Punkt einem der Eckpunkte des Dreiecks entspricht. => Es wird zunächst überprüft, ob der akt. Punkt und einer der Eckpunkte identisch sind. Ist das der Fall, wird die Suche beendet. || || 24.03.2005 || lib_io.f90 || 1.12 || Sub. nc_get_npartg: Einlesen von pos-Files wieder möglich. (Die Anzahl der Punkte entspricht in diesem Fall der Dimension NPARTS, ansonsten time) || || 06.07.2005 || i3d.f90 || 1.13 || Vertikalkoordinate ZETA kann genutzt werden || || 06.07.2005 || lib_io.f90 || 1.13 || Vertikalkoordinate ZETA kann genutzt werden || || 06.10.2005 || lib_triang.f90 || 1.8 || sub. find_triang: Es wird verhindert, dass man in eine Endlosschleife läuft, indem nach 'dim_tr' Schritten die Suche abgebrochen wird (s. sedi) || || 29.11.2005 || || || Triangulationsroutinen werden aus utils-Library genutzt || || 29.11.2005 || lib_triang.f90 || 1.9 || gelöscht => Routinen werden aus utils-Library genutzt || || 29.11.2005 || i3d.f90 || 1.14 || Typdefinitionen so geändert, dass Triangulationsroutinen aus utils genutzt werden können; sub. set_coor aus lib_triang.f90 hierhin kopiert || || 29.11.2005 || lib_io.f90 || 1.14 || Nummerierung von ap_all (auf Komponente "no") wird nicht benötigt || || 29.11.2005 || global.f90 || 1.6 || Konstante max_nb ergänzt (max. Anz. angrenzender Triangeln) || || 29.11.2005 || types.f90 || 1.4 || nicht benötigte Typdefinitionen gelöscht || || 29.11.2005 || Makefile || 1.3 || lokales Module lib_triang nicht mehr nutzen || || 20.02.2006 || i3d.f90 || 1.15 || - Beim Aufruf von find_triang kann die max. Entfernung angegeben werden. <
> - Wird die Triangel nicht gefunden, wird in sub. int3d ein missing value gesetzt. || || 22.02.2006 || i3d.f90 || 1.16 || In der Schleife über alle Eingabedateien muss vor jedem "cycle" das Datum inkrementiert werden || || 08.03.2006 || i3d.f90 || 1.17 || Inkrementieren des Datums (1.16) korrigiert: Es wurde auch bei einem "cycle" in der inneren Schleife (über alle Theta-Level) irrtümlich das Datum inkrementiert || || 07.09.2006 || i3d.f90 || 1.18 || Wenn die falsche Triangel gefunden wird, wird mit einem anderen Startwert nochmals versucht, die richtige Triangel zu finden (=>erneuter Aufruf von find_triangle). Die Wahrscheinlichkeit, dass man ein "Randdreieck" findet und somit einen missing value setzen muss, sollte dadurch wesentlich geringer sein. || || 21.09.2006 || i3d.f90 || 1.19 || - benutze Routine type_of_data statt check_satdata <
> - Einlesen von Modelldaten (Aufruf von nc_read_model_data) ergänzt || || 21.09.2006 || lib_io.f90 || 1.15 || - neue Funktion type_of_data (statt check_satdata) zum Überprüfen des Filetyps <
> - sub. get_start_end_date: Startdatum> - sub. nc_get_npartg: Bestimmen der Anzahl Punkte für Trajektorienfiles zugefügt <
> - neue Subroutine nc_read_model_data zum Einlesen der Trajektoriendaten || || 17.10.2006 || i3d.f90 || 1.20 || für unterstes Level: Source-Code in if- und else-Zweig identisch => hinter die Verzweigung verschoben || || 08.11.2006 || lib_io.f90 || 1.16 || sub. type_of_data: Standardtyp=AIRCRAFT || || 22.11.2006 || i3d.f90 || 1.21 || Aufruf der neuen Wichtungsroutine determ_weight_new (utils: lib_interpol.f90) || || 22.11.2006 || lib_io.f90 || 1.17 || - sub. read_config_file: weitere Möglichkeit für Wichtung <
> - sub. nc_read_ap_s_info: lat_down, lat_up, r_coarse, r_high einlesen || || 22.11.2006 || global.f90 || 1.7 || Konstante earth_radius, Variablen lat_down, lat_up, r_coarse, r_high ergänzt; "weighted" vom Typ integer (bisher logical) || || 26.02.2007 || i3d.f90 || 1.22 ||- evtl. nur einen Init-File nutzen (mit bel. Datum) <
> - wenn keine Spezies angegeben: alle Spezies aus Init-File nutzen || || 26.02.2007 || lib_io.f90 || 1.18 und 1.19 || - sub. read_config_file: filename oder directory+prefix einlesen, ntags darf 0 sein (=alle Spezies aus init-file nutzen) <
> - neue sub. nc_get_all_tags: ermittle alle Spezies aus Init-File || || 26.02.2007 || global.f90 || 1.8 || Konstante für Stringlänge "strlen", logische Variable "one_file" ergänzt || || 26.02.2007 || i3d.inp_tmpl || 1.2 || zusätzliche Zeile, mit der Angabe, ob eine Init-Datei genutzt werden soll (y/n) -> Entsprechend muss entweder eine Zeile mit dem Dateinamen oder zwei Zeilen mit dem Verzeichnisnamen und dem Prefix folgen || || 26.02.2007 || i3d.inp_tmpl1 || 1.1 || zweites Beispiel für Konfigurationsdatei || || 13.03.2007 || lib_io.f90 || 1.20 und 1.21 || sub. nc_write_interpol: THETA_GRID und THETA_DELTA (wenn vorhanden) auf Ausgabedatei kopieren || || 14.03.2007 || lib_io.f90 || 1.22 || sub. nc_write_interpol: <
> - SPECIES ausgeben <
> - für Modelldaten (datatype=MODEL): Dimension NPARTS (statt wie bisher time), Variable TIME_INIT (bisher time), Variable time mit einer Zeit ausgeben <
> => Ausgabedatei entspricht einer Init-Datei ! || || 04.05.2007 || || || i3d erzeugt sehr viel Bildschirm-Output, wenn Triangeln nicht gefunden werden => Warnings sollten sich optional ausschalten lassen || || 04.05.2007 || global.f90 || 1.9 || logical ctrl_out hinzugefügt || || 04.05.2007 || lib_io.f90 || 1.23|| sub. read_config_file: Ausgabe von Warnings lassen sich über i3d.inp ausschalten || || 04.05.2007 || i3d.f90 || 1.23 || Aufruf von find_triangle: Warnings lassen sich ausschalten || || 04.05.2007 || i3d.inp_tmpl || 1.3 || zusätzliche Zeile am Ende (zum Ausschalten der Warnings) möglich || || 04.05.2007 || || || =>sub. find_triangle in lib_triangulate.f90 (utils-Library) geändert! || || 15.05.2007 || i3d.f90 || 1.24 || Bei einem angegebenen Init-File (mit bel. Datum) die Uhrzeit aus Init-Filenamen für Ausgabe-Filenamen verwenden || || 18.06.2007 || lib_io.f90 || 1.24 || Wenn vorhanden, wird NOONTHETA/NOONZETA eingelesen || || 22.02.2008 || Makefile || 1.4 || lokale Testversion (unter $HOME/clams/utils) von utils-Library kann genutzt werden || || 10.11.2008 || i3d.f90 || 1.25 || deallocates nur, wenn zuvor auch Speicher allokiert wurde (sonst Fehlermeldung, wenn gar keine Punkte gefunden wurden) || || 20.11.2008 || i3d.f90 || 1.26 || Berechnung von DELTA_GPH ergänzt || || 20.11.2008 || lib_io.f90 || 1.25 || Berechnung von DELTA_GPH ergänzt || || 21.11.2008 || types.f90 || 1.5 || Typ "datetype": Komponente "sec" ergänzt || || 21.11.2008 || lib_io.f90 || 1.26 || - sub. nc_get_all_tags: TRACER soll eingelesen werden, falls vorhanden <
> -s ub. nc_read_ap_s_info: Datum der Init-Datei merken || || 21.11.2008 || i3d.f90 || 1.27 || sub. int3d: "BA" anpassen || || 21.11.2008 || global.f90 || 1.10 || max_dist ergänzt || || 21.11.2008 || i3d.f90 || 1.28 || Variable max_dist nutzen (max. Entfernung zu Triangleecken): Angabe muss nur an einer Stelle (zu Programmbeginn) geändert werden || || 24.11.2008 || lib_io.f90 || 1.27 || TRACER nicht auf Feld SPECIES ausgeben || || 25.11.2008 || i3d.f90 || 1.29 || sub. int3d: Berechnung von BA korrigiert || || 11.05.2009 || lib_io.f90 || 1.28 || sub. nc_write_interpol: Wenn R_GRID im Eingabedatensatz vorhanden ist, wird es auf den Ausgabedatensatz kopiert || || 13.07.2010 || i3d.f90 || 3.0 || Unstetigkeiten behoben: <
> Es wird für jedes Level ein größerer Bereich eingelesen und sichergestellt, dass das Thetalevel zwischen dem unteren und dem oberen Dreieck liegt (Bisher konnte der Punkt auch oberhalb des oberen oder unterhalb des unteren Dreiecks liegen. In diesem Fall wurde nicht vertikal interpoliert, sondern der Wert auf Höhe des oberen bzw. unteren Dreiecks übernommen.) || || 13.07.2010 || lib_io.f90 || 3.0 || nur noch die neueste Wichtungsmethode wählbar || || 13.07.2010 || global.f90|| 3.0 || neue Versionsnummer, keine Änderung || || 13.07.2010 || types.f90 || 3.0 || neue Versionsnummer, keine Änderung || || 15.07.2010 || i3d.f90 || 3.1 || Änderung für Flugzeugdaten/Init-Files: Die Datei darf Punkte für mehr als einen Tag enthalten; es werden in der Schleife über alle Tage nur die Punkte des jeweiligen Tages bearbeitet (wie auch bei Satellitendaten) || || 15.07.2010 || lib_io.f90 || 3.1 || Änderung für Flugzeugdaten/Init-Files: Die Datei darf Punkte für mehr als einen Tag enthalten; es werden in der Schleife über alle Tage nur die Punkte des jeweiligen Tages bearbeitet (wie auch bei Satellitendaten): <
> - function check_satdata entfernt <
>Änderungen in folgenden Unterprogrammen: <
> - sub. get_start_end_date: <
> - sub. nc_get_npartg <
> - sub. nc_read_lfz_data || || 02.09.2010 || i3d.inp_tmpl || 1.4 || nur noch eine mögliche Wichtungsmethode || || 02.09.2010 || i3d.inp_tmpl2 || 1.3 || nur noch eine mögliche Wichtungsmethode || || 10.09.2010 || i3d.f90 || 3.2 || Punkte am unteren und oberen Rand extrapolieren (wurde nach Behebung der Unstetigkeiten in Vers. 3.0 nicht mehr gemacht): <
> sub. int3d: Punkte im untersten Level dürfen unterhalb des unteren Dreiecks und Punkte im obersten Level oberhalb des oberen Dreiecks liegen || || 10.03.2011 || lib_io.f90 || 3.2 || für 2d-Interpolation erweitert || || 10.03.2011 || i3d.f90 || 3.3 || für 2d-Interpolation erweitert || || 11.06.2012 || lib_i3d.f90 || 3.1 || Enthält sub. set_coor und int3d (werden von i3d und i3d_reg genutzt) || || 11.06.2012 || lib_io.f90 || 3.3 || sub. read_config_file und error_handler nach i3d.f90 verschoben || || 11.06.2012 || i3d.f90 || 3.4 || - sub. set_coor und int3d nach lib_i3d.f90 verschoben <
> - sub. read_config_file und error_handler aus lib_io.f90 ergänzt || || 11.06.2012 || i3d_reg.f90 || 3.1 || neues Programm: Interpolation von irregulärem Gitter auf ein reguläres || || 11.06.2012 || Makefile || 1.5 || neues Modul lib_i3d.f90; neues Programm i3d_reg || || 11.06.2012 || i3d_reg.inp_tmpl || 1.1 || Beispiel-Konfigurationsdatei für i3d_reg || || 12.06.2012 || i3d_reg.f90 || 3.2 || Zeiten für Berechn. von BA (js1,js2) korrigiert || || 04.04.2013 || lib_i3d.f90 || 3.2 || Vertikalinterpolation fuer Druck logarithmisch || || 08.09.2014 || i3d.f90 || 3.5 || Interpolation nicht immer um 12 Uhr, sondern zum Zeitpunkt der Eingabedaten || || 22.10.2014 || lib_io.f90 || 3.4 || - Lese NOONTIME <
> - nicht genutzte Variablen entfernt <
> - Kommentare ergänzt <
> - Zweig für Satelliten-Daten deaktiviert || || 22.10.2014 || i3d.f90 || 3.6 || Interpolation zum Zeitpunkt der Eingabedaten nur für Modelldaten, für Flugzeugdaten immer 12 Uhr || || 23.10.2014 || lib_i3d.f90 || 3.3 || Abfrage fuer BA auf neg. Werte erweitert || || 23.10.2014 || Makefile || 1.6 || alte Option für ifort entfernt||