00001
00053
00054
00055
00056
00057
00058
00059 #ifndef _ATMOS_H
00060 #define _ATMOS_H
00061
00062 #include <stdio.h>
00063
00069 namespace atm {
00070
00074 enum ordint {
00075 FSEE,
00076 WSEE,
00077 ISP,
00078 M2,
00079 FHEFF,
00080 HEFF,
00081 TC,
00082 LAST
00083 } ;
00084
00086 enum atmwhat {
00087 ATMPAR,
00088 CN2PROF
00089 } ;
00090
00092 const bool HEAD = true ;
00093
00094
00095
00096
00097
00123 void init(
00124 int nchan, double diam, double *eps_inn, double *eps_out,
00125 double z0, double zmax, double dz, double dzmin,
00126 const char * responsefile) ;
00127
00152 int loadsed(const char * sedfile) ;
00153
00165 int checkwf(const char * wfile) ;
00166
00183 void calcwf(const char * wfile, void(* progress)(int)) ;
00184
00222 void update(const char * wfile, const char * checkfile,
00223 double zshift1, double zshift2) ;
00224
00231 void alloc(int nmeas) ;
00232
00243 void done() ;
00244
00245
00246
00247
00248
00257 double getval(ordint what) ;
00258
00267 double geterr(ordint what) ;
00268
00269
00279 int getncn2() ;
00280
00288 double getzcn2(int i) ;
00289
00301 double getcn2(int i) ;
00302
00303
00304
00305
00306
00334 void calcint(double * scind, double * scinds) ;
00335
00359 double calcn2(double * scind, double * scinds,
00360 double * e2scind, double * e2scinds, bool isfixed) ;
00361
00433 void avgint(double desi, double e2desi, double zdist) ;
00434
00461 void write(FILE * f, const char * stamp, atmwhat what, bool header = false) ;
00462
00470 double getavgint(int i) ;
00471
00479 double geter2int(int i) ;
00480
00481
00482
00483
00484
00486 const int NMODE = 2 ;
00487
00489 const double MINRELW = 1e-4 ;
00490
00493 const int MAXNBASE = 10 ;
00494
00497 const char USESHFT[] = "1100100000" ;
00498
00499
00500 const double POWSEE = 0 ;
00501 const double POWISP = 5/3. ;
00502 const double POWEFF = 1.0 ;
00503 const double POWISK = 2.0 ;
00508 const double HBOUND = 1.0 ;
00509
00511 const int NPOWER = 5 ;
00512
00515 enum poweridx {
00516 IFSE,
00517 IWSE,
00518 IISP,
00519 IEFF,
00520 IISK
00521 } ;
00522
00526 const double KS = 1.73588e+07 ;
00527
00531 const double KP = 0.000756348 ;
00532
00535 const double KT = 0.175 ;
00536
00538 const double DZCN2 = 1 ;
00539
00545 const char INTFMT[][8] = {"%s%6.3f","%s%6.3f","%s%6.3f","%s%8.2e","%s%5.0f",\
00546 "%s%5.0f","%s%5.2f"} ;
00547
00549 const char INTDLM[] = " " ;
00550
00552 const char ALTFMT[] = "%s%2.0f" ;
00553
00555 const char CN2FMT[] = "%s%8.2e" ;
00556
00557 }
00558 #endif