00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef _PFSS_H
00021 #define _PFSS_H
00022
00023 #include <math.h>
00024 #include <stdlib.h>
00025 #include <stdio.h>
00026
00027 #ifndef DTOR
00028 #define DTOR (M_PI / 180.)
00029 #endif
00030
00031
00032
00033
00034
00035
00036 #define R0 1.0 // Photosphere
00037 #define RS 2.5 // Source surface
00038 #define RCP 2.5 // Cusp surface for HCCSSS
00039 #define RSS 15.0 // Source surface for HCCSSS
00040 #define R0RS (R0 / RS)
00041 #define R0RS2 (R0RS * R0RS)
00042
00043
00044
00045 #define STEP 0.005 // Step size in tracing
00046 #define MAXSTP 600 // Maximum step of field line tracing
00047
00048
00049
00050 #define BOX 40.0 // Search boundary (deg) for angular separation
00051 #define RSUN 6.955E5 // Solar radius in km
00052 #define PROPDIST (215.0 - RS) // Propagation distance from source surface to 1AU
00053 #define DAYSINCR 27.27526 // Days in a Carrington Rotation
00054 #define SECSINDAY 8.64E4 // Seconds in a day
00055 #define NSTEP 10 // Steps of propagation
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065 struct Grid {
00066 int np;
00067 int nt;
00068 int nr;
00069 float *ph;
00070 float *th;
00071 float *rr;
00072 };
00073
00074 struct CombinedCoeff {
00075 double *rrr;
00076 double *D_rrr;
00077 double *leg;
00078 double *D_leg;
00079 double *mgh;
00080 double *D_mgh;
00081 };
00082
00083 struct Point {
00084 float r;
00085 float t;
00086 float p;
00087 float x;
00088 float y;
00089 float z;
00090 };
00091
00092
00093
00094
00095
00096 struct FldLn {
00097 int num;
00098 int op_cl;
00099 float fte;
00100 float brss;
00101 float rr[MAXSTP];
00102 float tt[MAXSTP];
00103 float pp[MAXSTP];
00104 };
00105
00106
00107
00108
00109
00110 struct Gridsub {
00111 int np;
00112 int nt;
00113 double *time;
00114 float *b0;
00115 float *ph;
00116 float *th;
00117 };
00118
00119 #endif