00001
00002
00003
00004 #ifndef _GRAINS_H_
00005 #define _GRAINS_H_
00006
00007
00008
00009
00011 void GrainDrive(void);
00012
00014 void GrainDrift(void);
00015
00017 void GrainZero(void);
00018
00020 void GrainStartIter(void);
00021
00023 void GrainRestartIter(void);
00024
00026 void SetNChrgStates(long);
00027
00029 long NewGrainBin(void);
00030
00032 void ReturnGrainBins(void);
00033
00035 void GrainsInit(void);
00036
00038 void GrainMakeDiffuse(void);
00039
00041 void qheat(double[],double[],long*,long);
00042
00044 void InitEnthalpy(void);
00045
00046 typedef struct {
00047 double dep;
00048 bool lgAbunVsDepth,
00049 lgForbidQHeating,
00050 lgGreyGrain,
00051 lgRequestQHeating;
00052 } GrainPar;
00053
00058 void mie_write_opc(const char*,const char*,long int);
00063 void mie_read_opc(const char*,GrainPar);
00073 void gauss_init(long int,double,double,double[],double[],double[],double[]);
00079 void gauss_legendre(long int,double[],double[]);
00090 void find_arr(double,double[],long int,long int*,bool*);
00091
00092 #endif