| 1 | #ifndef  NBGENE_H_SEEN  
 | 
|---|
| 2 | #define  NBGENE_H_SEEN  
 | 
|---|
| 3 | 
 | 
|---|
| 4 |   
 | 
|---|
| 5 | #ifdef __cplusplus
 | 
|---|
| 6 | 
 | 
|---|
| 7 | #ifdef  FLAG_MAIN_NBSREAD
 | 
|---|
| 8 | #define  EXTERN 
 | 
|---|
| 9 | #else
 | 
|---|
| 10 | #define  EXTERN  extern
 | 
|---|
| 11 | #endif
 | 
|---|
| 12 | 
 | 
|---|
| 13 | #else
 | 
|---|
| 14 | 
 | 
|---|
| 15 | #define  EXTERN 
 | 
|---|
| 16 | 
 | 
|---|
| 17 | #endif
 | 
|---|
| 18 | 
 | 
|---|
| 19 | /* structure de definition du montecarlo */
 | 
|---|
| 20 | struct  montecarlo {
 | 
|---|
| 21 |   /* flag montecarlo et tailles finies */
 | 
|---|
| 22 |   int montecar,Taille_Finie,Blending;
 | 
|---|
| 23 |   /* initialisation aleatoire */
 | 
|---|
| 24 |   int_4 iseed1,iseed2,iseed3;
 | 
|---|
| 25 |   /* nbre engendre, nbre a engendrer par etoile */
 | 
|---|
| 26 |   int NGene,NGenStar;
 | 
|---|
| 27 |   /* nbre points amplifies, nombre points amplifies avec taille finie */
 | 
|---|
| 28 |   int NPoints_ampli,NPoints_ampli_tf,Net_ampli_tf;
 | 
|---|
| 29 |   /* ampli maxi ponctuelle, tf, coupure en amplification (apres=1.), blend */
 | 
|---|
| 30 |   float A0MaxPt,A0Max,Usu0_Cut,A0Max_blend[NCOULMX];
 | 
|---|
| 31 |   /* u0 initialisation, bornes min et max, simule */
 | 
|---|
| 32 |   float U0SimI,U0MinI,U0MaxI,U0Sim;
 | 
|---|
| 33 |   float (*TireU0)(float x);
 | 
|---|
| 34 |   /* t0 initialisation, bornes min et max, simule */
 | 
|---|
| 35 |   double T0SimI,T0MaxI,T0MinI,T0Sim;
 | 
|---|
| 36 |   double T0MaxI_eff,T0MinI_eff;
 | 
|---|
| 37 |   float (*TireT0)(float x);
 | 
|---|
| 38 |   /* tau initialisation, bornes min et max, simule (cas ponctuel) */
 | 
|---|
| 39 |   float TauSimI,TauMinI,TauMaxI,TauSim;
 | 
|---|
| 40 |   float (*TireTau)(float x);
 | 
|---|
| 41 |   /* U initialisation, bornes min et max, simule (cas ponctuel) */
 | 
|---|
| 42 |   float USimI,UMinI,UMaxI,USim;
 | 
|---|
| 43 |   float (*TireU)(float x);
 | 
|---|
| 44 |   /* cas du blending 1ere et 2sd etoiles */
 | 
|---|
| 45 |      /* fct de generation des parametres du blending */
 | 
|---|
| 46 |   void (*Get_Par_Blending)(void);
 | 
|---|
| 47 |      /* flux, coeff de blending et calib etoile principale */
 | 
|---|
| 48 |   float fmc1[NCOULMX],coeff_Arec1[NCOULMX];
 | 
|---|
| 49 |   STARCALU starcal1;
 | 
|---|
| 50 |      /* flux, coeff de blending et calib etoile secondaire */
 | 
|---|
| 51 |   float fmc2[NCOULMX],coeff_Arec2[NCOULMX];
 | 
|---|
| 52 |   STARCALU starcal2;
 | 
|---|
| 53 |      /* type (SP ou GR) des etoiles du couple blending */
 | 
|---|
| 54 |   int type1,type2;
 | 
|---|
| 55 | };
 | 
|---|
| 56 | typedef struct montecarlo MONTECARLO;
 | 
|---|
| 57 | 
 | 
|---|
| 58 | EXTERN MONTECARLO mc;
 | 
|---|
| 59 | EXTERN int ANNEE_OBS;
 | 
|---|
| 60 | 
 | 
|---|
| 61 | #ifdef __cplusplus
 | 
|---|
| 62 | extern "C" {
 | 
|---|
| 63 | #endif
 | 
|---|
| 64 | int Give_Annee_Obs(int lp);
 | 
|---|
| 65 | float Rayon_SP_Th(float magv);
 | 
|---|
| 66 | void AMPLML(int io);
 | 
|---|
| 67 | double ampli_ponct(double u);
 | 
|---|
| 68 | double ampli_tf(double u,double U,int Nseq);
 | 
|---|
| 69 | double u0_ponct(double A);
 | 
|---|
| 70 | double u0_tf(double A,double U,double prec,int *niter,double *Afinal);
 | 
|---|
| 71 | #ifdef __cplusplus
 | 
|---|
| 72 | }
 | 
|---|
| 73 | #endif
 | 
|---|
| 74 | 
 | 
|---|
| 75 | #endif
 | 
|---|