/Users/huttone/Devel/sedflux-new/sedflux/trunk/ew/hydrotrend/hydrosetglobalpar.c

Go to the documentation of this file.
00001 /*
00002  *  HydroSetGlobalPar.c
00003  *
00004  *  Author:   A.J. Kettner (February 2003)
00005  *
00006  *
00007  * Variable             Def.Location    Type            Units   Usage
00008  * --------             ------------    ----            -----   -----
00009  * err                  various                 int                     -               error flag, halts program
00010  *
00011  */
00012 
00013 #include <stdlib.h>
00014 
00015 #include "hydrofree_mem.h"
00016 #include "hydroclimate.h"
00017 #include "hydroinout.h"
00018 #include "hydroparams.h"
00019 #include "hydrotimeser.h"
00020 #include "hydroalloc_mem.h"
00021 #include "hydroreadclimate.h"
00022 
00023 /*---------------------
00024  *  Start the program
00025  *---------------------*/
00026 int hydrosetglobalpar()
00027 {
00028         
00029 int err, verbose, dumint, i;
00030 char chs[120], dumchar;
00031 double dumlon, dumlat, dumlapserate;
00032 long counter;
00033 err = 0;
00034 dumlon = 0;
00035 verbose = 0;
00036 
00037 /*------------------------------------
00038  *  Start looking up lapserate value
00039  *------------------------------------*/
00040         if (lapserateflag == 1){        
00041                 if (verbose) printf("Opening %s... \n",fnamelapserate);
00042                 if ( (fidlapserate = fopen(fnamelapserate,"r")) == NULL) {
00043                         fprintf(stderr, "  HydroSetGlobalPar ERROR: Unable to open the lapserate table file %s \n",fnamelapserate);
00044                         exit(-1);
00045                 }
00046                 dumint = 5;
00047                 ep=0;
00048                 for (ep=0; ep<nepochs; ep++ ){
00049                         if (lon > 357.5)
00050                                 lon = 0.0;                      
00051                         fgets( chs, 120, fidlapserate );
00052                         fgets( chs, 120, fidlapserate );
00053                         sscanf( chs, "%li\n", &counter );
00054                         for (i=0; i<counter; i++)
00055                                 while ((dumlon < lon && dumint == 5) || (dumlat > lat && dumint == 5)) {
00056                                         fgets( chs, 120, fidlapserate );
00057                                         dumint = sscanf( chs, "%lf%c %lf%c %lf\n", &dumlon,&dumchar, &dumlat,&dumchar, &dumlapserate );
00058                                         if (dumlon >= lon)
00059                                                 while (dumlat > lat && dumint == 5){
00060                                                         fgets( chs, 120, fidlapserate );
00061                                                         dumint = sscanf( chs, "%lf%c %lf%c %lf\n", &dumlon,&dumchar, &dumlat,&dumchar, &dumlapserate );
00062                                 if (dumlat <= lat){
00063                                 lapserate[ep] = (dumlapserate / 1000.0);
00064                                 i = counter;
00065                                     }
00066                                 }                       
00067                                 }
00068                         if (dumint != 5){
00069                                 fprintf(stderr, "  HydroSetGlobalPar ERROR: In lapserate table file %s \n",fnamelapserate);
00070                                 fprintf(stderr, "     File is corrupt, Unable to read all the variables\n" );           
00071                                 err++;
00072                         }
00073                         rewind(fidlapserate);
00074                 }
00075                 fclose(fidlapserate);                           
00076         }
00077 
00078 /*-----------------------------------
00079  *  Start setting velocitypow value
00080  *-----------------------------------*/ 
00081         if (velpowflag == 1)
00082                 for (ep=0; ep<nepochs; ep++ )
00083                  if (velpow[ep] == -9999)
00084                         velpow[ep] = 0.1;
00085         
00086 /*------------------------------
00087  *  Start setting widpow value
00088  *------------------------------*/      
00089         if (widpowflag == 1)
00090                 for (ep=0; ep<nepochs; ep++ )
00091                         if (widpow[ep] == -9999)
00092                                 widpow[ep] = 0.5;
00093 
00094         for (ep=0; ep<nepochs; ep++ )
00095                 if ( widpowflag == 1 || velpowflag == 1){
00096                         depcof[ep] = 1/(velcof[ep]*widcof[ep]);
00097                         deppow[ep] = 1 - velpow[ep] - widpow[ep];
00098                 }
00099                         
00100         return (err);
00101 } /* end HydroSetGlobalPar.c */
00102 

Generated on Fri Jan 4 18:04:14 2008 for sedflux by  doxygen 1.5.2