2000-06-12 Stefan Buehler * arts-0-0-30 * lines_per_tgCreateFromLines: This method splits up the line list into sub-lists for each tag group. This is the place where the tag groups are applied to divide the line list! * lines_per_tg (type ARRAYofARRAYofLineRecord ): This stores the line lists for the individual tag groups. This will be input the absortion coefficient calculation. 2000-06-11 Stefan Buehler * arts-0-0-29 * Input Atmosphere stuff is 1D (so is RTE). Only the absorption coefficient calculation itself is already 2D, since this is practically no extra effort. Reason for 1D input: It is not enough to just read a list of profiles. They could be on different horizontal grids. In fact one must somehow specify the horizontal coordinate to do proper horizontal interpolation. * Added row and col functions which extract a row (or column) from a matrix. The output can be a vector or a matrix. For a matrix the first and the last row (or column) to extract have to be specified. I was really missing this, many times you have a function that can act on a vector, so you want to apply it to a row or column of your matrix. * Atm2dFromRaw1D: This method interpolates the raw atmospheric inputs onto the absorption grid. 2000-06-10 Stefan Buehler * arts-0-0-28 * The new compiler (g++-2.95.2) is more fuzzy about redeclaration of variables. Therefore all global variables had to be moved to two separate files. * Rearranged workspace and methods data, so that workspace.h, workspace.cc, and methods.cc contain only the data itself. * globals_1.cc: Global variables that do NOT depend on wsv.h. * globals_2.cc: Global variables that DO depend on wsv.h. * workspace_aux.cc: Auxiliary stuff that used to be in workspace.cc. * methods_aux.cc: Auxiliary stuff that used to be in methods.cc. * los.h: Declaration of the Los data type. Moved there from workspace.h * wsv_groups.h: Everything related to WSV groups. * wsv_aux.h: Auxiliary stuff for the workspace. * I do not get any warning messages. Patrick, do you still get them? 2000-06-09 Patrick Eriksson * arts-0-0-27 * Cleaned up the LOS functions and the corresponding parts of the user guide. Included functions to calculate total atmospheric transmisioion. * The compilation gives some warning messages. * The LOS starts now always in space. The case with the blackbody ground is not considered anymore. This made the functions simpler. * The LOS and RTE functions renamed (sorry about that). Functions giving spectra are now called yRte, and functions giving transmisiion yBl (Beer-Lambert). Made some functions for special cases where less workspace variables must be set. Some functions name: - los1d - los1dNoRefraction - los1dUpward - source1d - trans1d - yRte - yRteNoGround - yBl - yBlNoGround * The function startup added to AMI. 2000-06-01 Stefan Buehler * arts-0-0-26 * Added workspace variables: n_profiles, ptz, raw_vmr_profiles, t_and_all_vmrs * raw_vmr_profilesReadFromScenario: Added this method. It does just what the name says. * Changed standart data file extension from .a to .am (you can read this as `arts matrix' or as `array of matrix', as you like). The single a seems to be already in use by other programs. * Removed the WriteToNamedFile and ReadFromNamedFile methods. Now, there are only ReadFromFile and WriteToFile methods, which take a filename as a keyword parameter. You can give an empty string as the name, then the default name is chosen. It was simply too nerve-wracking to have to duplicate each and every IO function for these two cases. 2000-05-30 Stefan Buehler * arts-0-0-25 * What was version 24? * parser.cc: Fixed bug in SourceText::AdvanceChar(), which lead to the last line of the controlfile not being correctly parsed. Correctly treating the end of the file seems to be the biggest problem for the parser! Hope this works correctly now. * tag_groupsDefine: Added this workspace method. It sets the contents of the workspace variable tag_groups, which contains the available tag groups. A tag group can consist of several tag definitions, but contrary to the Bredbeck definition, they must all relate to the same species. The reason for this is that there will be one VMR profile associated with each tag group. The drawback is that there must be a tag group for each molecule you want to calculate absorption for. But I don't see another solution, somewhere it has to be defined which input data to use. I think one tag group = one input profile is the cleanest solution. * Discovered a nasty problem with strstream. Essentially, it does not work as I thought it did. Replaced by the future standard stringstream. Since stringstream is not yet part of EGCS, I have added the necessary files to the ARTS source code. The files are: sstream.h (contains also the contents of the original file sstream.cc) iotraits.h I got these files off the web: ftp://ftp.fmi.uni-konstanz.de/pub/algo/personal/kuehl/sstream-egcs.tgz. They are written by Dietmar Kuehl. * Replaced strstream by stringstream everywhere. Pure stringstream also seems to work not so well, so I always use either ostringstream or istringstream. 2000-05-23 Patrick Eriksson * arts-0-0-23 * Included present versions of the ARTS Matlab interface (AMI) and the user guide to the CVS distribution. * Updated AMI to handle new data format Present functionality of AMI Read and write files basic data files Call ARTS from Matlab Setting the MAtlab search path * Please note that the user guide is not up to data and does not match the present version of ARTS 2000-05-22 Stefan Buehler * arts-0-0-22 * ARTS can now read HITRAN catalogue files! * Methods: linesReadFromHitran, linesWriteToNamedFile These methods are rather preliminary, because how they should act eventually depends on the rest of the absorption module. Anyway, I've tried to rather cleanly implement the capability to understand HITRAN in the utility function LineRecord::ReadFromHitranStream(istream& is) Yes, this is a member function of LineRecord, the data structure that stores spectro data for a single line. In the future, similar member functions can be added to read from JPL (setting widths to default values) and of course eventually from the native ARTS format. Of course, the program does not depend internally on any particular catalogue at all. In particular not on HITRAN. Rather, during the read-in, the HITRAN data is right away converted to the ARTS internal format. For now, this stuff seems to work fine. Ah yes, the line data is according to the recommendations given in the Bredbeck book. I've tried to document all formats and units as best as I can in the code directly. 2000-05-20 Stefan Buehler * arts-0-0-21 * Added species lookup data. I filled in the data only for H2O and O3, because I'm too lazy right now. Molecular masses: From looking at the table in forward_4_96, glob_def.c, the relative difference between the actual mass and the mass simply estimated from the Atom number is only 0.001. This seems not worth the trouble. Anyway, the field for the mass is there. Should anybody feel like adding the true numbers, just go ahead. 2000-05-15 Stefan Buehler * math_funcs.cc: Bug fix in void to_vector(VECTOR& x, const MATRIX& W) 2000-05-12 Stefan Buehler * arts-0-0-20 * Added implementation of --workspacevariables (-w) command line option. * Put the handling of the more complex command line options (-r,-d,-m,-w) in subroutines. * Added command line option --groups (-g) which simply lists all wsv groups. * This means the command line options are complete for now. 2000-05-11 Stefan Buehler * arts-0-0-19 * Added the implementation of the --methods (-m) dommand line option. Seems to work beautifully! 2000-05-08 Stefan Buehler * arts-0-0-18 * Added the implementation of the --describe (-d) command line option. 2000-04-30 Stefan Buehler * arts-0-0-17 * Added the command line parameter --reporting (-r). This should be a two digit integer. The first digit specifies the output level for stdout (stderr for error messages), the second digit the output level for the report file. The levels can reach from 0 (show only error messages) to 3 (show everything). Example: 03 = only errors to the screen, everything to the file. * Added some other cool command line parameters. However, currently they only produce a message that the implementation is still lacking. These are: string methods: If this is given the argument `all', it simply prints a list of all methods. If it is given the name of a variable, it prints all methods that produce this variable as output. string workspacevariables: If this is given the argument `all', it simply prints a list of all workspace variables. If it is given the name of a method, it prints all variables needed by that method. string describe: Print the description string of the given workspace variable or method. 2000-04-29 Stefan Buehler * arts-0-0-16 * vecmat.h: Small changes to the text defining the allowed matrix/vector operations. (In one instance it said `MATRIX' where it probably should say `VECTOR'.) * file.h: Fixed a strange bug: When the last line of a textfile was not terminated by a newline character, it was read twice by read_text_from_stream. Learned the following: If the end of stream s is reached, first s.eof() becomes true, but s is still false. Only if one tries to read past the end does s become true. * Implemented ARRAYofMATRIX and ARRAYofVECTOR as standard types. In particular, these are also now types of workspace variables. Implemented IO functions for these: Output: ArrayOfMatrixWriteToFile, ArrayOfMatrixWriteToNamedFile, ArrayOfVectorWriteToFile, ArrayOfVectorWriteToNamedFile, Input: ArrayOfMatrixReadFromFile, ArrayOfVectorReadFromFile, The file format is now always that of ArrayOfMatrix. All other variables are treated as special cases with apropriate dimensions set to 1. Only a single real output and only a single real input function are used (that for ArrayOfMatrix). This means that other types have to be converted to this type before writing or after reading. This is not terribly efficient. Should there be performance or memory problems later on, then we have to write dedicated IO functions. The amount of code is probably about the same, just to me the real IO seemed more difficult than the conversions, hence I did it the way I did it. 2000-04-12 Patrick Eriksson * arts-0-0-15 * This version can produce spectra (without refraction). General functions to determine the LOS, to get transmission and the source function along the LOS and to solving the RTE along LOS are ready. * A first list on vector and matrix functionality written. It is found in vecmat.h. Some functions changed and added to match the stated functionality. * Some workspace variables added and some renamed. The variables are now VECTOR p_abs; VECTOR t_abs; VECTOR z_abs; VECTOR f_abs; MATRIX abs; VECTOR view1; Numeric z_plat; Numeric l_step; int refr; Numeric l_step_refr; VECTOR refr_index; Numeric z_ground; Numeric t_ground; VECTOR e_ground; Los los; MATARRAY source; MATARRAY trans; VECTOR y_space; VECTOR y; * Example on new method calls: y_spaceStd{1} y_spacePlanck{300} losBasic{} sourceBasic{} transBasic{} yGeneral{} 2000-04-10 Stefan Buehler * arts-0-0-14 * token.cc: Fixed small bug in definition of TokValTypeName. * reconf: Remove links before trying to re-configure. * arts-0-0-13 * Renamed token types to enum TokValType { string_t, int_t, Numeric_t, ARRAY_string_t, ARRAY_int_t, ARRAY_Numeric_t, undefined_t }; This is now consistent with the token type names in token.cc. * Removed Integer type, since it is no longer necessary. * notes.txt: Updated with respect to global constants. * notes.txt: Added howto about switching off optimization. * Everywhere: Changed const extern to extern const. This is just for nicety, the two are the same thing. * vecmat.h: Moved Patricks vector/scalar operations here from tnt/vec.h. * Compiling without optimization is really much much faster. I wish I had realized this before! 2000-04-06 Patrick Eriksson * arts-0-0-12 * Some methods are commented out due to compilation problems * Changed definitions of constant to e.g. extern const Numeric EARTH_RADIUS = 6.378e6; To use the constant, type extern const Numeric EARTH_RADIUS; I had to add extern also at the definition to get it to work. Stefan, is the text in notes.txt really correct? * Added doc++ text and file header to constants.cc and math_funcs.cc * Workspace types added (as temporary solution): Integer * Workspace variables added (or renamed): VECTOR z_abs; VECTOR view1; Numeric z_plat; Numeric l_step; Integer refr; Numeric l_step_refr; Integer cbgr; Numeric z_ground; Numeric t_ground; VECTOR e_ground; Los los; * Methods added: IntSet VectorSet VectorLinSpace VectorNLinSpace VectorNLogSpace losGeneral * Files included: m_los.cc atm_funcs.cc atm_funcs.h 2000-04-05 Stefan Buehler * arts-0-0-11 * Fixed the bugs reported by Patrick. This is not a running version of the program, because the file src/m_los.cc is missing! * parser.cc: Fixed bugs 1: The case with the optionally missing keyword for one parameter methods was not handled correctly. Now the current character is used to recognize this case. THIS MEANS THAT KEYWORD NAMES STARTING WITH A NUMBER WILL BREAK THE PARSER! I don't know a better solution without look-ahead. * parser.cc: Fixed bugs 2: The last method was executed twice in some cases, due to incorrect flagging of Eof in function SourceText::AdvanceChar. 2000-04-04 Patrick Eriksson * arts-0.0.10 * Set the ground to include los1d. Included the file m_los.cc. Introduced the workspace variables plat_z and view1 for test purposes. There will be more variables connected to los. Some bugs mailed to Stefan. 2000-04-04 Stefan Buehler * arts-0.0.9 * Added method losTest just to see if we can access los. This does not initialize los, just change the value. For a real method, this would be very bad style, it should re-set los completely, unless los is also specified as INPUT variable in methods.cc. * arts-0.0.8 * Added workspace variable group Los and workspace variable los on Patrick's request. The declaration of Los is now in file workspace.h, but it could be moved somewhere else in the future. * arts-0.0.7 * parser.cc: In void read_name(string& name, SourceText& text): Changed isalpha to isalnum, so that names may now also include numbers. This was a request of Patrick. I don't remember if I had a good reason to allow only alphabetic characters and underscores. Let's just see if we get any problems with this. * arts-0.0.6 * Quickly implemented NumericSet for Patrick * workspace.h: - Added Numeric_ in WsvGroup - Changed N_WSV_GROUPS to 3 - Added Numeric dummy to class WorkSpace - Added virtual operator Numeric*() { safety(); return NULL; }; in class WsvP * notes.txt !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! The last point above was missing in notes.txt. I have added it now. Sorry for that. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! * workspace.cc: - Added: wsv_group_names.push_back("Numeric"); - Added: { static WsvPointer p(&workspace.dummy); wsv_data.push_back (WsvRecord ("dummy", "This is just to test Numeric WSVs.", Numeric_, &p)); } * methods.cc: - Added: md_data.push_back ( MdRecord ( NAME("NumericSet"), DESCRIPTION("Sets a workspace variable of type Numeric to a value."), OUTPUT(), INPUT(), GOUTPUT(Numeric_), GINPUT(), KEYWORDS("value"), TYPES(num_))); * m_io.cc: - Added the implementation of NumericSet 2000-03-30 Stefan Buehler * arts-0.0.5 * ARTS has now the following methods: AllAbsExample VectorWriteToFile MatrixWriteToFile VectorWriteToNamedFile MatrixWriteToNamedFile VectorReadFromFile MatrixReadFromFile which all do the obvious. Parsing and executing of methods seems to work, but yet has to be tested for a wider variety of methods. Also, the executor already checks if all input workspace data is present, before it executes a method. * Added some more HowTos in file src/notes.txt 2000-03-29 Stefan Buehler * arts-0.0.4 * Now we can parse and execute specific and generic methods. However, I want to re-structure the method lookup data (add explicit fields for generic I/O, so that a method can have both generic and specific I/O). So this commit is mainly to save the state of the work before I start with this complicated task. 2000-03-24 Stefan Buehler * arts-0.0.3. * Arts can now parse specific (i.e., not generic) methods. There so far is only a single method, AllAbsExample, which sets the absorption parameters. * arts-0.0.2. * make_md_h.cc: Added. * math_funcs.h: Added. * math_funcs.cc: Added. * absorption.cc: Added. 2000-03-14 Stefan Buehler * This file contains SAB 14.03.2000. * arts-0.0.1. * .cvsignore files added everywhere. * Started this file, the Arts history. ALWAYS add a note to this file, no matter how small your change. Also, always update the running version number. Newest change log entries first! You can very easily add an entry with emacs by typing either M-x add-change-log-entry or C-x 4 a. Remark about version numbers: Arts has a 3 digit version number, like for example Arts 1.2.3. For user releases the third digit is zero. The first two digits are set in configure.in. Update these only when you cut a user release. In that case you also have to set the third digit to zero. The third digit is set in src/version.cc. Always update this, no matter how small your change!