==== Frühere Änderungen im Hauptzweig ==== ||'''Datum''' ||'''Datei''' ||'''Version''' ||'''Änderung''' || ||11.01.2006 ||bmix.f90 ||5.0 ||- neue sub. get_lower_bound_species (Interpolieren von species aus init-File für unterste Schicht)<
>- neue sub. add_to_species (Werte aus EDGAR Emissionsdateien zu species hinzufügen)<
>- Hauptprogramm verkürzt: Code in Subroutines ausgelagert || ||11.01.2006 ||bmix.inp_tmpl ||5.0 ||zusätzliche Angaben für EDGAR Dateien || ||11.01.2006 ||bmix.f90 ||5.1 ||Syntaxfehler (auf JUMP) korrigiert || ||16.01.2006 ||lib_mix.f90 ||4.3 ||- neue Funktion "theta2thetadelta"<
>- nicht mehr genutzte sub. "vert_interpolation" gelöscht || ||16.01.2006 ||bmix.f90 ||5.2 ||neue Routinen "zeta2alt" und "alt2zeta"; in sub. "add_to_species" wird "theta2thetadelta" und "zeta2alt" für die Berechnung eines Faktors genutzt || ||16.01.2006 ||Makefile ||3.19 ||qhull-Library muss nach utils-Library im Link-Pfad stehen || ||17.01.2006 ||bmix.f90 ||5.3 ||sub. add_to_species: Felder am Ende der Schleife freigeben (mit pgf90 nicht aufgefallen, aber Programm-Absturz auf dem JUMP!) || ||07.02.2006 ||bmix.f90 ||5.4 ||Das Bound-File für die oberste Schicht soll entweder 2-dimensionale Variablen (lat,time) oder 3-dimensionale Variablen (lat,lon,time) enthalten können. In sub. get_bound_species wird überprüft, ob "lon" als dritte Dimension vorhanden ist. Ist das der Fall, wird statt der Routine "interpol_time_grid" die neue Subroutine "interpol_time_grid_3d" für eine 3-dimensionale Interpolation aufgerufen. || ||20.02.2006 ||bmix.f90 ||5.5 ||sub. get_lower_bound_species: Es wird ein missing value gesetzt, wenn die Triangel nicht gefunden wurde. || ||20.03.2006 ||mix.f90 ||4.9 ||ohne Mischen: nthetas=0 an Ausgaberoutine übergeben! || ||28.03.2006 ||bmix.f90 ||5.6 ||in sub. replace_lower_layer: Sub. get_lower_bound_species wird nur bei Berücksichtung der Orographie (delta_theta>0) aufgerufen. || ||02.05.2006 ||bmix.f90 ||5.7 ||sub. replace_lower_layer: logische Var. "use_oro" zur korrekten Unterscheidung (mit/ohne Beruecksichtigung der Orographie); Bisher wurde auf delta_theta>0 abgefragt. Das war aber immer .true., da delta_theta bei nicht Berücksichtigung der Orographie auf theta_in_down-theta_down gesetzt wird! || ||29.05.2006 ||age.f90 ||5.1 ||neues Programm || ||29.05.2006 ||Makefile ||3.20 ||Compilation von "age" ergänzt || ||21.06.2006 ||bmix.f90 ||5.8 ||sub. replace_lower_layer: Aufruf von get_orography vor der Verzweigung (damit theta0 allociert ist) || ||22.11.2006 ||bmix.f90 ||5.9 ||Änderungen aus Seitenzweig (Version 5.7.2.5) eingefügt || ||23.11.2006 ||bmix.f90 ||5.10 ||Aufruf der neuen Wichtungsroutine determ_weight_new (utils:lib_interpol.f90) || ||23.11.2006 ||age.f90 ||5.2 ||Änderungen aus Seitenzweig (Version 5.1.2.1) eingefügt || ||01.12.2006 ||lib_io.f90 ||4.8 ||Änderungen aus Seitenzweig (Vers. 4.7.2.4) eingefügt || ||01.12.2006 ||dynmod: <
> types_m.f90 ||4.6 ||Änderungen aus Seitenzweig (Vers. 4.5.2.4) eingefügt || ||01.12.2006 ||dynmod: <
> ap_m_access.f90 ||4.9 ||Änderungen aus Seitenzweig (Vers. 4.8.2.3) eingefügt || ||01.12.2006 ||mix.f90 ||4.10 ||save_tp wird nicht mehr genutzt (s. Seitenzweig Vers. 4.9.2.2), sonst Probleme mit geänderten Ein-und Ausgaberoutinen || ||08.12.2006 ||cmdl/<
> make_bound_file.f90 ||1.2 ||Hiermit können die NOAA CMDL Files in ein NetCDF Boundary File konvertiert werden: Kopie aus Seitenzweig (1.1.2.2.) || ||08.12.2006 ||cmdl/<
> add_to_bound_files.f90 ||1.2 ||Hiermit können die nach Netcdf konvertierten NOAA CMDL Files um einen angegebenen Zeitraum erweitert werden: Kopie aus Seitenzweig (1.1.2.3) || ||08.12.2006 ||cmdl/<
> make_bound_file.inp_tmpl ||1.2 ||Kopie aus Seitenzweig (1.1.2.1) || ||08.12.2006 ||cmdl/<
> add_to_bound_files.inp_tmpl ||1.2 ||Kopie aus Seitenzweig (1.1.2.1) || ||08.12.2006 ||cmdl/<
> Makefile ||1.2 ||Makefile aus Seitenzweig (1.1.2.2) || ||11.12.2006 ||cmdl/<
> make_bound_file.inp_tmpl ||1.3 ||weitere Angaben (user, output filename) || ||12.12.2006 ||mix.f90 ||4.11 ||Erweiterungen aus dem Seitenzweig (4.9.2.8) eingebaut:<
> - 2 Faktoren + 2 Level <
> - Abbruch der Schleife "implicit mixing" wenn Anz. sich nicht mehr als vorgegeben verändert <
> - temporäre Ausgabedatei löschen <
> - GPL Header || ||12.12.2006 ||lib_mix.f90 ||4.4 ||GPL Header || ||12.12.2006 ||lib_io.f90 ||4.9 ||GPL Header || ||12.12.2006 ||mix.inp_tmpl ||3.1 ||- unnötige Angaben gelöscht (Bound-File, start/end-offset und save_temp) <
> - Zeile 6: Faktor1, Faktor2, Ober- und Untergrenze fuer ersten Faktor <
> - Zeile 8: Max. rel. Abweichung zwischen n und n_old fuer Abbruch der Schleife || ||12.12.2006 ||dynmod: ap_m_modify.f90 ||4.1 ||- function f_limit: abhängig vom Level Faktor1 od. Faktor2 (für max. Dist) benutzen <
> - sub. eliminate und new_point: temp und press entfernen || ||25.05.2007 ||mix.f90 ||4.12 ||zwei Probleme auf dem JUMP behoben:<
> - in Zeile 439: i => itheta<
>- temporäre Datei nur von 1. Prozessor löschen lassen || ||30.05.2007 ||mix.f90 ||4.13 ||Fehler auf JUMP gehoben:<
> geshiftete Level (grid_switch=1) wurden bei mehreren CPUs nicht korrekt ermittelt (die Hälfte des untersten Intervalls muss wieder subtrahiert werden!) || ||05.06.2007 ||bmix.f90 ||5.11 ||sub. get_vert_species: Boundfile fuer Nord-/Süd-Rand kann 3-dimensional sein (lon,theta,time) || ||02.07.2007 ||mix.f90 ||4.14 ||Benutzung von 30-Tage-Monaten möglich || ||18.09.2007 ||mix.f90 ||4.15 ||Aufruf von nc_write_ap_s mit "dates30" || ||18.09.2007 ||bmix.f90 ||5.12 ||Benutzung von 30-Tage-Monaten möglich || ||18.09.2007 ||dynmod: <
> ap_m_access.f90 ||4.11 ||sub. nc_write_ap_s: Optionalen Parameter "dates30" für 30-Tage-Monate ergänzt || ||21.09.2007 ||cmdl/<
> add_to_bound_files.f90 ||1.3 ||Erweitern der Daten in die Vergangenheit: <
> Es wird zusätzlich ein Startjahr eingelesen und ab diesem bis zu den vorhandenen Daten die Werte des ersten vorhandenen Jahres wiederholt. || ||21.09.2007 ||cmdl/<
> add_to_bound_files.inp_tmpl ||1.3 ||zusätzliche Angabe des Startdatums || ||24.09.2007 ||mix.f90 ||4.16 ||Warnung bei 30-Tage-Monaten ausgeben || ||24.09.2007 ||bmix.f90 ||5.13 ||Warnung bei 30-Tage-Monaten ausgeben || ||02.10.2007 ||bmix.f90 ||5.13 ||Tag "bmix-mit-edgar-files" gesetzt || ||02.10.2007 ||bmix.f90 ||5.14 ||CO-Update aus Edgar-Datenbank wird nicht mehr ausgeführt || ||02.10.2007 ||bmix.inp_tmpl ||5.1 ||Angaben zu Edgar-Files gelöscht;<
> Interpolation, wenn delta_theta>0 (Orographie), nur wenn "y" in letzter Zeile von bmix.inp angegeben ist || ||04.10.2007 ||bmix.f90 ||5.15 ||sub. alt2zeta und zeta2alt entfernt (wurde für Edgar-Dateien genutzt) || ||09.10.2007 ||Makefile ||3.21 ||für "age" werden nicht alle Libraries gelinkt || ||23.10.2007 ||replace_lbound.f90 ||5.1 ||neues Programm: Unteren Rand bis zu einem angegebenen Level mit Daten aus der angegebenen Datei ersetzen => z. B. Mopitt-Daten für unteren Rand bis 250K ersetzen (mit replace_lbound), aber ansonsten unteren Rand bis 75K ersetzen (mit bmix) (Aufgebaut wie pos_chem mit der Interpolation am unteren Rand wie in bmix) || ||23.10.2007 ||replace_lbound.inp_tmpl ||5.1 ||Template für replace_lbound.inp || ||23.10.2007 ||Makefile ||3.22 ||Programm replace_lbound ergänzt || ||26.11.2007 ||lib_io.f90 ||4.10 ||sub. get_lowest_layer: Feldüberschreitung in theta0 abgefangen (Es wird nur noch theta0(ilat,ilon) genutzt, nicht mehr die umliegenden Feldelemente) || ||30.11.2007 || || ||Absturz von bmix auf dem JUMP: ap_s_1(i)%ind wurde nicht initialisiert (nullify) || ||30.11.2007 ||bmix.f90 ||5.16 ||ap_s_1 wird jetzt in sub. get_lowest_layer allokiert (in der richtigen Größe) || ||30.11.2007 ||lib_io.f90 ||4.11 ||Feld ap_s_1 wird in der richtigen Größe allokiert (und nullify für pointer "ind") || ||04.12.2007 || || ||Absturz von bmix auf 64-Bit-Maschinen || ||04.12.2007 ||bmix.f90 ||5.17 ||Größe von ap_s_1 wird durch Aufruf von sub. get_nparts_lowest_layer ermittelt || ||04.12.2007 ||lib_io.f90 ||4.12 ||neue sub. get_nparts_lowest_layer, keine Allokierungen mehr in sub. get_lowest_layer (jetzt im HP) || ||10.12.2007 ||lib_io.f90 ||4.13 ||Absturz, wenn PV_INIT nicht in Bound-File vorhanden ist:<
> sub. nc_read_ap_s: PV_init immer mit Größe "nparts" allokieren || ||14.12.2007 ||bmix.f90 ||5.18 ||Absturz, wenn für unterstes Level Interpolation vom Init-File eingeschaltet wird:<
>sub. get_lower_bound_species: Dim. der Felder ap0_coor und ap1_coor angepaßt || ||17.12.2007 ||cmdl/<
> make_bound_file.f90 ||1.3 ||Erweiterungen für N2O- und F11-Daten: <
> - Ermittlung von ntimes geändert <
>- sub. read_species: umrechnen von ppm,ppb oder ppt || ||14.02.2008 ||cmdl/<
> add_to_bound_files.f90 ||1.4 ||nyeartimes angeben (NICHT berechnen) => Zeitangaben werden sonst evtl. zu ungenau || ||14.02.2008 ||cmdl/<
> make_bound_file.f90 ||1.4 ||Eingabedateien können mit Verzeichnis angegeben werden || ||15.02.2008 ||bmix.f90 ||5.19 ||Verwendung eines HCN Boundary-Files möglich || ||22.02.2008 ||Makefile ||3.23 ||lokale Testversion (unter $HOME/clams/utils) von utils-Library kann genutzt werden || ||22.02.2008 ||dynmod: Makefile ||4.6 ||lokale Testversion (unter $HOME/clams/utils) von utils-Library kann genutzt werden || ||03.03.2008 ||cmdl/data/* || ||Dateien unter cmdl/data eingecheckt || ||04.03.2008 ||cmdl/input_data/* || ||Dateien unter cmdl/input_data eingecheckt || ||04.03.2008 ||cmdl/<
> cats_f11.f90 ||1.1 ||F11-Dateien (unter cmdl/input_data) werden in das Format der CMDL-Files konvertiert (nach cmdl/data) || ||04.03.2008 ||cmdl/<
> cats_n2o.f90 ||1.1 ||N2O-Dateien (unter cmdl/input_data) werden in das Format der CMDL-Files konvertiert (nach cmdl/data) || ||04.03.2008 ||cmdl/<
> ccval.f90 ||1.1 ||ccmval-File (unter cmdl/input_data) wird in das Format der CMDL-Files konvertiert (nach cmdl/data) || ||07.03.2008 ||cmdl/<
> readme.txt ||1.1 ||Beschreibung der Boundfiles im Verzeichnis "data" und der Erstellung von Boundfiles für bmix aus diesen Dateien || ||10.03.2008 ||bmix.f90 ||5.20 ||Die Namen der zusätzlichen Boundfiles und die Spezies, die von diesen am oberen oder unteren Rand ersetzt werden sollen, werden von bmix.inp eingelesen. || ||10.03.2008 ||bmix.inp_tmpl ||5.2 ||Namen der Boundfiles können optional angegeben werden || ||14.03.2008 ||bmix.f90 ||5.21, 5.22 ||Kommentare in bmix.inp in Zeilen mit Boundfiles möglich || ||31.03.2008 ||lib_io.f90 ||4.14 ||Funktion get_nparts_lowest_layer und sub. get_lowest_layer: modulo(lon,360.) verwenden, damit immer lon<360. (sonst evtl. Absturz in bmix) || ||31.03.2008 ||ap_m_modify ||4.2 ||Function kart2ukmo: sicherstellen, dass lon<360. ist (sonst evtl. Absturz in bmix => Feldüberschreitung in lib_io.f90: get_nparts_lowest_layer) || ||07.04.2008 ||lib_io.f90 ||4.15 ||sub. nc_read_ap_s_0_info: spec_arr mit Leerstring vorbelegen || ||07.04.2008 ||bmix.f90 ||5.23 ||In den eingelesenen Bound-files wurde irrtümlich die einglesenen Werte aller Spezies am unteren Rand auf den unteren Bereich der ersten Spezies in spec_arr geschrieben <
> => in sub. get_bound_species: c_spec_arr nutzen (nicht globales Feld (spec_arr) überschreiben und an sub.interpol_time_grid[_3d] weitergeben <
> => sub. interpol_time_grid u. interpol_time_grid_3d: Position der aktuellen Spezies (in c_spec_arr) im globalen Feld "spec_arr" suchen || ||07.04.2008 ||lib_io.f90 ||4.16 ||Änderung aus 4.15 wieder rückgängig gemacht (sonst enthält Species im Ausgabedatensatz Kontrollzeichen ?!) || ||07.04.2008 ||bmix.f90 ||5.24 ||sub.interpol_time_grid: nur mit den ersten 10 Zeichen von spec_arr vergleichen. Da spec_arr nicht mehr vorbelegt wird (s. lib_io.f90), kann es nach der 10. Stelle Kontrollzeichen enthalten. || ||08.04.2008 ||bmix.f90 ||5.25 ||sub.interpol_time_grid_3d: wie sub. interpol_time_grid (s.07.04.) geändert || ||10.04.2008 ||bmix.f90 ||5.26 ||Testausgabe entfernt || ||06.05.2008 ||mix.f90 ||4.17 ||Aufruf der Funktion nc_set_new_history zum Erzeugen einer neuen History, die nur aus dem aktuellen Datum und dem Namen des Programmes (mix) besteht (Bisher wurde die History vom Init-File des Vortags kopiert und somit mit jedem Tag eines Clams-Laufes länger !) || ||19.05.2008 ||*.f90 || ||Tag "bmix-ohne-add" gesetzt (Version vor dem Branch "mix-mit-add" mit einer Testversion für Robert) || ||17.06.2008 ||cmdl/Makefile ||1.3 ||an Clams-Makefile-Struktur angepaßt (nutze mkincl) || ||26.06.2008 ||age.inp_tmpl ||5.1 ||Template für age.inp (bisher nur im Branch new-mix-test eingecheckt) || ||03.07.2008 ||mix.f90 ||4.18 ||Kontrollausgabe von spec_arr geändert || ||10.07.2008 ||bmix.f90 ||5.27 ||STATE für unteren/oberen Rand auf 10/11 setzen || ||27.10.2008 ||replace_lbound.f90 ||5.2 ||Es wird nicht mehr unterhalb eines angegebenen Zeta-Levels, sondern oberhalb eines angegebenen Druckniveaus (z.B. >=500hPa) ersetzt. Der untere Rand aus bmix (STATE=10) kann von der Ersetzung ausgenommen werden. || ||27.10.2008 ||replace_lbound.inp_tmpl ||5.2 ||In der 5. Zeile wird jetzt der Druck in hPa angegeben. Es gibt eine zusätzlich 6. Zeile, in der angegeben wird, ob die unterste Schicht ersetzt werden soll oder nicht. || ||06.04.2009 ||mix.f90 ||4.19 ||variable horizontale Auflösung möglich: <
> - sub. set_adapt_par: Bildschirmausgaben entfernt, unnötige Berechnungen entfernt, wenn R_GRID vorhanden ist, werden r_mean_h und r_mean_c entsprechend berechnet <
> - Komponenten von adapt_par umbenannt<
> - r_grid an Unterprogramme übergeben (nc_read_ap_s_0_info, nc_create_outfile, nc_write_ap_s) <
> - sub. set_adapt_par in Schleife über Theta-Level aufrufen (so dass r_mean_h und r_mean_c für jedes Level entspr. R_GRID gesetzt werden) || ||06.04.2009 ||bmix.f90 ||5.28 ||Gitter mit variabler horizontaler Auflösung einlesen und wieder ausgeben (Parameter r_grid an Einlese- und Ausgaberoutinen übergeben) || ||06.04.2009 ||lib_io.f90 ||4.17 ||sub. nc_read_ap_s_0_info: <
> - R_GRID einlesen (falls vorhanden) <
> - netcdf-Fehler mit nc_check_error überprüfen || ||06.04.2009 ||dynmod: types_m.f90 ||4.8 ||type adapt_set: Komponenten umbenannt und entfernt || ||06.04.2009 ||dynmod: ap_m_access.f90 ||4.12 ||sub. nc_write_ap_s: R_GRID ausgeben (falls vorhanden) || ||06.04.2009 ||dynmod: ap_m_modify.f90 ||4.3 ||- function f_limit: Komponenten von adapt_par umbenannt;<
>- sub. put_on_level: Zeilen für dim=4 auskommentiert ||