Skip to content
Snippets Groups Projects
Commit c3a8d3ec authored by WAUTELET Philippe's avatar WAUTELET Philippe
Browse files

Philippe 02/06/2022: flyers: set default values directly in type declarations

parent 97c47427
No related branches found
No related tags found
No related merge requests found
...@@ -153,47 +153,6 @@ ENDIF ...@@ -153,47 +153,6 @@ ENDIF
! !
IF ( IMI == 1 ) THEN IF ( IMI == 1 ) THEN
LFLYER=.FALSE. 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 END IF
! !
!---------------------------------------------------------------------------- !----------------------------------------------------------------------------
...@@ -305,53 +264,6 @@ CONTAINS ...@@ -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) SUBROUTINE ALLOCATE_FLYER(TPFLYER)
! !
! !
......
...@@ -41,6 +41,7 @@ ...@@ -41,6 +41,7 @@
! ------------ ! ------------
! !
! !
use modd_parameters, only: XUNDEF
USE MODD_TYPE_STATPROF, ONLY: TSTATPROFTIME USE MODD_TYPE_STATPROF, ONLY: TSTATPROFTIME
use modd_type_date, only: date_time use modd_type_date, only: date_time
...@@ -48,37 +49,37 @@ implicit none ...@@ -48,37 +49,37 @@ implicit none
!------------------------------------------------------------------------------------------- !-------------------------------------------------------------------------------------------
! !
LOGICAL :: LFLYER ! flag to use aircraft/balloons LOGICAL :: LFLYER ! flag to use aircraft/balloons
! !
TYPE :: TFLYERDATA TYPE :: TFLYERDATA
! !
!* general information !* general information
! !
CHARACTER(LEN=3) :: MODEL ! type of model used for each balloon/aircraft CHARACTER(LEN=3) :: MODEL = 'FIX' ! type of model used for each balloon/aircraft
! 'FIX' : NMODEL used during the run ! 'FIX' : NMODEL used during the run
! 'MOB' : change od model depends of the ! 'MOB' : change od model depends of the
! balloon/aircraft location ! balloon/aircraft location
INTEGER :: NMODEL ! model number for each balloon/aircraft INTEGER :: NMODEL = 0 ! model number for each balloon/aircraft
CHARACTER(LEN=6) :: TYPE ! flyer type: CHARACTER(LEN=6) :: TYPE = '' ! flyer type:
! 'RADIOS' : radiosounding balloon ! 'RADIOS' : radiosounding balloon
! 'ISODEN' : iso-density balloon ! 'ISODEN' : iso-density balloon
! 'AIRCRA' : aircraft ! 'AIRCRA' : aircraft
! 'CVBALL' : Constant Volume balloon ! 'CVBALL' : Constant Volume balloon
CHARACTER(LEN=10) :: TITLE ! title or name for the balloon/aircraft CHARACTER(LEN=10) :: TITLE = '' ! title or name for the balloon/aircraft
TYPE(DATE_TIME) :: LAUNCH ! launch/takeoff date and time TYPE(DATE_TIME) :: LAUNCH ! launch/takeoff date and time
LOGICAL :: CRASH ! occurence of crash LOGICAL :: CRASH = .FALSE. ! occurence of crash
LOGICAL :: FLY ! occurence of flying LOGICAL :: FLY = .FALSE. ! occurence of flying
! !
!* storage monitoring !* storage monitoring
! !
TYPE(TSTATPROFTIME) :: TFLYER_TIME ! Time management for flyer TYPE(TSTATPROFTIME) :: TFLYER_TIME ! Time management for flyer
! !
!* current position of the balloon/aircraft !* current position of the balloon/aircraft
! !
REAL :: X_CUR ! current x REAL :: X_CUR = XUNDEF ! current x
REAL :: Y_CUR ! current y REAL :: Y_CUR = XUNDEF ! current y
REAL :: Z_CUR ! current z (if 'RADIOS' or 'AIRCRA' and 'ALTDEF' = T) REAL :: Z_CUR = XUNDEF ! current z (if 'RADIOS' or 'AIRCRA' and 'ALTDEF' = T)
REAL :: P_CUR ! current p (if 'AIRCRA' and 'ALTDEF' = F) REAL :: P_CUR = XUNDEF ! current p (if 'AIRCRA' and 'ALTDEF' = F)
! !
!* data records !* data records
! !
...@@ -122,9 +123,9 @@ TYPE, EXTENDS( TFLYERDATA ) :: TAIRCRAFTDATA ...@@ -122,9 +123,9 @@ TYPE, EXTENDS( TFLYERDATA ) :: TAIRCRAFTDATA
! !
!* aircraft flight definition !* aircraft flight definition
! !
INTEGER :: SEG ! number of aircraft flight segments INTEGER :: SEG = 0 ! number of aircraft flight segments
INTEGER :: SEGCURN ! current flight segment number INTEGER :: SEGCURN = 1 ! current flight segment number
REAL :: SEGCURT ! current flight segment time spent REAL :: SEGCURT = 0. ! current flight segment time spent
REAL, DIMENSION(:), POINTER :: SEGLAT => NULL() ! latitude of flight segment extremities (LEG+1) 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 :: SEGLON => NULL() ! longitude of flight segment extremities (LEG+1)
REAL, DIMENSION(:), POINTER :: SEGX => NULL() ! X 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 ...@@ -135,26 +136,26 @@ TYPE, EXTENDS( TFLYERDATA ) :: TAIRCRAFTDATA
! !
!* aircraft altitude type definition !* aircraft altitude type definition
! !
LOGICAL :: ALTDEF ! TRUE == altitude given in pressure LOGICAL :: ALTDEF = .FALSE. ! TRUE == altitude given in pressure
END TYPE TAIRCRAFTDATA END TYPE TAIRCRAFTDATA
TYPE, EXTENDS( TFLYERDATA ) :: TBALLOONDATA TYPE, EXTENDS( TFLYERDATA ) :: TBALLOONDATA
! !
!* balloon dynamical characteristics !* balloon dynamical characteristics
! !
REAL :: LAT ! latitude of launch REAL :: LAT = XUNDEF ! latitude of launch
REAL :: LON ! lontitude of launch REAL :: LON = XUNDEF ! lontitude of launch
REAL :: XLAUNCH! X coordinate of launch REAL :: XLAUNCH = XUNDEF ! X coordinate of launch
REAL :: YLAUNCH! Y coordinate of launch REAL :: YLAUNCH = XUNDEF ! Y coordinate of launch
REAL :: ALT ! altitude of launch (if 'RADIOS' or 'ISODEN' or 'CVBALL') REAL :: ALT = XUNDEF ! altitude of launch (if 'RADIOS' or 'ISODEN' or 'CVBALL')
REAL :: WASCENT! ascent vertical speed (if 'RADIOS') REAL :: WASCENT = 5. ! ascent vertical speed, m/s (if 'RADIOS')
REAL :: RHO ! density of launch (if 'ISODEN') REAL :: RHO = XUNDEF ! density of launch (if 'ISODEN')
REAL :: PRES ! pressure of launch (if 'ISODEN') REAL :: PRES = XUNDEF ! pressure of launch (if 'ISODEN')
REAL :: DIAMETER! apparent diameter of the balloon (m) (if 'CVBALL') REAL :: DIAMETER = XUNDEF ! apparent diameter of the balloon (m) (if 'CVBALL')
REAL :: AERODRAG! aerodynamic drag coefficient of the balloon (if 'CVBALL') REAL :: AERODRAG = XUNDEF ! aerodynamic drag coefficient of the balloon (if 'CVBALL')
REAL :: INDDRAG! induced drag coefficient (i.e. air shifted by the balloon) (if 'CVBALL') REAL :: INDDRAG = XUNDEF ! induced drag coefficient (i.e. air shifted by the balloon) (if 'CVBALL')
REAL :: VOLUME ! volume of the balloon (m3) (if 'CVBALL') REAL :: VOLUME = XUNDEF ! volume of the balloon (m3) (if 'CVBALL')
REAL :: MASS ! mass of the balloon (kg) (if 'CVBALL') REAL :: MASS = XUNDEF ! mass of the balloon (kg) (if 'CVBALL')
END TYPE TBALLOONDATA END TYPE TBALLOONDATA
TYPE(TBALLOONDATA) :: TBALLOON1 ! characteristics and records of a balloon TYPE(TBALLOONDATA) :: TBALLOON1 ! characteristics and records of a balloon
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment