| 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 | 
|---|