diff --git a/src/MNH/ini_aircraft_balloon.f90 b/src/MNH/ini_aircraft_balloon.f90 index ba176c69a77b9d019fb4529faacf65484275a9da..996ff864d02dcd4377c45622680511f5cf74d0a6 100644 --- a/src/MNH/ini_aircraft_balloon.f90 +++ b/src/MNH/ini_aircraft_balloon.f90 @@ -153,47 +153,6 @@ ENDIF ! IF ( IMI == 1 ) THEN LFLYER=.FALSE. -! - CALL DEFAULT_FLYER(TBALLOON1) - CALL DEFAULT_FLYER(TBALLOON2) - CALL DEFAULT_FLYER(TBALLOON3) - CALL DEFAULT_FLYER(TBALLOON4) - CALL DEFAULT_FLYER(TBALLOON5) - CALL DEFAULT_FLYER(TBALLOON6) - CALL DEFAULT_FLYER(TBALLOON7) - CALL DEFAULT_FLYER(TBALLOON8) - CALL DEFAULT_FLYER(TBALLOON9) -! - CALL DEFAULT_FLYER(TAIRCRAFT1) - CALL DEFAULT_FLYER(TAIRCRAFT2) - CALL DEFAULT_FLYER(TAIRCRAFT3) - CALL DEFAULT_FLYER(TAIRCRAFT4) - CALL DEFAULT_FLYER(TAIRCRAFT5) - CALL DEFAULT_FLYER(TAIRCRAFT6) - CALL DEFAULT_FLYER(TAIRCRAFT7) - CALL DEFAULT_FLYER(TAIRCRAFT8) - CALL DEFAULT_FLYER(TAIRCRAFT9) - CALL DEFAULT_FLYER(TAIRCRAFT10) - CALL DEFAULT_FLYER(TAIRCRAFT11) - CALL DEFAULT_FLYER(TAIRCRAFT12) - CALL DEFAULT_FLYER(TAIRCRAFT13) - CALL DEFAULT_FLYER(TAIRCRAFT14) - CALL DEFAULT_FLYER(TAIRCRAFT15) - CALL DEFAULT_FLYER(TAIRCRAFT16) - CALL DEFAULT_FLYER(TAIRCRAFT17) - CALL DEFAULT_FLYER(TAIRCRAFT18) - CALL DEFAULT_FLYER(TAIRCRAFT19) - CALL DEFAULT_FLYER(TAIRCRAFT20) - CALL DEFAULT_FLYER(TAIRCRAFT21) - CALL DEFAULT_FLYER(TAIRCRAFT22) - CALL DEFAULT_FLYER(TAIRCRAFT23) - CALL DEFAULT_FLYER(TAIRCRAFT24) - CALL DEFAULT_FLYER(TAIRCRAFT25) - CALL DEFAULT_FLYER(TAIRCRAFT26) - CALL DEFAULT_FLYER(TAIRCRAFT27) - CALL DEFAULT_FLYER(TAIRCRAFT28) - CALL DEFAULT_FLYER(TAIRCRAFT29) - CALL DEFAULT_FLYER(TAIRCRAFT30) END IF ! !---------------------------------------------------------------------------- @@ -305,53 +264,6 @@ CONTAINS ! !---------------------------------------------------------------------------- !---------------------------------------------------------------------------- -SUBROUTINE DEFAULT_FLYER(TPFLYER) -! -CLASS(TFLYERDATA), INTENT(OUT) :: TPFLYER -! -! -TPFLYER%NMODEL = 0 -TPFLYER%MODEL = 'FIX' -TPFLYER%TYPE = ' ' -TPFLYER%TITLE = ' ' -TPFLYER%LAUNCH = TPDTSEG -TPFLYER%CRASH = .FALSE. -TPFLYER%FLY = .FALSE. -! -TPFLYER%TFLYER_TIME%XTSTEP = 60. ! s -! -SELECT TYPE ( TPFLYER ) - CLASS IS ( TAIRCRAFTDATA ) - TPFLYER%SEG = 0 - TPFLYER%SEGCURN = 1 - TPFLYER%SEGCURT = 0. - TPFLYER%ALTDEF = .FALSE. - - CLASS IS ( TBALLOONDATA ) - TPFLYER%LAT = XUNDEF - TPFLYER%LON = XUNDEF - TPFLYER%XLAUNCH = XUNDEF! X coordinate of launch - TPFLYER%YLAUNCH = XUNDEF! Y coordinate of launch - TPFLYER%ALT = XUNDEF - TPFLYER%WASCENT = 5. ! m/s - TPFLYER%RHO = XUNDEF - TPFLYER%PRES = XUNDEF - TPFLYER%DIAMETER= XUNDEF - TPFLYER%AERODRAG= XUNDEF - TPFLYER%INDDRAG = XUNDEF - TPFLYER%VOLUME = XUNDEF - TPFLYER%MASS = XUNDEF - -END SELECT -! -TPFLYER%X_CUR = XUNDEF -TPFLYER%Y_CUR = XUNDEF -TPFLYER%Z_CUR = XUNDEF -TPFLYER%P_CUR = XUNDEF -! -END SUBROUTINE DEFAULT_FLYER -!---------------------------------------------------------------------------- -!---------------------------------------------------------------------------- SUBROUTINE ALLOCATE_FLYER(TPFLYER) ! ! diff --git a/src/MNH/modd_aircraft_balloon.f90 b/src/MNH/modd_aircraft_balloon.f90 index eb35a5c24a28aa790a9d7ceb0521c7cc18abf153..ea5b7e418e3fd51ca153dd9dc75b3114fb36c169 100644 --- a/src/MNH/modd_aircraft_balloon.f90 +++ b/src/MNH/modd_aircraft_balloon.f90 @@ -41,6 +41,7 @@ ! ------------ ! ! +use modd_parameters, only: XUNDEF USE MODD_TYPE_STATPROF, ONLY: TSTATPROFTIME use modd_type_date, only: date_time @@ -48,37 +49,37 @@ implicit none !------------------------------------------------------------------------------------------- ! -LOGICAL :: LFLYER ! flag to use aircraft/balloons +LOGICAL :: LFLYER ! flag to use aircraft/balloons ! TYPE :: TFLYERDATA ! !* general information ! - CHARACTER(LEN=3) :: MODEL ! type of model used for each balloon/aircraft - ! 'FIX' : NMODEL used during the run - ! 'MOB' : change od model depends of the - ! balloon/aircraft location - INTEGER :: NMODEL ! model number for each balloon/aircraft - CHARACTER(LEN=6) :: TYPE ! flyer type: - ! 'RADIOS' : radiosounding balloon - ! 'ISODEN' : iso-density balloon - ! 'AIRCRA' : aircraft - ! 'CVBALL' : Constant Volume balloon - CHARACTER(LEN=10) :: TITLE ! title or name for the balloon/aircraft - TYPE(DATE_TIME) :: LAUNCH ! launch/takeoff date and time - LOGICAL :: CRASH ! occurence of crash - LOGICAL :: FLY ! occurence of flying + CHARACTER(LEN=3) :: MODEL = 'FIX' ! type of model used for each balloon/aircraft + ! 'FIX' : NMODEL used during the run + ! 'MOB' : change od model depends of the + ! balloon/aircraft location + INTEGER :: NMODEL = 0 ! model number for each balloon/aircraft + CHARACTER(LEN=6) :: TYPE = '' ! flyer type: + ! 'RADIOS' : radiosounding balloon + ! 'ISODEN' : iso-density balloon + ! 'AIRCRA' : aircraft + ! 'CVBALL' : Constant Volume balloon + CHARACTER(LEN=10) :: TITLE = '' ! title or name for the balloon/aircraft + TYPE(DATE_TIME) :: LAUNCH ! launch/takeoff date and time + LOGICAL :: CRASH = .FALSE. ! occurence of crash + LOGICAL :: FLY = .FALSE. ! occurence of flying ! !* storage monitoring ! - TYPE(TSTATPROFTIME) :: TFLYER_TIME ! Time management for flyer + TYPE(TSTATPROFTIME) :: TFLYER_TIME ! Time management for flyer ! !* current position of the balloon/aircraft ! - REAL :: X_CUR ! current x - REAL :: Y_CUR ! current y - REAL :: Z_CUR ! current z (if 'RADIOS' or 'AIRCRA' and 'ALTDEF' = T) - REAL :: P_CUR ! current p (if 'AIRCRA' and 'ALTDEF' = F) + REAL :: X_CUR = XUNDEF ! current x + REAL :: Y_CUR = XUNDEF ! current y + REAL :: Z_CUR = XUNDEF ! current z (if 'RADIOS' or 'AIRCRA' and 'ALTDEF' = T) + REAL :: P_CUR = XUNDEF ! current p (if 'AIRCRA' and 'ALTDEF' = F) ! !* data records ! @@ -122,9 +123,9 @@ TYPE, EXTENDS( TFLYERDATA ) :: TAIRCRAFTDATA ! !* aircraft flight definition ! - INTEGER :: SEG ! number of aircraft flight segments - INTEGER :: SEGCURN ! current flight segment number - REAL :: SEGCURT ! current flight segment time spent + INTEGER :: SEG = 0 ! number of aircraft flight segments + INTEGER :: SEGCURN = 1 ! current flight segment number + REAL :: SEGCURT = 0. ! current flight segment time spent REAL, DIMENSION(:), POINTER :: SEGLAT => NULL() ! latitude of flight segment extremities (LEG+1) REAL, DIMENSION(:), POINTER :: SEGLON => NULL() ! longitude of flight segment extremities (LEG+1) REAL, DIMENSION(:), POINTER :: SEGX => NULL() ! X of flight segment extremities (LEG+1) @@ -135,26 +136,26 @@ TYPE, EXTENDS( TFLYERDATA ) :: TAIRCRAFTDATA ! !* aircraft altitude type definition ! - LOGICAL :: ALTDEF ! TRUE == altitude given in pressure + LOGICAL :: ALTDEF = .FALSE. ! TRUE == altitude given in pressure END TYPE TAIRCRAFTDATA TYPE, EXTENDS( TFLYERDATA ) :: TBALLOONDATA ! !* balloon dynamical characteristics ! - REAL :: LAT ! latitude of launch - REAL :: LON ! lontitude of launch - REAL :: XLAUNCH! X coordinate of launch - REAL :: YLAUNCH! Y coordinate of launch - REAL :: ALT ! altitude of launch (if 'RADIOS' or 'ISODEN' or 'CVBALL') - REAL :: WASCENT! ascent vertical speed (if 'RADIOS') - REAL :: RHO ! density of launch (if 'ISODEN') - REAL :: PRES ! pressure of launch (if 'ISODEN') - REAL :: DIAMETER! apparent diameter of the balloon (m) (if 'CVBALL') - REAL :: AERODRAG! aerodynamic drag coefficient of the balloon (if 'CVBALL') - REAL :: INDDRAG! induced drag coefficient (i.e. air shifted by the balloon) (if 'CVBALL') - REAL :: VOLUME ! volume of the balloon (m3) (if 'CVBALL') - REAL :: MASS ! mass of the balloon (kg) (if 'CVBALL') + REAL :: LAT = XUNDEF ! latitude of launch + REAL :: LON = XUNDEF ! lontitude of launch + REAL :: XLAUNCH = XUNDEF ! X coordinate of launch + REAL :: YLAUNCH = XUNDEF ! Y coordinate of launch + REAL :: ALT = XUNDEF ! altitude of launch (if 'RADIOS' or 'ISODEN' or 'CVBALL') + REAL :: WASCENT = 5. ! ascent vertical speed, m/s (if 'RADIOS') + REAL :: RHO = XUNDEF ! density of launch (if 'ISODEN') + REAL :: PRES = XUNDEF ! pressure of launch (if 'ISODEN') + REAL :: DIAMETER = XUNDEF ! apparent diameter of the balloon (m) (if 'CVBALL') + REAL :: AERODRAG = XUNDEF ! aerodynamic drag coefficient of the balloon (if 'CVBALL') + REAL :: INDDRAG = XUNDEF ! induced drag coefficient (i.e. air shifted by the balloon) (if 'CVBALL') + REAL :: VOLUME = XUNDEF ! volume of the balloon (m3) (if 'CVBALL') + REAL :: MASS = XUNDEF ! mass of the balloon (kg) (if 'CVBALL') END TYPE TBALLOONDATA TYPE(TBALLOONDATA) :: TBALLOON1 ! characteristics and records of a balloon