Esempio n. 1
0
double mlt1(int t0,double solar_dec,double mlon,double *mslon) {
 
  double ret_val;
  double mslat1,mslat2,slon1,slon2,height;
  int err;
 
  if ((fabs(solar_dec-sol_dec_old)>0.1) || (sol_dec_old==0)) told=1e12;
  if (fabs(mslon2-mslon1)>10) told=1e12;
    
   if ((t0>=told) && (t0<(told+600))) {
    *mslon=mslon1+(t0-told)*(mslon2-mslon1)/600.0;
   } else {
    told=t0;
    sol_dec_old=solar_dec;

    slon1 = (43200.0-t0)*15.0/3600.0;
    slon2 = (43200.0-t0-600)*15.0/3600.0;

    height = 450;

    err=convert_geo_coord(solar_dec,slon1,height,&mslat1,&mslon1,0,4);
    err=convert_geo_coord(solar_dec,slon2,height,&mslat2,&mslon2,0,4);
    *mslon=mslon1;
  }

  
  ret_val = (mlon - *mslon) /15.0 + 12.0;
  if (ret_val >=24) ret_val -=24;
  if (ret_val <0) ret_val+=24;  
  return ret_val;
} 
Esempio n. 2
0
int AACGMConvert(double in_lat,double in_lon,double height,
                    double *out_lat,double *out_lon,double *r,
                    int flag){
     int err;
     err=convert_geo_coord(in_lat,in_lon,height,out_lat,out_lon,flag,10);
     *r=1.0;
     if (err !=0) return -1;
     return 0;
}
Esempio n. 3
0
double astmlt1(int t0,double solar_dec,double mlon,double *mslon) {
 
  double ret_val;

  /* double r; */

  double mslat1,mslat2,slon1,slon2,height;
  int err;
 
  if ((fabs(solar_dec-sol_dec_old)>0.1) || (sol_dec_old==0)) told=1e12;
  if (fabs(mslon2-mslon1)>10) told=1e12;
    
   if ((t0>=told) && (t0<(told+600))) {
    *mslon=mslon1+(t0-told)*(mslon2-mslon1)/600.0;
   } else {
    told=t0;
    sol_dec_old=solar_dec;

    slon1 = (43200.0-t0)*15.0/3600.0;
    slon2 = (43200.0-t0-600)*15.0/3600.0;

    height = 450;
    /*
    
      Should use the top AACGM conversion functions, but the 
      order of expansion is lower in the old version, so for now
      duplicate the old calculation using the internal call to 
      convert_geo_coord
    
      err=AACGMConvert(solar_dec,slon1,height,&mslat1,&mslon1,&r,0);
      err=AACGMConvert(solar_dec,slon2,height,&mslat2,&mslon2,&r,0);
    */

    err=convert_geo_coord(solar_dec,slon1,height,&mslat1,&mslon1,0,4);
    err=convert_geo_coord(solar_dec,slon2,height,&mslat2,&mslon2,0,4);

    *mslon=mslon1;
  }
  
  ret_val = (mlon - *mslon) /15.0 + 12.0;
  if (ret_val >=24) ret_val -=24;
  if (ret_val <0) ret_val+=24;  
  return ret_val;
}