diff --git a/src/MNH/ini_aircraft.f90 b/src/MNH/ini_aircraft.f90
index af8ecdaaf5f4a2a43848e0c98d81e7b3151d0dfe..f6355579aacf5acbcfbc30dd1da482835ea925ec 100644
--- a/src/MNH/ini_aircraft.f90
+++ b/src/MNH/ini_aircraft.f90
@@ -3,6 +3,18 @@
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
+MODULE MODE_INI_AIRCRAFT
+
+IMPLICIT NONE
+
+PRIVATE
+
+PUBLIC :: INI_AIRCRAFT
+
+INTEGER, PARAMETER :: NMAXLINELGT = 256
+
+CONTAINS
+
 !     #######################
       SUBROUTINE INI_AIRCRAFT
 !     #######################
@@ -62,8 +74,8 @@
 !!  9) the time step for data storage.
 !!    default is 60s
 !!
-!! 10) the name or title describing the balloon (8 characters)
-!!     default is the balloon type (6 characters) + the balloon numbers (2 characters)
+!! 10) the name or title describing the aircraft (8 characters)
+!!     default is the aircraft type (6 characters) + the aircraft numbers (2 characters)
 !!
 !!
 !!    EXTERNAL
@@ -84,2087 +96,160 @@
 !!     Original 15/05/2000
 !!             Sept2009, A. Boilley add initialisation of aircraft altitude by Z
 !  P. Wautelet    06/2022: reorganize flyers
+!  P. Wautelet 19/08/2022: provide aircraft characteristics in namelist and CSV file instead of hardcoded
 ! --------------------------------------------------------------------------
-!       
+!
 !*      0. DECLARATIONS
 !          ------------
 !
 USE MODD_AIRCRAFT_BALLOON
+USE MODD_CONF,             ONLY: NMODEL_NEST => NMODEL
+USE MODD_PARAMETERS,       ONLY: XNEGUNDEF
 
 USE MODE_MSG
 
+USE MODN_AIRCRAFTS
+
 IMPLICIT NONE
-!
-!
-!*      0.1  declarations of arguments
-!
-!
-!-------------------------------------------------------------------------------
-!
-!       0.2  declaration of local variables
-!
-!
-!----------------------------------------------------------------------------
-NAIRCRAFTS = 0
+
+INTEGER :: JI
 
 ALLOCATE( TAIRCRAFTS(NAIRCRAFTS) )
 
-IF ( NAIRCRAFTS < 1 ) RETURN
-!
-!*      1.   Aircraft number 1
-!            -----------------
-#if 0
-!
-!* model number
-!
-TAIRCRAFTS(1)%NMODEL             = 0
-!
-!* model switch
-!
-TAIRCRAFTS(1)%CMODEL              = 'FIX'
-!
-!* aircraft type
-!
-TAIRCRAFTS(1)%CTYPE               = 'AIRCRA'
-!
-!* aircraft flight name
-!
-TAIRCRAFTS(1)%CTITLE             = 'DIMO19A'
-!
-!* time step for storage
-!
-TAIRCRAFTS(1)%TFLYER_TIME%XTSTEP = 60.
-!
-!* take-off date and time
-!
-TAIRCRAFTS(1)%TLAUNCH%nyear  =  2007
-TAIRCRAFTS(1)%TLAUNCH%nmonth =    04
-TAIRCRAFTS(1)%TLAUNCH%nday   =    19
-TAIRCRAFTS(1)%TLAUNCH%xtime  = 32280.
-!
-!* number of flight segments
-!
-TAIRCRAFTS(1)%NSEG                = 168
-!
-!* initalisation of flag for pressure (T) or Z(F) for aicraft altitude
-!
-TAIRCRAFTS(1)%LALTDEF             = .TRUE.
+!Treat aircraft data read in namelist
+DO JI = 1, NAIRCRAFTS
+  IF ( CTITLE(JI) == '' ) THEN
+    WRITE( CTITLE(JI), FMT = '( A, I3.3) ') TRIM( CTYPE(JI) ), JI
+
+    WRITE( CMNHMSG(1), FMT = '( A, I4 )' ) 'no title given to aircraft number ', JI
+    CMNHMSG(2) = 'title set to ' // TRIM( CTITLE(JI) )
+    CALL PRINT_MSG( NVERB_INFO, 'GEN', 'INI_AIRCRAFT' )
+  END IF
+  TAIRCRAFTS(JI)%CTITLE = CTITLE(JI)
+
+  IF ( CMODEL(JI) == 'FIX' ) THEN
+    IF ( NMODEL(JI) < 1 .OR. NMODEL(JI) > NMODEL_NEST ) THEN
+      CMNHMSG(1) = 'invalid NMODEL aircraft ' // TRIM( CTITLE(JI) )
+      CMNHMSG(2) = 'NMODEL must be between 1 and the last nested model number'
+      CALL PRINT_MSG( NVERB_ERROR, 'GEN', 'INI_AIRCRAFT' )
+      NMODEL(JI) = 1
+    END IF
+  ELSE IF ( CMODEL(JI) == 'MOB' ) THEN
+    IF ( NMODEL(JI) /= 0 .AND. NMODEL(JI) /= 1 ) THEN
+      CALL PRINT_MSG( NVERB_WARNING, 'GEN', 'INI_AIRCRAFT', &
+                      'NMODEL is set to 1 at start for a CMODEL="MOB" aircraft (aircraft ' // TRIM( CTITLE(JI) ) // ')' )
+    END IF
+    NMODEL(JI) = 1
+  ELSE
+    CMNHMSG(1) = 'invalid CMODEL (' // TRIM( CMODEL(JI) ) // ') for aircraft ' // TRIM( CTITLE(JI) )
+    CMNHMSG(2) = 'CMODEL must be FIX or MOB (default="FIX")'
+    CALL PRINT_MSG( NVERB_ERROR, 'GEN', 'INI_AIRCRAFT' )
+    CMODEL(JI) = 'FIX'
+    NMODEL(JI) = 1
+  END IF
+  TAIRCRAFTS(JI)%CMODEL = CMODEL(JI)
+  TAIRCRAFTS(JI)%NMODEL = NMODEL(JI)
+
+  TAIRCRAFTS(JI)%CTYPE = CTYPE(JI)
+
+  IF ( .NOT. TLAUNCH(JI)%CHECK( TRIM( CTITLE(JI) ) ) ) &
+        CALL PRINT_MSG( NVERB_ERROR, 'GEN', 'INI_AIRCRAFT', &
+                        'problem with TLAUNCH (not set or incorrect values) for aircraft ' // TRIM( CTITLE(JI) ) )
+  TAIRCRAFTS(JI)%TLAUNCH  = TLAUNCH(JI)
+
+  IF ( XTSTEP(JI) == XNEGUNDEF ) THEN
+    CALL PRINT_MSG( NVERB_INFO, 'GEN', 'INI_AIRCRAFT', &
+                    'data storage frequency not provided for aircraft ' // TRIM( CTITLE(JI) ) // ' => set to 60s' )
+    XTSTEP(JI) = 60.
+  ELSE IF ( XTSTEP(JI) <=0. ) THEN
+    CALL PRINT_MSG( NVERB_ERROR, 'GEN', 'INI_AIRCRAFT', 'invalid data storage frequency for aircraft ' // TRIM( CTITLE(JI) ) )
+    XTSTEP(JI) = 60.
+  END IF
+  TAIRCRAFTS(JI)%TFLYER_TIME%XTSTEP = XTSTEP(JI)
+
+  IF ( NPOS(JI) < 1 ) THEN
+    CALL PRINT_MSG( NVERB_ERROR, 'GEN', 'INI_AIRCRAFT', 'NPOS should be at least 1 for aircraft ' // TRIM( CTITLE(JI) ) )
+  END IF
+  TAIRCRAFTS(JI)%NSEG = NPOS(JI)-1
+
+  TAIRCRAFTS(JI)%LALTDEF = LALTDEF(JI)
+
+  IF ( CFILE(JI) == '' ) &
+    CALL PRINT_MSG( NVERB_FATAL, 'GEN', 'INI_AIRCRAFT', 'name of CSV file with trajectory not provided for aircraft ' &
+                    // TRIM( CTITLE(JI) ) )
+
+  ! Allocate trajectory data
+  ALLOCATE( TAIRCRAFTS(JI)%XSEGTIME(TAIRCRAFTS(JI)%NSEG  ) ); TAIRCRAFTS(JI)%XSEGTIME(:) = XNEGUNDEF
+  ALLOCATE( TAIRCRAFTS(JI)%XSEGLAT (TAIRCRAFTS(JI)%NSEG+1) ); TAIRCRAFTS(JI)%XSEGLAT(:)  = XNEGUNDEF
+  ALLOCATE( TAIRCRAFTS(JI)%XSEGLON (TAIRCRAFTS(JI)%NSEG+1) ); TAIRCRAFTS(JI)%XSEGLON(:)  = XNEGUNDEF
+  IF ( TAIRCRAFTS(JI)%LALTDEF ) THEN
+    ALLOCATE( TAIRCRAFTS(JI)%XSEGP (TAIRCRAFTS(JI)%NSEG+1) ); TAIRCRAFTS(JI)%XSEGP(:)    = XNEGUNDEF
+  ELSE
+    ALLOCATE( TAIRCRAFTS(JI)%XSEGZ (TAIRCRAFTS(JI)%NSEG+1) ); TAIRCRAFTS(JI)%XSEGZ(:)    = XNEGUNDEF
+  END IF
+
+  ! Read CSV data (trajectory)
+  CALL AIRCRAFT_CSV_READ( TAIRCRAFTS(JI), CFILE(JI) )
+
+END DO
+
+IF ( NAIRCRAFTS > 0 ) CALL AIRCRAFTS_NML_DEALLOCATE()
 !
-!* allocation of the arrays
-!
-ALLOCATE(TAIRCRAFTS(1)%XSEGTIME(TAIRCRAFTS(1)%NSEG  ))
-ALLOCATE(TAIRCRAFTS(1)%XSEGLAT (TAIRCRAFTS(1)%NSEG+1))
-ALLOCATE(TAIRCRAFTS(1)%XSEGLON (TAIRCRAFTS(1)%NSEG+1))
-!
-!* duration of the segments (seconds)
-!
-TAIRCRAFTS(1)%XSEGTIME      = (/ 60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60 /)
-!
-!* latitudes of the segments ends (1st point is takeoff, last point is landing)
-!        (decimal degrees)
-!
-TAIRCRAFTS(1)%XSEGLAT  = (/ 44.39971, 44.40095, 44.40040, 44.39919, 44.39657,&
- 44.39339, 44.38749, 44.37916, 44.37464, 44.37021,&
- 44.37045, 44.37059, 44.37443, 44.37222, 44.35214,&
- 44.36092, 44.38175, 44.40122, 44.41992, 44.43539,&
- 44.45071, 44.46737, 44.48038, 44.47368, 44.46140,&
- 44.45519, 44.46365, 44.46959, 44.47475, 44.48028,&
- 44.47210, 44.46509, 44.46825, 44.47021, 44.48252,&
- 44.50106, 44.52266, 44.54233, 44.55776, 44.56624,&
- 44.57126, 44.57083, 44.57098, 44.57155, 44.56524,&
- 44.56006, 44.56914, 44.57413, 44.57368, 44.56907,&
- 44.56207, 44.55547, 44.54991, 44.54553, 44.54143,&
- 44.53734, 44.53293, 44.52783, 44.52403, 44.52920,&
- 44.54065, 44.54570, 44.54875, 44.55127, 44.55372,&
- 44.56859, 44.58518, 44.56456, 44.53939, 44.54009,&
- 44.56265, 44.58650, 44.60879, 44.61819, 44.61754,&
- 44.61660, 44.62217, 44.61920, 44.61041, 44.60369,&
- 44.60041, 44.60191, 44.60322, 44.58885, 44.56374,&
- 44.54355, 44.52951, 44.50729, 44.48498, 44.46095,&
- 44.43832, 44.42894, 44.41980, 44.40837, 44.38897,&
- 44.36689, 44.35023, 44.33820, 44.33409, 44.33662,&
- 44.33859, 44.33223, 44.32123, 44.32175, 44.32951,&
- 44.33953, 44.35040, 44.36167, 44.37196, 44.37869,&
- 44.38493, 44.39208, 44.40101, 44.40943, 44.42089,&
- 44.44113, 44.46887, 44.49583, 44.51708, 44.53618,&
- 44.54475, 44.55005, 44.55511, 44.56009, 44.56446,&
- 44.56590, 44.56728, 44.56972, 44.57093, 44.57225,&
- 44.57260, 44.57197, 44.57016, 44.56544, 44.55235,&
- 44.53552, 44.54387, 44.55054, 44.56146, 44.56070,&
- 44.54054, 44.52130, 44.50292, 44.48638, 44.47290,&
- 44.45529, 44.43734, 44.41889, 44.39770, 44.37671,&
- 44.35838, 44.35707, 44.36639, 44.37534, 44.37753,&
- 44.37753, 44.37986, 44.38700, 44.39457, 44.39753,&
- 44.40017, 44.40076, 44.39730, 44.39181, 44.39756,&
- 44.39935, 44.39868, 44.39727, 44.39696 /)
-!
-!* longitudes of the segments ends (1st point is takeoff, last point is landing)
-!        (decimal degrees)
-!
-TAIRCRAFTS(1)%XSEGLON   = (/0.75561, 0.73090, 0.70157, 0.66896, 0.63468,&
- 0.60107, 0.56909, 0.53738, 0.50474, 0.47315,&
- 0.44092, 0.40665, 0.37725, 0.35171, 0.33016,&
- 0.31340, 0.29638, 0.27594, 0.25293, 0.22663,&
- 0.19920, 0.17395, 0.15872, 0.17700, 0.19870,&
- 0.21796, 0.20584, 0.18416, 0.16200, 0.16042,&
- 0.18704, 0.20952, 0.19838, 0.17702, 0.15936,&
- 0.13843, 0.11309, 0.08309, 0.04845, 0.00948,&
--0.03097,-0.07187,-0.11372,-0.15500,-0.19571,&
--0.23476,-0.26490,-0.29027,-0.31521,-0.33867,&
--0.36085,-0.38222,-0.40476,-0.42847,-0.45149,&
--0.47413,-0.49675,-0.51926,-0.54853,-0.58352,&
--0.61936,-0.65967,-0.70151,-0.74369,-0.78626,&
--0.82035,-0.82679,-0.81080,-0.80093,-0.81855,&
--0.83421,-0.84543,-0.85947,-0.88928,-0.92270,&
--0.95642,-0.98774,-1.01802,-1.05282,-1.08807,&
--1.12390,-1.15847,-1.19287,-1.22142,-1.24147,&
--1.26289,-1.28825,-1.28869,-1.27067,-1.25984,&
--1.25447,-1.22868,-1.19892,-1.16909,-1.14878,&
--1.13185,-1.10636,-1.07398,-1.03438,-1.00077,&
--0.97309,-0.94428,-0.91011,-0.87900,-0.85405,&
--0.83235,-0.81217,-0.79231,-0.77125,-0.74612,&
--0.71985,-0.69334,-0.66698,-0.64049,-0.61627,&
--0.59738,-0.58007,-0.55652,-0.52248,-0.48603,&
--0.44405,-0.39964,-0.35780,-0.32620,-0.29894,&
--0.27061,-0.24144,-0.21229,-0.18267,-0.15256,&
--0.12223,-0.09116,-0.05346,-0.00969, 0.03348,&
- 0.07270, 0.07334, 0.03393, 0.00021, 0.01935,&
- 0.05295, 0.08646, 0.11585, 0.14321, 0.17288,&
- 0.20083, 0.22825, 0.25199, 0.27166, 0.29386,&
- 0.31926, 0.35232, 0.38587, 0.41831, 0.45384,&
- 0.49099, 0.52731, 0.56261, 0.59614, 0.63308,&
- 0.67001, 0.70471, 0.73740, 0.76830, 0.76841,&
- 0.75848, 0.76209, 0.76315, 0.76335  /)
-!
-!* pressure of the segments ends (1st point is takeoff, last point is landing)
-!        (pascals)
-!
-IF (TAIRCRAFTS(1)%LALTDEF) THEN
-  ALLOCATE(TAIRCRAFTS(1)%XSEGP   (TAIRCRAFTS(1)%NSEG+1))
-  TAIRCRAFTS(1)%XSEGP    = 100. * (/1003.6, 990.8, 988.1, 988.5, 989.3,&
- 988.9, 989.6, 989.9, 990.3, 989.2,&
- 990.8, 993.9, 987.7, 987.2, 992.0,&
- 995.2, 993.9, 994.0, 994.3, 993.9,&
- 993.9, 992.6, 981.6, 968.0, 954.6,&
- 942.5, 929.8, 917.8, 904.2, 891.8,&
- 879.5, 867.9, 857.0, 846.5, 840.0,&
- 844.9, 857.8, 873.5, 889.7, 905.3,&
- 921.5, 937.8, 953.9, 963.7, 978.8,&
- 993.0, 984.1, 970.4, 955.6, 943.1,&
- 930.3, 916.8, 904.4, 891.6, 878.6,&
- 866.2, 854.3, 846.2, 851.2, 863.0,&
- 878.3, 895.0, 912.3, 929.7, 944.7,&
- 959.2, 967.2, 977.6, 981.9, 981.1,&
- 982.1, 981.9, 984.4, 984.2, 983.6,&
- 982.1, 978.6, 980.5, 982.1, 983.1,&
- 984.2, 984.5, 983.6, 996.0,1003.8,&
-1004.2,1001.4,1000.5,1002.3,1005.9,&
-1000.9, 992.8, 989.7, 987.1, 985.1,&
- 984.3, 982.4, 986.7, 999.1, 994.8,&
- 984.1, 985.1, 997.0, 988.2, 975.0,&
- 963.0, 949.0, 937.4, 925.3, 912.6,&
- 898.8, 886.1, 873.6, 860.8, 848.3,&
- 850.2, 863.4, 880.2, 898.0, 916.3,&
- 932.8, 949.7, 959.7, 947.5, 933.3,&
- 920.8, 907.4, 894.0, 881.4, 869.0,&
- 858.0, 848.9, 852.2, 863.2, 880.0,&
- 895.3, 909.6, 926.1, 942.0, 958.6,&
- 977.3, 993.0, 995.6, 995.0, 993.0,&
- 996.2, 995.1, 994.2, 993.4, 993.6,&
- 992.0, 991.3, 993.2, 991.6, 993.1,&
- 992.7, 992.0, 992.0, 989.4, 991.2,&
- 989.5, 981.8, 977.8, 983.3,1001.9,&
-1007.0,1006.8,1006.8, 1006.8 /)
-ELSE
-  ALLOCATE(TAIRCRAFTS(1)%XSEGZ   (TAIRCRAFTS(1)%NSEG+1))
-TAIRCRAFTS(1)%XSEGZ    = (/8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000  /)
-ENDIF
-!
-IF ( NAIRCRAFTS < 2 ) RETURN
-#else
-CALL PRINT_MSG( NVERB_FATAL, 'GEN', 'INI_AIRCRAFT', 'aircraft characteristics are commented' )
-#endif
 !----------------------------------------------------------------------------
 !
-!*      1.   Aircraft number 2
-!            -----------------
-#if 0
-!
-!* model number
-!
-TAIRCRAFTS(2)%NMODEL             = 0
-!
-!* model switch
 !
-TAIRCRAFTS(2)%CMODEL              = 'FIX'
-!
-!* aircraft type
-!
-TAIRCRAFTS(2)%CTYPE               = 'AIRCRA'
+END SUBROUTINE INI_AIRCRAFT
 
-!* aircraft flight name
-!
-TAIRCRAFTS(2)%CTITLE             = 'DIMO19B'
-!
-!* time step for storage
-!
-TAIRCRAFTS(2)%TFLYER_TIME%XTSTEP = 60.
-!
-!* take-off date and time
-!
-TAIRCRAFTS(2)%TLAUNCH%nyear  =  2007
-TAIRCRAFTS(2)%TLAUNCH%nmonth =    04
-TAIRCRAFTS(2)%TLAUNCH%nday   =    19
-TAIRCRAFTS(2)%TLAUNCH%xtime  = 48060.
-!
-!* number of flight segments
-!
-TAIRCRAFTS(2)%NSEG                = 198
-!
-!* initalisation of flag for pressure (T) or Z(F) for aicraft altitude
-!
-TAIRCRAFTS(2)%LALTDEF             = .TRUE.
-!
-!* allocation of the arrays
-!
-ALLOCATE(TAIRCRAFTS(2)%XSEGTIME(TAIRCRAFTS(2)%NSEG  ))
-ALLOCATE(TAIRCRAFTS(2)%XSEGLAT (TAIRCRAFTS(2)%NSEG+1))
-ALLOCATE(TAIRCRAFTS(2)%XSEGLON (TAIRCRAFTS(2)%NSEG+1))
-!
-!* duration of the segments (seconds)
-!
-TAIRCRAFTS(2)%XSEGTIME     = (/60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60  /)
-!
-!* latitudes of the segments ends (1st point is takeoff, last point is landing)
-!        (decimal degrees)
-!
-TAIRCRAFTS(2)%XSEGLAT      = (/ 44.39819, 44.39967, 44.40104, 44.40074, 44.40085,&
- 44.39843, 44.39619, 44.39141, 44.38353, 44.37732,&
- 44.37508, 44.37609, 44.37377, 44.36764, 44.36083,&
- 44.35442, 44.37187, 44.39327, 44.41394, 44.43280,&
- 44.44887, 44.46759, 44.47026, 44.45759, 44.46716,&
- 44.48098, 44.49223, 44.48031, 44.46436, 44.46050,&
- 44.46611, 44.47339, 44.47535, 44.46444, 44.46467,&
- 44.47678, 44.49333, 44.50428, 44.51275, 44.52244,&
- 44.53453, 44.54696, 44.55673, 44.56092, 44.56132,&
- 44.56116, 44.56225, 44.56290, 44.56055, 44.55233,&
- 44.54409, 44.53433, 44.52137, 44.50897, 44.49627,&
- 44.48420, 44.47599, 44.46897, 44.46110, 44.45206,&
- 44.44454, 44.43702, 44.42862, 44.41992, 44.40707,&
- 44.38769, 44.36858, 44.34945, 44.32974, 44.30938,&
- 44.28888, 44.26943, 44.27339, 44.29464, 44.32345,&
- 44.35428, 44.38620, 44.41810, 44.43924, 44.42371,&
- 44.40729, 44.39663, 44.39174, 44.38035, 44.35685,&
- 44.35082, 44.37277, 44.37210, 44.37059, 44.37076,&
- 44.36948, 44.35924, 44.34744, 44.34207, 44.33859,&
- 44.33485, 44.32219, 44.30517, 44.28314, 44.25674,&
- 44.23110, 44.20517, 44.18849, 44.18723, 44.18804,&
- 44.18820, 44.18341, 44.16808, 44.14988, 44.12651,&
- 44.09887, 44.10007, 44.13022, 44.15963, 44.16313,&
- 44.14156, 44.11520, 44.08806, 44.06374, 44.05124,&
- 44.04458, 44.04106, 44.04035, 44.04010, 44.03897,&
- 44.03530, 44.03939, 44.05114, 44.06269, 44.07460,&
- 44.08650, 44.09131, 44.08050, 44.09213, 44.10666,&
- 44.12659, 44.14738, 44.16590, 44.18314, 44.19906,&
- 44.21885, 44.24219, 44.26652, 44.29116, 44.31433,&
- 44.33735, 44.36057, 44.37947, 44.39634, 44.41202,&
- 44.42718, 44.44310, 44.45702, 44.46577, 44.47367,&
- 44.47522, 44.48508, 44.49589, 44.50652, 44.51467,&
- 44.52342, 44.53589, 44.54841, 44.55751, 44.55326,&
- 44.54398, 44.53334, 44.52054, 44.50654, 44.49421,&
- 44.48487, 44.47112, 44.45230, 44.43285, 44.41224,&
- 44.39065, 44.36929, 44.35484, 44.35927, 44.36936,&
- 44.37609, 44.37666, 44.37590, 44.38037, 44.38779,&
- 44.39413, 44.39740, 44.40002, 44.40032, 44.39755,&
- 44.39226, 44.39494, 44.39910, 44.39862, 44.39719,&
- 44.39691, 44.39692, 44.39689, 44.39694   /)
-!
-!* longitudes of the segments ends (1st point is takeoff, last point is landing)
-!        (decimal degrees)
-!
-TAIRCRAFTS(2)%XSEGLON      = (/0.76323, 0.75549, 0.73212, 0.70405, 0.67289,&
- 0.64082, 0.60831, 0.57717, 0.54697, 0.51578,&
- 0.48245, 0.45056, 0.41783, 0.38851, 0.36046,&
- 0.32828, 0.30353, 0.28176, 0.25886, 0.23647,&
- 0.21031, 0.18783, 0.19138, 0.20574, 0.19556,&
- 0.17902, 0.17207, 0.18561, 0.20057, 0.21096,&
- 0.19209, 0.17406, 0.18880, 0.21157, 0.20492,&
- 0.17724, 0.14803, 0.11416, 0.07884, 0.04294,&
- 0.00754,-0.02836,-0.06645,-0.10613,-0.14594,&
--0.18382,-0.21191,-0.23806,-0.26153,-0.28229,&
--0.30235,-0.32461,-0.35502,-0.38888,-0.42649,&
--0.46658,-0.49951,-0.52354,-0.54620,-0.56911,&
--0.59210,-0.61530,-0.63781,-0.66103,-0.68000,&
--0.68664,-0.68859,-0.68904,-0.68633,-0.68257,&
--0.67785,-0.67856,-0.68504,-0.67421,-0.65909,&
--0.64292,-0.62468,-0.60554,-0.60962,-0.64284,&
--0.68049,-0.72153,-0.76308,-0.79993,-0.82295,&
--0.80244,-0.79925,-0.83586,-0.87284,-0.90717,&
--0.93954,-0.96673,-0.99345,-1.02688,-1.06013,&
--1.09311,-1.12010,-1.14430,-1.15772,-1.15729,&
--1.15461,-1.15633,-1.17298,-1.19786,-1.22215,&
--1.24575,-1.26738,-1.27606,-1.27726,-1.28392,&
--1.29406,-1.29028,-1.29255,-1.28781,-1.27630,&
--1.29478,-1.30461,-1.31179,-1.30894,-1.28378,&
--1.25748,-1.23181,-1.20656,-1.17989,-1.15381,&
--1.12789,-1.10402,-1.08189,-1.05854,-1.03571,&
--1.01321,-0.98957,-0.98981,-0.98826,-0.96629,&
--0.94082,-0.91032,-0.87556,-0.83647,-0.79522,&
--0.75987,-0.73047,-0.70212,-0.67419,-0.64559,&
--0.61580,-0.58662,-0.56599,-0.55283,-0.53912,&
--0.52493,-0.51192,-0.49392,-0.47041,-0.45111,&
--0.43705,-0.41091,-0.38491,-0.35776,-0.32809,&
--0.29403,-0.25181,-0.20625,-0.15899,-0.11076,&
--0.06454,-0.01989, 0.02357, 0.06550, 0.10835,&
- 0.15086, 0.18573, 0.21197, 0.23662, 0.25944,&
- 0.28144, 0.30338, 0.32757, 0.35913, 0.39246,&
- 0.42650, 0.46119, 0.49538, 0.52941, 0.56250,&
- 0.59510, 0.63037, 0.66574, 0.69774, 0.72973,&
- 0.75999, 0.77280, 0.75992, 0.76224, 0.76317,&
- 0.76352, 0.76357, 0.76358, 0.76349 /)
-!
-!* pressure of the segments ends (1st point is takeoff, last point is landing)
-!        (pascals)
-!
-IF (TAIRCRAFTS(2)%LALTDEF) THEN
-  ALLOCATE(TAIRCRAFTS(2)%XSEGP   (TAIRCRAFTS(2)%NSEG+1))
-TAIRCRAFTS(2)%XSEGP = 100. * (/1001.,1001.0, 989.2, 987.5, 987.5,&
- 987.9, 989.1, 990.2, 989.3, 988.6,&
- 989.8, 989.6, 991.0, 986.1, 980.7,&
- 986.5, 991.9, 991.5, 993.0, 992.1,&
- 991.3, 991.8, 982.3, 972.0, 960.0,&
- 950.5, 938.4, 924.8, 911.7, 899.5,&
- 886.9, 876.2, 864.0, 849.9, 843.7,&
- 852.1, 861.8, 871.3, 880.8, 891.3,&
- 901.5, 913.5, 926.8, 940.6, 952.3,&
- 952.9, 938.6, 921.6, 907.2, 898.2,&
- 884.6, 880.2, 892.0, 902.0, 916.1,&
- 931.1, 926.4, 909.7, 897.0, 891.0,&
- 880.8, 868.3, 861.0, 851.4, 842.2,&
- 833.7, 823.2, 809.5, 799.0, 789.0,&
- 778.7, 768.7, 759.3, 761.1, 774.5,&
- 789.5, 809.8, 829.7, 841.2, 856.2,&
- 871.5, 886.9, 904.8, 923.0, 937.5,&
- 952.0, 965.7, 980.8, 985.2, 988.0,&
- 987.3, 985.8, 986.6, 989.8, 990.7,&
- 991.4, 990.5, 989.1, 988.2, 988.0,&
- 984.7, 985.0, 977.8, 964.8, 952.8,&
- 941.3, 929.7, 918.2, 909.4, 915.3,&
- 928.5, 943.0, 961.3, 978.0, 989.2,&
- 992.9, 994.5, 994.4, 987.9, 974.2,&
- 960.6, 946.6, 933.5, 920.8, 908.2,&
- 895.7, 883.6, 872.7, 861.4, 850.0,&
- 837.7, 825.8, 814.0, 803.1, 796.9,&
- 803.0, 812.6, 824.4, 841.8, 859.3,&
- 876.9, 893.8, 910.1, 928.2, 942.5,&
- 962.5, 978.7, 964.3, 951.7, 937.5,&
- 921.1, 906.0, 891.0, 879.2, 862.9,&
- 847.7, 836.1, 826.2, 814.5, 802.0,&
- 806.3, 820.0, 836.0, 853.4, 870.7,&
- 889.7, 909.7, 929.1, 950.2, 971.8,&
- 988.8, 993.3, 992.3, 991.9, 991.4,&
- 992.0, 991.7, 988.2, 986.2, 989.9,&
- 990.5, 991.2, 989.3, 988.5, 988.2,&
- 986.8, 986.4, 987.0, 981.0, 975.5,&
- 975.8, 993.9,1004.1,1004.1,1004.1,&
-1004.1,1004.1,1004.1,1004.1 /)
-ELSE
-  ALLOCATE(TAIRCRAFTS(2)%XSEGZ   (TAIRCRAFTS(2)%NSEG+1))
-  TAIRCRAFTS(2)%XSEGZ    = (/8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000  /)
-ENDIF
-!
-IF ( NAIRCRAFTS < 3 ) RETURN
-#else
-CALL PRINT_MSG( NVERB_FATAL, 'GEN', 'INI_AIRCRAFT', 'aircraft characteristics are commented' )
-#endif
-!----------------------------------------------------------------------------
-!
-!*      1.   Aircraft number 3
-!            -----------------
-#if 0
-!
-!* model number
-!
-TAIRCRAFTS(3)%NMODEL             = 0
-!
-!* model switch
-!
-TAIRCRAFTS(3)%CMODEL              = 'FIX'
-!
-!* aircraft type
-!
-TAIRCRAFTS(3)%CTYPE               = 'AIRCRA'
 
-!* aircraft flight name
-!
-TAIRCRAFTS(3)%CTITLE             = 'SAAL19A'
-!
-!* time step for storage
-!
-TAIRCRAFTS(3)%TFLYER_TIME%XTSTEP = 30.
-!
-!* take-off date and time
-!
-TAIRCRAFTS(3)%TLAUNCH%nyear  =  2007
-TAIRCRAFTS(3)%TLAUNCH%nmonth =    04
-TAIRCRAFTS(3)%TLAUNCH%nday   =    19
-TAIRCRAFTS(3)%TLAUNCH%xtime  = 45369
-!
-!* number of flight segments
-!
-TAIRCRAFTS(3)%NSEG                = 39
-!
-!* initalisation of flag for pressure (T) or Z(F) for aicraft altitude
-!
-TAIRCRAFTS(3)%LALTDEF             = .TRUE.
-!
-!* allocation of the arrays
-!
-ALLOCATE(TAIRCRAFTS(3)%XSEGTIME(TAIRCRAFTS(3)%NSEG  ))
-ALLOCATE(TAIRCRAFTS(3)%XSEGLAT (TAIRCRAFTS(3)%NSEG+1))
-ALLOCATE(TAIRCRAFTS(3)%XSEGLON (TAIRCRAFTS(3)%NSEG+1))
-!
-!* duration of the segments (seconds)
-!
-TAIRCRAFTS(3)%XSEGTIME = (/   15,   16,   16,   18,   17,   17,&
-   22,   25,   19,   19,   22,   27,&
-   28,   27,   29,   32,   30,   24,&
-  169,   18,   15,   18,   17,   16,&
-   16,   14,   14,   18,   17,   15,&
-   14,   14,   19,   20,   16,   15,&
-   14,   16,   21 /)
-                                  
-!
-!* latitudes of the segments ends (1st point is takeoff, last point is landing)
-!        (decimal degrees)
-!
-TAIRCRAFTS(3)%XSEGLAT = (/ 44.14451, 44.14084, 44.14068, 44.14479, 44.14884,&
- 44.14843, 44.14437, 44.14127, 44.14574, 44.14858,&
- 44.14655, 44.14130, 44.14384, 44.14738, 44.14158,&
- 44.14245, 44.14607, 44.14023, 44.14227, 44.15136,&
- 44.14792, 44.14352, 44.13874, 44.13904, 44.14350,&
- 44.14701, 44.14614, 44.14223, 44.14001, 44.14320,&
- 44.14671, 44.14661, 44.14324, 44.14091, 44.14492,&
- 44.14721, 44.14510, 44.14152, 44.14219, 44.14698 /)
-!
-!* longitudes of the segments ends (1st point is takeoff, last point is landing)
-!        (decimal degrees)
-!
-TAIRCRAFTS(3)%XSEGLON   = (/0.95322, 0.95562, 0.96155, 0.96490, 0.96186,&
- 0.95576, 0.95421, 0.96105, 0.96593, 0.96076,&
- 0.95485, 0.95618, 0.96341, 0.95769, 0.95681,&
- 0.96585, 0.96073, 0.96158, 0.97041, 0.96299,&
- 0.95662, 0.95481, 0.95871, 0.96586, 0.96804,&
- 0.96407, 0.95952, 0.95957, 0.96608, 0.97088,&
- 0.96825, 0.96292, 0.96078, 0.96622, 0.96953,&
- 0.96476, 0.96053, 0.96218, 0.96765, 0.96600 /)
-!
-!* pressure of the segments ends (1st point is takeoff, last point is landing)
-!        (pascals)
-!
-IF (TAIRCRAFTS(3)%LALTDEF) THEN
-  ALLOCATE(TAIRCRAFTS(3)%XSEGP   (TAIRCRAFTS(3)%NSEG+1))
-TAIRCRAFTS(3)%XSEGP    = 100. * (/ 992.5, 987.4, 982.1, 976.4, 969.3,&
- 964.3, 958.4, 952.9, 947.5, 942.8,&
- 936.5, 930.8, 925.6, 919.8, 914.6,&
- 909.2, 903.6, 898.0, 893.0, 881.8,&
- 887.3, 892.5, 897.8, 903.1, 908.6,&
- 914.1, 919.2, 924.9, 929.5, 935.2,&
- 940.4, 946.6, 951.8, 957.8, 963.1,&
- 969.1, 974.1, 980.0, 986.0, 993.0 /)
-ELSE
-  ALLOCATE(TAIRCRAFTS(3)%XSEGZ   (TAIRCRAFTS(3)%NSEG+1))
-  TAIRCRAFTS(3)%XSEGZ    = (/8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000  /)
-ENDIF
-!
-IF ( NAIRCRAFTS < 4 ) RETURN
-#else
-CALL PRINT_MSG( NVERB_FATAL, 'GEN', 'INI_AIRCRAFT', 'aircraft characteristics are commented' )
-#endif
-!----------------------------------------------------------------------------
-!
-!*      1.   Aircraft number 4
-!            -----------------
-#if 0
-!
-!* model number
-!
-TAIRCRAFTS(4)%NMODEL             = 0
-!
-!* model switch
-!
-TAIRCRAFTS(4)%CMODEL              = 'FIX'
-!
-!* aircraft type
-!
-TAIRCRAFTS(4)%CTYPE               = 'AIRCRA'
+SUBROUTINE AIRCRAFT_CSV_READ( TPAIRCRAFT, HFILE )
 
-!* aircraft flight name
-!
-TAIRCRAFTS(4)%CTITLE             = 'SAAL19B'
-!
-!* time step for storage
-!
-TAIRCRAFTS(4)%TFLYER_TIME%XTSTEP = 30.
-!
-!* take-off date and time
-!
-TAIRCRAFTS(4)%TLAUNCH%nyear  =  2007
-TAIRCRAFTS(4)%TLAUNCH%nmonth =    04
-TAIRCRAFTS(4)%TLAUNCH%nday   =    19
-TAIRCRAFTS(4)%TLAUNCH%xtime  = 60392.
-!
-!* number of flight segments
-!
-TAIRCRAFTS(4)%NSEG                = 39
-!
-!* initalisation of flag for pressure (T) or Z(F) for aicraft altitude
-!
-TAIRCRAFTS(4)%LALTDEF             = .TRUE.
-!
-!* allocation of the arrays
-!
-ALLOCATE(TAIRCRAFTS(4)%XSEGTIME(TAIRCRAFTS(4)%NSEG  ))
-ALLOCATE(TAIRCRAFTS(4)%XSEGLAT (TAIRCRAFTS(4)%NSEG+1))
-ALLOCATE(TAIRCRAFTS(4)%XSEGLON (TAIRCRAFTS(4)%NSEG+1))
-!
-!* duration of the segments (seconds)
-!
-TAIRCRAFTS(4)%XSEGTIME = (/ 36,   18,   18,   21,   24,   23,&
-   20,   20,   25,   27,   21,   25,&
-   27,   23,   21,   23,   25,   21,&
-   27,  190,   17,   17,   18,   17,&
-   18,   17,   15,   18,   22,   17,&
-   16,   18,   22,   22,   19,   20,&
-   21,   23,   22  /)
-!
-!* latitudes of the segments ends (1st point is takeoff, last point is landing)
-!        (decimal degrees)
-!
-TAIRCRAFTS(4)%XSEGLAT = (/ 44.14025, 44.13824, 44.14291, 44.14575, 44.14321,&
- 44.13749, 44.13853, 44.14373, 44.14530, 44.13921,&
- 44.13773, 44.14285, 44.13974, 44.13622, 44.14093,&
- 44.14375, 44.13868, 44.13771, 44.14272, 44.14156,&
- 44.14130, 44.14335, 44.14031, 44.13480, 44.13150,&
- 44.13157, 44.13507, 44.13921, 44.14201, 44.13823,&
- 44.13479, 44.13668, 44.14132, 44.14112, 44.13621,&
- 44.13775, 44.14254, 44.14194, 44.13669, 44.13837 /)
-                       !
-!* longitudes of the segments ends (1st point is takeoff, last point is landing)
-!        (decimal degrees)
-!
-TAIRCRAFTS(4)%XSEGLON  = (/ 0.94868, 0.95712, 0.95820, 0.95265, 0.94556,&
- 0.94730, 0.95518, 0.95559, 0.94882, 0.94656,&
- 0.95488, 0.95463, 0.94889, 0.95589, 0.95988,&
- 0.95389, 0.95076, 0.95834, 0.95888, 0.95095,&
- 0.95897, 0.95259, 0.94684, 0.94743, 0.95294,&
- 0.96042, 0.96527, 0.96527, 0.95949, 0.95413,&
- 0.95842, 0.96350, 0.96231, 0.95483, 0.95597,&
- 0.96187, 0.96037, 0.95264, 0.95278, 0.95857 /)
-!
-!* pressure of the segments ends (1st point is takeoff, last point is landing)
-!        (pascals)
-!
-IF (TAIRCRAFTS(4)%LALTDEF) THEN
-  ALLOCATE(TAIRCRAFTS(4)%XSEGP   (TAIRCRAFTS(4)%NSEG+1))
-TAIRCRAFTS(4)%XSEGP = 100. * (/ 992.3, 985.4, 979.9, 974.2, 969.2,&
- 962.8, 957.7, 952.1, 946.3, 940.5,&
- 935.3, 930.4, 924.0, 918.9, 913.4,&
- 907.8, 902.8, 897.1, 892.2, 886.3,&
- 881.6, 886.6, 891.9, 897.0, 902.3,&
- 907.9, 912.8, 918.3, 924.0, 929.0,&
- 934.6, 940.3, 946.0, 951.4, 956.5,&
- 962.8, 968.1, 973.7, 979.3, 984.9 /)
- ELSE
-  ALLOCATE(TAIRCRAFTS(4)%XSEGZ   (TAIRCRAFTS(4)%NSEG+1))
-  TAIRCRAFTS(4)%XSEGZ    = (/8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000/)
-ENDIF
-!
-IF ( NAIRCRAFTS < 5 ) RETURN
-#else
-CALL PRINT_MSG( NVERB_FATAL, 'GEN', 'INI_AIRCRAFT', 'aircraft characteristics are commented' )
-#endif
-!----------------------------------------------------------------------------
-!
-!*      1.   Aircraft number 5
-!            -----------------
-#if 0
-!
-!* model number
-!
-TAIRCRAFTS(5)%NMODEL             = 0
-!
-!* model switch
-!
-TAIRCRAFTS(5)%CMODEL              = 'FIX'
-!
-!* aircraft type
-!
-TAIRCRAFTS(5)%CTYPE               = 'AIRCRA'
+USE MODD_AIRCRAFT_BALLOON, ONLY: TAIRCRAFTDATA
 
-!* aircraft flight name
-!
-TAIRCRAFTS(5)%CTITLE             = 'SAIB19A'
-!
-!* time step for storage
-!
-TAIRCRAFTS(5)%TFLYER_TIME%XTSTEP = 30.
-!
-!* take-off date and time
-!
-TAIRCRAFTS(5)%TLAUNCH%nyear  =  2007
-TAIRCRAFTS(5)%TLAUNCH%nmonth =    04
-TAIRCRAFTS(5)%TLAUNCH%nday   =    19
-TAIRCRAFTS(5)%TLAUNCH%xtime  = 43380.
-!
-!* number of flight segments
-!
-TAIRCRAFTS(5)%NSEG                = 176
-!
-!* initalisation of flag for pressure (T) or Z(F) for aicraft altitude
-!
-TAIRCRAFTS(5)%LALTDEF             = .TRUE.
-!
-!* allocation of the arrays
-!
-ALLOCATE(TAIRCRAFTS(5)%XSEGTIME(TAIRCRAFTS(5)%NSEG  ))
-ALLOCATE(TAIRCRAFTS(5)%XSEGLAT (TAIRCRAFTS(5)%NSEG+1))
-ALLOCATE(TAIRCRAFTS(5)%XSEGLON (TAIRCRAFTS(5)%NSEG+1))
-!
-!* duration of the segments (seconds)
-!
-TAIRCRAFTS(5)%XSEGTIME = (/  28,   28,   29,   29,   29,   28,&
-   28,   28,   29,   26,   28,   27,&
-   28,   27,   28,   27,   25,   27,&
-   27,   26,   24,   25,   26,   26,&
-   24,   25,   27,   27,   25,   27,&
-   27,   28,   27,   28,   27,   27,&
-   28,   28,   27,   28,   28,   28,&
-   28,   28,   28,   27,   28,   26,&
-   27,   27,   27,   26,   25,   25,&
-   27,   27,   26,   25,   28,   28,&
-   28,   27,   29,   27,   27,   28,&
-   29,   27,   27,   27,   27,   26,&
-   26,   26,   26,   25,   26,   26,&
-   26,   27,   26,   25,   26,   25,&
-   26,   25,   25,   25,   26,   25,&
-   24,   25,   25,   25,   25,   24,&
-   26,   26,   25,   25,   25,   26,&
-   24,   23,   23,   24,   25,   22,&
-   21,   24,   25,   24,   24,   24,&
-   24,   24,   26,   26,   24,   26,&
-   26,   25,   25,   27,   25,   25,&
-   25,   25,   24,   24,   25,   24,&
-   25,   24,   24,   24,   24,   25,&
-   24,   24,   23,   25,   25,   24,&
-   23,   25,   27,   26,   24,   25,&
-   27,   27,   26,   26,   26,   25,&
-   25,   26,   25,   25,   25,   25,&
-   25,   26,   26,   25,   25,   25,&
-   26,   26,   25,   25,   25,   25,&
-   25,   25  /) 
+USE MODE_MSG
 
-!
-!* latitudes of the segments ends (1st point is takeoff, last point is landing)
-!        (decimal degrees)
-!
-TAIRCRAFTS(5)%XSEGLAT = (/44.38992, 44.38830, 44.38713, 44.38609, 44.38512,&
- 44.38420, 44.38336, 44.38248, 44.38151, 44.38046,&
- 44.37942, 44.37835, 44.37729, 44.37630, 44.37530,&
- 44.37407, 44.37156, 44.36766, 44.36184, 44.35421,&
- 44.34673, 44.33986, 44.33271, 44.32536, 44.31800,&
- 44.31084, 44.30350, 44.29764, 44.29618, 44.29837,&
- 44.30431, 44.31233, 44.32061, 44.32872, 44.33691,&
- 44.34478, 44.35284, 44.36091, 44.36894, 44.37666,&
- 44.38478, 44.39273, 44.40079, 44.40907, 44.41711,&
- 44.42513, 44.43278, 44.44096, 44.44872, 44.45604,&
- 44.46205, 44.46722, 44.47121, 44.47528, 44.47961,&
- 44.48401, 44.48833, 44.49243, 44.49633, 44.50052,&
- 44.50473, 44.50888, 44.51291, 44.51712, 44.52108,&
- 44.52521, 44.52945, 44.53390, 44.53808, 44.54208,&
- 44.54610, 44.55014, 44.55407, 44.55854, 44.56353,&
- 44.56913, 44.57520, 44.58130, 44.58722, 44.59335,&
- 44.59960, 44.60600, 44.61232, 44.61881, 44.62519,&
- 44.63163, 44.63794, 44.64420, 44.65037, 44.65659,&
- 44.66282, 44.66911, 44.67549, 44.68206, 44.68845,&
- 44.69469, 44.70078, 44.70619, 44.70841, 44.70754,&
- 44.70336, 44.69652, 44.68935, 44.68254, 44.67577,&
- 44.66869, 44.66101, 44.65345, 44.64679, 44.64044,&
- 44.63337, 44.62587, 44.61864, 44.61169, 44.60483,&
- 44.59803, 44.59103, 44.58360, 44.57622, 44.56934,&
- 44.56229, 44.55523, 44.54845, 44.54173, 44.53448,&
- 44.52751, 44.52062, 44.51361, 44.50655, 44.49974,&
- 44.49290, 44.48547, 44.47823, 44.47103, 44.46391,&
- 44.45718, 44.45013, 44.44316, 44.43579, 44.42883,&
- 44.42169, 44.41486, 44.40771, 44.40028, 44.39341,&
- 44.38669, 44.37949, 44.37202, 44.36499, 44.35838,&
- 44.35147, 44.34417, 44.33688, 44.32985, 44.32279,&
- 44.31593, 44.30918, 44.30215, 44.29464, 44.28732,&
- 44.27999, 44.27291, 44.26616, 44.25944, 44.25235,&
- 44.24517, 44.23800, 44.23081, 44.22393, 44.21662,&
- 44.20946, 44.20266, 44.19582, 44.18895, 44.18196,&
- 44.17498, 44.16789  /)
+IMPLICIT NONE
 
-!
-!* longitudes of the segments ends (1st point is takeoff, last point is landing)
-!        (decimal degrees)
-!
-TAIRCRAFTS(5)%XSEGLON = (/ 0.60996, 0.59790, 0.58554, 0.57296, 0.56046,&
- 0.54813, 0.53613, 0.52410, 0.51125, 0.49815,&
- 0.48593, 0.47312, 0.46084, 0.44829, 0.43635,&
- 0.42374, 0.41321, 0.40397, 0.39536, 0.38761,&
- 0.37986, 0.37280, 0.36554, 0.35794, 0.35061,&
- 0.34350, 0.33612, 0.32785, 0.32066, 0.31451,&
- 0.30861, 0.30376, 0.29840, 0.29296, 0.28726,&
- 0.28162, 0.27583, 0.26994, 0.26423, 0.25891,&
- 0.25323, 0.24778, 0.24212, 0.23624, 0.23064,&
- 0.22502, 0.21967, 0.21392, 0.20841, 0.20143,&
- 0.19328, 0.18381, 0.17339, 0.16261, 0.15162,&
- 0.14002, 0.12849, 0.11740, 0.10678, 0.09554,&
- 0.08426, 0.07307, 0.06239, 0.05099, 0.04032,&
- 0.02923, 0.01810, 0.00646,-0.00451,-0.01539,&
--0.02655,-0.03777,-0.04874,-0.05951,-0.06992,&
--0.08001,-0.08912,-0.09831,-0.10747,-0.11645,&
--0.12552,-0.13428,-0.14260,-0.15142,-0.16039,&
--0.16949,-0.17857,-0.18770,-0.19650,-0.20544,&
--0.21419,-0.22292,-0.23212,-0.24134,-0.25051,&
--0.25963,-0.26837,-0.27772,-0.28662,-0.29513,&
--0.30338,-0.31122,-0.31934,-0.32710,-0.33460,&
--0.34242,-0.35080,-0.35914,-0.36639,-0.37351,&
--0.38158,-0.38999,-0.39802,-0.40577,-0.41337,&
--0.42071,-0.42825,-0.43635,-0.44428,-0.45168,&
--0.45980,-0.46756,-0.47507,-0.48266,-0.49060,&
--0.49836,-0.50612,-0.51447,-0.52244,-0.53007,&
--0.53764,-0.54520,-0.55282,-0.56051,-0.56820,&
--0.57580,-0.58375,-0.59147,-0.59952,-0.60706,&
--0.61472,-0.62227,-0.63041,-0.63860,-0.64631,&
--0.65352,-0.66121,-0.66938,-0.67724,-0.68459,&
--0.69224,-0.70005,-0.70780,-0.71548,-0.72306,&
--0.73052,-0.73777,-0.74522,-0.75335,-0.76142,&
--0.76949,-0.77717,-0.78452,-0.79186,-0.79943,&
--0.80743,-0.81530,-0.82307,-0.83074,-0.83852,&
--0.84620,-0.85372,-0.86115,-0.86912,-0.87743,&
--0.88529,-0.89333  /)
-!
-!
-!* pressure of the segments ends (1st point is takeoff, last point is landing)
-!        (pascals)
-!
-IF (TAIRCRAFTS(5)%LALTDEF) THEN
-  ALLOCATE(TAIRCRAFTS(5)%XSEGP   (TAIRCRAFTS(5)%NSEG+1))
-TAIRCRAFTS(5)%XSEGP  = 100. * (/ 995.7, 998.1, 998.7, 998.8, 999.1,&
- 999.3, 999.9,1000.4,1000.7,1000.6,&
-1000.8,1000.8,1000.6,1000.5,1000.1,&
- 999.7, 999.2, 999.2, 999.6,1000.5,&
-1001.4,1001.6,1001.7,1001.6,1001.7,&
-1001.9,1002.1,1001.9,1001.8,1001.7,&
-1001.6,1001.7,1001.5,1001.2,1000.9,&
-1000.7,1001.1,1001.5,1001.5,1001.5,&
-1001.5,1001.5,1001.9,1002.2,1002.5,&
-1002.7,1002.4,1001.9,1002.0,1001.9,&
-1002.1,1002.7,1002.6,1002.7,1003.0,&
-1003.2,1003.2,1003.3,1003.3,1003.2,&
-1003.3,1003.4,1003.5,1003.0,1002.0,&
-1000.8, 999.2, 998.3, 998.4, 998.3,&
- 998.9, 999.5,1000.4,1001.9,1002.8,&
-1003.3,1003.1,1001.2, 998.9, 996.9,&
- 995.1, 994.9, 995.4, 995.5, 996.1,&
- 996.5, 996.7, 996.8, 996.5, 996.2,&
- 996.3, 997.2, 997.8, 998.6, 998.8,&
- 997.9, 997.7, 996.8, 995.6, 994.7,&
- 994.1, 993.8, 994.1, 995.1, 996.4,&
- 999.0,1001.4,1002.9,1003.4,1002.7,&
-1002.2,1001.8,1001.5,1001.2,1000.5,&
-1000.0, 999.6, 998.4, 997.8, 997.3,&
- 996.4, 996.5, 996.9, 996.9, 997.0,&
- 997.1, 996.7, 996.9, 997.1, 997.2,&
- 997.2, 997.0, 996.6, 996.0, 995.4,&
- 994.9, 995.3, 996.0, 996.8, 997.4,&
- 997.5, 997.6, 997.8, 998.0, 998.2,&
- 998.3, 998.5, 998.6, 998.6, 998.6,&
- 998.3, 998.0, 998.1, 998.2, 998.1,&
- 997.9, 997.9, 997.5, 997.9, 998.4,&
- 998.2, 997.4, 996.7, 996.1, 995.5,&
- 996.0, 996.3, 996.2, 996.3, 996.0,&
- 995.4, 995.4, 995.3, 994.8, 994.5,&
- 994.1, 994.4  /)
- ELSE
-  ALLOCATE(TAIRCRAFTS(5)%XSEGZ   (TAIRCRAFTS(5)%NSEG+1))
-  TAIRCRAFTS(5)%XSEGZ    = (/8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000/)
-ENDIF
-!
-IF ( NAIRCRAFTS < 6 ) RETURN
-#else
-CALL PRINT_MSG( NVERB_FATAL, 'GEN', 'INI_AIRCRAFT', 'aircraft characteristics are commented' )
-#endif
-!----------------------------------------------------------------------------
-!
-!*      1.   Aircraft number 6
-!            -----------------
-!
-#if 0
-!* model number
-!
-TAIRCRAFTS(6)%NMODEL             = 0
-!
-!* model switch
-!
-TAIRCRAFTS(6)%CMODEL              = 'FIX'
-!
-!* aircraft type
-!
-TAIRCRAFTS(6)%CTYPE               = 'AIRCRA'
+TYPE(TAIRCRAFTDATA), INTENT(INOUT) :: TPAIRCRAFT
+CHARACTER(LEN=*),    INTENT(IN)    :: HFILE !Name of the CSV file with the aircraft trajectory
 
-!* aircraft flight name
-!
-TAIRCRAFTS(6)%CTITLE             = 'SAIB19B'
-!
-!* time step for storage
-!
-TAIRCRAFTS(6)%TFLYER_TIME%XTSTEP = 30.
-!
-!* take-off date and time
-!
-TAIRCRAFTS(6)%TLAUNCH%nyear  =  2007
-TAIRCRAFTS(6)%TLAUNCH%nmonth =    04
-TAIRCRAFTS(6)%TLAUNCH%nday   =    19
-TAIRCRAFTS(6)%TLAUNCH%xtime  = 55992.
-!
-!* number of flight segments
-!
-TAIRCRAFTS(6)%NSEG                = 179
-!
-!* initalisation of flag for pressure (T) or Z(F) for aicraft altitude
-!
-TAIRCRAFTS(6)%LALTDEF             = .TRUE.
-!
-!* allocation of the arrays
-!
-ALLOCATE(TAIRCRAFTS(6)%XSEGTIME(TAIRCRAFTS(6)%NSEG  ))
-ALLOCATE(TAIRCRAFTS(6)%XSEGLAT (TAIRCRAFTS(6)%NSEG+1))
-ALLOCATE(TAIRCRAFTS(6)%XSEGLON (TAIRCRAFTS(6)%NSEG+1))
-!
-!* duration of the segments (seconds)
-!
-TAIRCRAFTS(6)%XSEGTIME = (/ 27,   25,   26,   25,   25,   25,&
-   25,   27,   28,   25,   26,   25,&
-   26,   26,   26,   26,   25,   27,&
-   27,   27,   27,   28,   28,   25,&
-   27,   28,   27,   27,   26,   26,&
-   26,   27,   26,   25,   25,   27,&
-   27,   25,   26,   27,   27,   26,&
-   27,   26,   26,   25,   26,   24,&
-   25,   25,   25,   26,   27,   27,&
-   27,   29,   29,   29,   29,   29,&
-   29,   28,   29,   29,   27,   28,&
-   28,   28,   26,   28,   26,   26,&
-   25,   25,   28,   27,   26,   26,&
-   29,   28,   26,   26,   27,   26,&
-   26,   25,   26,   24,   25,   25,&
-   26,   24,   25,   25,   27,   25,&
-   26,   26,   26,   24,   24,   24,&
-   24,   25,   25,   24,   25,   25,&
-   25,   25,   24,   24,   24,   24,&
-   23,   23,   24,   24,   24,   24,&
-   27,   26,   25,   25,   26,   26,&
-   24,   24,   25,   26,   25,   26,&
-   26,   25,   26,   26,   27,   24,&
-   25,   24,   25,   24,   26,   24,&
-   24,   23,   24,   24,   23,   24,&
-   25,   25,   24,   25,   28,   28,&
-   26,   26,   28,   28,   28,   26,&
-   27,   27,   27,   27,   26,   24,&
-   24,   27,   28,   27,   26,   28,&
-   29,   29,   28,   27,   28   /)
-!
-!* latitudes of the segments ends (1st point is takeoff, last point is landing)
-!        (decimal degrees)
-!
-TAIRCRAFTS(6)%XSEGLAT = (/  44.14614, 44.14841, 44.15199, 44.15888, 44.16587,&
- 44.17280, 44.17953, 44.18641, 44.19343, 44.20074,&
- 44.20752, 44.21445, 44.22139, 44.22865, 44.23605,&
- 44.24331, 44.25045, 44.25722, 44.26426, 44.27113,&
- 44.27801, 44.28496, 44.29233, 44.29944, 44.30612,&
- 44.31311, 44.32038, 44.32756, 44.33466, 44.34155,&
- 44.34851, 44.35557, 44.36279, 44.36982, 44.37671,&
- 44.38379, 44.39117, 44.39831, 44.40499, 44.41186,&
- 44.41907, 44.42637, 44.43340, 44.44051, 44.44749,&
- 44.45439, 44.46129, 44.46847, 44.47526, 44.48238,&
- 44.48966, 44.49706, 44.50420, 44.51117, 44.51802,&
- 44.52483, 44.53217, 44.53939, 44.54629, 44.55308,&
- 44.56001, 44.56696, 44.57396, 44.58110, 44.58836,&
- 44.59549, 44.60253, 44.60947, 44.61647, 44.62329,&
- 44.63051, 44.63757, 44.64473, 44.65168, 44.65879,&
- 44.66629, 44.67335, 44.68004, 44.68665, 44.69401,&
- 44.70118, 44.70651, 44.70872, 44.70757, 44.70296,&
- 44.69641, 44.69022, 44.68403, 44.67814, 44.67201,&
- 44.66553, 44.65876, 44.65247, 44.64606, 44.63975,&
- 44.63345, 44.62765, 44.62149, 44.61525, 44.60889,&
- 44.60281, 44.59667, 44.59043, 44.58400, 44.57706,&
- 44.57080, 44.56535, 44.56024, 44.55582, 44.55158,&
- 44.54727, 44.54317, 44.53909, 44.53488, 44.53082,&
- 44.52674, 44.52256, 44.51820, 44.51381, 44.50985,&
- 44.50597, 44.50180, 44.49769, 44.49378, 44.48980,&
- 44.48562, 44.48126, 44.47710, 44.47292, 44.46873,&
- 44.46366, 44.45784, 44.45107, 44.44347, 44.43597,&
- 44.42798, 44.41978, 44.41116, 44.40333, 44.39528,&
- 44.38766, 44.37943, 44.37150, 44.36297, 44.35491,&
- 44.34703, 44.33932, 44.33142, 44.32336, 44.31518,&
- 44.30685, 44.29949, 44.29657, 44.29762, 44.30213,&
- 44.30973, 44.31706, 44.32385, 44.33065, 44.33810,&
- 44.34583, 44.35311, 44.35997, 44.36612, 44.37085,&
- 44.37429, 44.37605, 44.37683, 44.37769, 44.37856,&
- 44.37956, 44.38060, 44.38176, 44.38285, 44.38399,&
- 44.38503, 44.38596, 44.38687, 44.38787, 44.38900   /)
-!
-!* longitudes of the segments ends (1st point is takeoff, last point is landing)
-!        (decimal degrees)
-!
-TAIRCRAFTS(6)%XSEGLON = (/-0.91544,-0.91300,-0.91007,-0.90375,-0.89495,&
--0.88708,-0.87983,-0.87229,-0.86452,-0.85654,&
--0.84914,-0.84153,-0.83408,-0.82634,-0.81846,&
--0.81096,-0.80323,-0.79569,-0.78779,-0.78020,&
--0.77269,-0.76506,-0.75705,-0.74908,-0.74182,&
--0.73428,-0.72632,-0.71835,-0.71057,-0.70309,&
--0.69558,-0.68793,-0.67997,-0.67218,-0.66448,&
--0.65671,-0.64853,-0.64067,-0.63340,-0.62590,&
--0.61814,-0.61023,-0.60250,-0.59460,-0.58691,&
--0.57916,-0.57164,-0.56390,-0.55623,-0.54843,&
--0.54024,-0.53200,-0.52405,-0.51616,-0.50871,&
--0.50122,-0.49331,-0.48550,-0.47785,-0.47037,&
--0.46268,-0.45501,-0.44730,-0.43928,-0.43133,&
--0.42366,-0.41596,-0.40833,-0.40054,-0.39299,&
--0.38491,-0.37715,-0.36912,-0.36132,-0.35336,&
--0.34495,-0.33715,-0.32974,-0.32263,-0.31464,&
--0.30671,-0.29859,-0.29010,-0.28099,-0.27146,&
--0.26236,-0.25343,-0.24444,-0.23594,-0.22713,&
--0.21787,-0.20837,-0.19956,-0.19056,-0.18158,&
--0.17232,-0.16387,-0.15482,-0.14565,-0.13627,&
--0.12737,-0.11867,-0.10967,-0.10052,-0.09125,&
--0.08213,-0.07306,-0.06374,-0.05342,-0.04236,&
--0.03127,-0.02006,-0.00892, 0.00231, 0.01348,&
- 0.02438, 0.03579, 0.04783, 0.05932, 0.07014,&
- 0.08075, 0.09185, 0.10281, 0.11332, 0.12413,&
- 0.13581, 0.14777, 0.15852, 0.16945, 0.18071,&
- 0.19117, 0.19969, 0.20670, 0.21238, 0.21771,&
- 0.22343, 0.22936, 0.23526, 0.24051, 0.24602,&
- 0.25125, 0.25706, 0.26283, 0.26897, 0.27450,&
- 0.27996, 0.28523, 0.29072, 0.29630, 0.30192,&
- 0.30769, 0.31455, 0.32105, 0.32751, 0.33412,&
- 0.34105, 0.34838, 0.35544, 0.36269, 0.37056,&
- 0.37841, 0.38584, 0.39290, 0.40050, 0.40952,&
- 0.42039, 0.43293, 0.44570, 0.45767, 0.46948,&
- 0.48277, 0.49606, 0.50844, 0.52011, 0.53235,&
- 0.54491, 0.55738, 0.56943, 0.58104, 0.59369   /)
-!
-!* pressure of the segments ends (1st point is takeoff, last point is landing)
-!        (pascals)
-!
-IF (TAIRCRAFTS(6)%LALTDEF) THEN
-  ALLOCATE(TAIRCRAFTS(6)%XSEGP   (TAIRCRAFTS(6)%NSEG+1))
-TAIRCRAFTS(6)%XSEGP = 100. * (/ 990.1, 990.5, 991.1, 992.6, 993.7,&
- 993.5, 993.2, 993.5, 993.8, 994.1,&
- 994.4, 994.3, 994.3, 994.7, 995.4,&
- 996.0, 996.2, 996.3, 996.1, 996.0,&
- 996.3, 996.5, 996.9, 997.2, 997.1,&
- 996.9, 996.5, 996.2, 995.9, 995.7,&
- 996.0, 996.3, 996.6, 996.3, 995.8,&
- 995.5, 995.3, 995.6, 996.0, 996.1,&
- 996.0, 995.7, 995.4, 994.8, 994.3,&
- 993.8, 993.7, 994.0, 994.6, 995.4,&
- 996.0, 996.4, 996.3, 996.0, 995.6,&
- 995.7, 995.7, 995.5, 995.1, 994.4,&
- 994.1, 994.1, 994.7, 995.6, 996.4,&
- 997.3, 997.8, 998.3, 998.8, 999.1,&
- 999.4, 999.9,1000.5,1000.7,1000.7,&
- 998.7, 996.2, 994.5, 993.0, 992.1,&
- 991.9, 991.3, 991.7, 992.9, 994.4,&
- 996.1, 996.5, 996.5, 996.3, 995.5,&
- 995.0, 994.7, 994.4, 994.7, 995.2,&
- 995.1, 995.1, 995.0, 994.7, 994.7,&
- 994.9, 996.0, 997.9,1000.2,1001.6,&
-1001.7,1001.6,1000.6, 999.7, 999.2,&
- 998.1, 997.5, 997.3, 997.1, 997.2,&
- 998.2, 999.6,1001.1,1002.2,1002.5,&
-1002.2,1001.6,1000.7,1000.3,1000.3,&
-1000.9,1001.2,1001.2,1001.2,1001.2,&
-1001.3,1001.2,1000.8,1000.3,1000.2,&
-1000.3,1000.3,1000.1, 999.5, 999.0,&
- 998.7, 998.9, 999.3, 999.7, 999.4,&
- 999.1, 999.0, 999.1, 999.4, 999.8,&
- 999.7, 999.5, 999.5, 999.3, 999.4,&
- 999.6, 999.2, 999.1, 998.9, 999.2,&
- 999.1, 997.6, 995.9, 993.8, 993.9,&
- 995.9, 998.5,1000.3,1000.3, 999.8,&
- 999.2, 999.2, 999.2, 998.9, 998.4,&
- 997.7, 997.1, 996.8, 996.9, 996.9  /)
- ELSE
-  ALLOCATE(TAIRCRAFTS(6)%XSEGZ   (TAIRCRAFTS(6)%NSEG+1))
-  TAIRCRAFTS(6)%XSEGZ    = (/8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000/)
-ENDIF 
-!
-IF ( NAIRCRAFTS < 7 ) RETURN
-#else
-CALL PRINT_MSG( NVERB_FATAL, 'GEN', 'INI_AIRCRAFT', 'aircraft characteristics are commented' )
-#endif
-!----------------------------------------------------------------------------
-!
-!
-!*      1.   Aircraft number 7
-!            -----------------
-!
-#if 0
-!* model number
-!
-TAIRCRAFTS(7)%NMODEL             = 0
-!
-!* model switch
-!
-TAIRCRAFTS(7)%CMODEL              = 'FIX'
-!
-!* aircraft type
-!
-TAIRCRAFTS(7)%CTYPE               = 'AIRCRA'
+CHARACTER(LEN=NMAXLINELGT) :: YSTRING
+INTEGER                    :: ILU      ! logical unit of the file
+INTEGER                    :: JI
+REAL                       :: ZTIME, ZLAT, ZLON, ZALT
+REAL                       :: ZTIME_OLD
 
-!* aircraft flight name
-!
-TAIRCRAFTS(7)%CTITLE             = 'TEST_19'
-!
-!* time step for storage
-!
-TAIRCRAFTS(7)%TFLYER_TIME%XTSTEP = 60.
-!
-!* take-off date and time
-!
-TAIRCRAFTS(7)%TLAUNCH%nyear  =  2007
-TAIRCRAFTS(7)%TLAUNCH%nmonth =    04
-TAIRCRAFTS(7)%TLAUNCH%nday   =    19
-TAIRCRAFTS(7)%TLAUNCH%xtime  = 43500.
-!
-!* number of flight segments
-!
-TAIRCRAFTS(7)%NSEG                = 207
-!
-!* initalisation of flag for pressure (T) or Z(F) for aicraft altitude
-!
-TAIRCRAFTS(7)%LALTDEF             = .TRUE.
-!
-!* allocation of the arrays
-!
-ALLOCATE(TAIRCRAFTS(7)%XSEGTIME(TAIRCRAFTS(7)%NSEG  ))
-ALLOCATE(TAIRCRAFTS(7)%XSEGLAT (TAIRCRAFTS(7)%NSEG+1))
-ALLOCATE(TAIRCRAFTS(7)%XSEGLON (TAIRCRAFTS(7)%NSEG+1))
-!
-!* duration of the segments (seconds)
-!
-TAIRCRAFTS(7)%XSEGTIME = (/  60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60   /)
-!
-!* latitudes of the segments ends (1st point is takeoff, last point is landing)
-!        (decimal degrees)
-!
-TAIRCRAFTS(7)%XSEGLAT = (/44.39766, 44.39865, 44.40084, 44.39968, 44.40132,&
- 44.39968, 44.39728, 44.39430, 44.38775, 44.37997,&
- 44.37950, 44.37838, 44.37529, 44.37039, 44.36210,&
- 44.35464, 44.35734, 44.37871, 44.39900, 44.41864,&
- 44.43725, 44.45386, 44.47003, 44.46820, 44.45811,&
- 44.45985, 44.46222, 44.46051, 44.46002, 44.45410,&
- 44.45975, 44.47224, 44.47135, 44.46426, 44.45526,&
- 44.46369, 44.47345, 44.46559, 44.45538, 44.45041,&
- 44.46748, 44.48145, 44.47324, 44.46117, 44.44701,&
- 44.44997, 44.46807, 44.45757, 44.44071, 44.42192,&
- 44.40289, 44.38488, 44.37393, 44.37344, 44.37088,&
- 44.36299, 44.35352, 44.34610, 44.33741, 44.32894,&
- 44.31848, 44.30638, 44.29298, 44.27971, 44.26787,&
- 44.25647, 44.24665, 44.23900, 44.22917, 44.21672,&
- 44.19966, 44.18185, 44.16143, 44.13686, 44.11018,&
- 44.08245, 44.05611, 44.02972, 44.00337, 43.97543,&
- 43.95425, 43.93530, 43.91688, 43.89820, 43.89794,&
- 43.90448, 43.89443, 43.88575, 43.89544, 43.88125,&
- 43.86386, 43.84576, 43.82589, 43.80077, 43.77257,&
- 43.74412, 43.71677, 43.68738, 43.66478, 43.64512,&
- 43.62552, 43.60215, 43.57453, 43.54651, 43.53933,&
- 43.55306, 43.55063, 43.53804, 43.51799, 43.50221,&
- 43.49417, 43.48755, 43.47693, 43.49463, 43.50888,&
- 43.50379, 43.50031, 43.49714, 43.49295, 43.49863,&
- 43.49608, 43.49501, 43.49749, 43.49974, 43.50075,&
- 43.49405, 43.50050, 43.49775, 43.49594, 43.49643,&
- 43.50822, 43.50382, 43.50991, 43.52896, 43.54368,&
- 43.55908, 43.57917, 43.60249, 43.62374, 43.64322,&
- 43.66040, 43.67597, 43.69279, 43.70851, 43.72461,&
- 43.74143, 43.75779, 43.77426, 43.78883, 43.79931,&
- 43.80790, 43.81579, 43.82380, 43.83291, 43.84372,&
- 43.85303, 43.86217, 43.88168, 43.90765, 43.93423,&
- 43.96127, 43.98647, 44.01170, 44.03636, 44.06083,&
- 44.08646, 44.11225, 44.14076, 44.17071, 44.19719,&
- 44.21831, 44.23741, 44.25411, 44.27110, 44.28888,&
- 44.30671, 44.32461, 44.34815, 44.37325, 44.39767,&
- 44.42061, 44.44169, 44.46152, 44.47074, 44.45727,&
- 44.43958, 44.42007, 44.39913, 44.37827, 44.35861,&
- 44.35638, 44.36462, 44.37381, 44.37712, 44.37536,&
- 44.37818, 44.38461, 44.39189, 44.39652, 44.39914,&
- 44.40121, 44.40203, 44.39652, 44.39471, 44.39916,&
- 44.39881, 44.39729, 44.39691  /)
-!
-!* longitudes of the segments ends (1st point is takeoff, last point is landing)
-!        (decimal degrees)
-!
-TAIRCRAFTS(7)%XSEGLON = (/0.76309, 0.76243, 0.74626, 0.71975, 0.69001,&
- 0.65673, 0.62503, 0.59412, 0.56233, 0.53107,&
- 0.49721, 0.46349, 0.42894, 0.39615, 0.36775,&
- 0.33793, 0.31306, 0.29383, 0.27389, 0.25332,&
- 0.23140, 0.20708, 0.18262, 0.17709, 0.21017,&
- 0.21474, 0.19069, 0.17648, 0.20138, 0.21735,&
- 0.19951, 0.17939, 0.17254, 0.19597, 0.20679,&
- 0.18859, 0.16933, 0.18100, 0.20277, 0.20151,&
- 0.18677, 0.16844, 0.17247, 0.19390, 0.20819,&
- 0.19313, 0.17751, 0.18731, 0.22092, 0.25382,&
- 0.28665, 0.31971, 0.35579, 0.39647, 0.43670,&
- 0.47425, 0.51124, 0.54954, 0.58589, 0.62272,&
- 0.65835, 0.69445, 0.73129, 0.76894, 0.80747,&
- 0.84420, 0.87763, 0.90635, 0.93263, 0.95459,&
- 0.96752, 0.97875, 0.98687, 0.99324, 1.00175,&
- 1.01255, 1.02736, 1.04544, 1.06499, 1.08133,&
- 1.09566, 1.10337, 1.10589, 1.11465, 1.11536,&
- 1.09801, 1.10959, 1.12537, 1.10483, 1.09250,&
- 1.08639, 1.08207, 1.07332, 1.07099, 1.07469,&
- 1.08320, 1.09204, 1.09917, 1.09423, 1.08928,&
- 1.09411, 1.09942, 1.10542, 1.10965, 1.11664,&
- 1.10273, 1.10214, 1.12355, 1.14198, 1.17426,&
- 1.21045, 1.24596, 1.25826, 1.23903, 1.21688,&
- 1.21076, 1.22802, 1.23724, 1.24997, 1.22659,&
- 1.23320, 1.25366, 1.23586, 1.22311, 1.24557,&
- 1.25389, 1.23238, 1.23489, 1.25729, 1.24318,&
- 1.21789, 1.21871, 1.23147, 1.20099, 1.16261,&
- 1.12235, 1.08708, 1.05529, 1.02243, 0.98749,&
- 0.95092, 0.91402, 0.87811, 0.84299, 0.80903,&
- 0.77736, 0.74608, 0.71246, 0.68481, 0.66264,&
- 0.64021, 0.61586, 0.59159, 0.56775, 0.54377,&
- 0.51834, 0.49118, 0.46814, 0.45393, 0.44101,&
- 0.42851, 0.41123, 0.39411, 0.37522, 0.35616,&
- 0.34073, 0.32621, 0.31966, 0.31567, 0.31382,&
- 0.30921, 0.30321, 0.29381, 0.28282, 0.27351,&
- 0.28011, 0.29911, 0.31552, 0.29847, 0.27458,&
- 0.25111, 0.22390, 0.19587, 0.17712, 0.20126,&
- 0.22675, 0.25187, 0.27302, 0.29474, 0.31660,&
- 0.34470, 0.37879, 0.41402, 0.44972, 0.48289,&
- 0.51708, 0.55105, 0.58388, 0.61897, 0.65420,&
- 0.68930, 0.72537, 0.76175, 0.77456, 0.75960,&
- 0.76160, 0.76318, 0.76337  /)
-!
-!* pressure of the segments ends (1st point is takeoff, last point is landing)
-!        (pascals)
-!
-IF (TAIRCRAFTS(7)%LALTDEF) THEN
-  ALLOCATE(TAIRCRAFTS(7)%XSEGP   (TAIRCRAFTS(7)%NSEG+1))
-TAIRCRAFTS(7)%XSEGP = 100. * (/1013.5,1012.2, 999.9, 993.1, 992.3,&
- 994.3, 995.5, 996.0, 994.8, 995.3,&
- 996.3, 997.7, 997.7, 994.8, 988.4,&
- 993.4, 999.0, 999.4, 999.8,1000.0,&
- 999.6, 999.6, 999.0,1004.0,1006.1,&
- 994.3, 982.4, 970.9, 959.8, 949.9,&
- 941.0, 930.8, 921.5, 912.1, 902.6,&
- 893.6, 884.2, 875.5, 866.6, 857.9,&
- 849.3, 839.5, 829.7, 820.1, 811.1,&
- 803.1, 801.1, 809.7, 819.5, 830.7,&
- 842.1, 851.2, 859.0, 868.3, 877.2,&
- 885.5, 893.1, 900.8, 907.4, 914.0,&
- 923.0, 933.3, 946.2, 959.3, 972.0,&
- 979.4, 976.9, 964.5, 952.8, 941.4,&
- 929.5, 921.1, 920.5, 924.1, 934.8,&
- 943.9, 955.0, 966.2, 981.6, 992.9,&
- 979.6, 966.2, 954.1, 956.0, 963.3,&
- 969.2, 980.9, 981.8, 977.0, 962.5,&
- 948.5, 936.0, 933.5, 939.9, 949.7,&
- 958.2, 965.0, 978.3, 968.7, 956.7,&
- 948.0, 952.6, 964.2, 970.2, 968.3,&
- 968.8, 977.2, 969.8, 971.4, 976.6,&
- 979.5, 981.2, 981.2, 984.3, 972.3,&
- 960.2, 948.7, 938.2, 929.8, 920.7,&
- 911.0, 899.9, 889.6, 879.4, 868.8,&
- 857.8, 847.7, 838.2, 827.8, 818.0,&
- 807.5, 802.2, 801.8, 810.8, 821.9,&
- 835.8, 848.8, 861.7, 874.2, 887.1,&
- 898.9, 911.0, 922.9, 933.6, 943.9,&
- 954.7, 967.1, 983.3, 973.8, 961.5,&
- 950.8, 939.5, 927.4, 915.9, 904.9,&
- 893.7, 886.8, 891.5, 898.0, 905.7,&
- 913.6, 919.8, 926.5, 935.1, 944.1,&
- 954.5, 965.2, 978.6, 992.7, 984.7,&
- 972.1, 959.6, 948.7, 937.5, 926.5,&
- 917.2, 914.4, 924.3, 940.1, 955.8,&
- 971.7, 984.4, 997.4,1000.3,1000.6,&
-1000.7, 999.6,1000.2, 999.4, 997.7,&
- 992.5, 995.8, 999.1, 999.4, 997.4,&
- 997.8, 996.9, 995.8, 996.1, 996.2,&
- 993.5, 994.8, 995.2, 999.8,1012.4,&
-1012.4,1012.4,1012.4   /)
- ELSE
-  ALLOCATE(TAIRCRAFTS(7)%XSEGZ   (TAIRCRAFTS(7)%NSEG+1))
-  TAIRCRAFTS(7)%XSEGZ    = (/8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000/)
-ENDIF
-!
-IF ( NAIRCRAFTS < 8 ) RETURN
-#else
-CALL PRINT_MSG( NVERB_FATAL, 'GEN', 'INI_AIRCRAFT', 'aircraft characteristics are commented' )
-#endif
-!----------------------------------------------------------------------------
-!
-!*      1.   Aircraft number 8
-!            -----------------
-!
-#if 0
-!* model number
-!
-TAIRCRAFTS(8)%NMODEL             = 0
-!
-!* model switch
-!
-TAIRCRAFTS(8)%CMODEL              = 'FIX'
-!
-!* aircraft type
-!
-TAIRCRAFTS(8)%CTYPE               = 'AIRCRA'
+ZTIME_OLD = 0.
 
-!* aircraft flight name
-!
-TAIRCRAFTS(8)%CTITLE             = 'DIMO22B'
-!
-!* time step for storage
-!
-TAIRCRAFTS(8)%TFLYER_TIME%XTSTEP = 60.
-!
-!* take-off date and time
-!
-TAIRCRAFTS(8)%TLAUNCH%nyear  =  2007
-TAIRCRAFTS(8)%TLAUNCH%nmonth =    04
-TAIRCRAFTS(8)%TLAUNCH%nday   =    22
-TAIRCRAFTS(8)%TLAUNCH%xtime  = 45720.
-!
-!* number of flight segments
-!
-TAIRCRAFTS(8)%NSEG                =  210
-!
-!* initalisation of flag for pressure (T) or Z(F) for aicraft altitude
-!
-TAIRCRAFTS(8)%LALTDEF             = .TRUE.
-!
-!* allocation of the arrays
-!
-ALLOCATE(TAIRCRAFTS(8)%XSEGTIME(TAIRCRAFTS(8)%NSEG  ))
-ALLOCATE(TAIRCRAFTS(8)%XSEGLAT (TAIRCRAFTS(8)%NSEG+1))
-ALLOCATE(TAIRCRAFTS(8)%XSEGLON (TAIRCRAFTS(8)%NSEG+1))
-!
-!* duration of the segments (seconds)
-!
-TAIRCRAFTS(8)%XSEGTIME = (/   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60   /)
-!
-!* latitudes of the segments ends (1st point is takeoff, last point is landing)
-!        (decimal degrees)
-!
-TAIRCRAFTS(8)%XSEGLAT = (/ 44.40018, 44.39977, 44.39868, 44.39992, 44.39773,&
- 44.39547, 44.38932, 44.38114, 44.37649, 44.37682,&
- 44.37604, 44.37314, 44.36610, 44.35869, 44.35126,&
- 44.36888, 44.38902, 44.41019, 44.43016, 44.44711,&
- 44.46309, 44.46567, 44.46411, 44.46376, 44.46685,&
- 44.45785, 44.46202, 44.46796, 44.45953, 44.46578,&
- 44.45835, 44.45396, 44.46302, 44.46765, 44.45875,&
- 44.46523, 44.47145, 44.46173, 44.46061, 44.47287,&
- 44.47889, 44.46331, 44.46504, 44.47908, 44.48783,&
- 44.47358, 44.46026, 44.47212, 44.47249, 44.45646,&
- 44.43659, 44.41697, 44.40199, 44.38879, 44.37329,&
- 44.35638, 44.33957, 44.32298, 44.31241, 44.30906,&
- 44.30746, 44.30375, 44.29695, 44.28690, 44.27741,&
- 44.26870, 44.25519, 44.23423, 44.21513, 44.19742,&
- 44.18321, 44.16521, 44.13944, 44.11380, 44.09166,&
- 44.07140, 44.05157, 44.03142, 44.01214, 43.99344,&
- 43.97188, 43.94739, 43.92061, 43.89076, 43.87434,&
- 43.89083, 43.89292, 43.87508, 43.85464, 43.83516,&
- 43.81576, 43.79388, 43.76739, 43.76922, 43.77542,&
- 43.74814, 43.71925, 43.69068, 43.66563, 43.64503,&
- 43.62444, 43.60469, 43.58496, 43.56237, 43.54501,&
- 43.55352, 43.55457, 43.54557, 43.54903, 43.54089,&
- 43.52829, 43.51990, 43.51346, 43.50497, 43.49425,&
- 43.49525, 43.49562, 43.50077, 43.49815, 43.49617,&
- 43.49845, 43.49810, 43.49390, 43.49866, 43.50523,&
- 43.49673, 43.49247, 43.49800, 43.50190, 43.49003,&
- 43.48993, 43.50083, 43.50555, 43.48778, 43.48823,&
- 43.48480, 43.47242, 43.47737, 43.49374, 43.50835,&
- 43.52650, 43.54671, 43.56923, 43.58943, 43.61022,&
- 43.63331, 43.65439, 43.67176, 43.68666, 43.70027,&
- 43.71413, 43.72785, 43.74148, 43.75517, 43.76971,&
- 43.78253, 43.79616, 43.80787, 43.81857, 43.82942,&
- 43.83995, 43.84981, 43.85823, 43.86486, 43.87613,&
- 43.89896, 43.92984, 43.96011, 43.98988, 44.01919,&
- 44.04820, 44.07634, 44.10430, 44.13180, 44.15935,&
- 44.18754, 44.21629, 44.24437, 44.27247, 44.30043,&
- 44.32868, 44.35654, 44.38023, 44.40228, 44.42240,&
- 44.44159, 44.45799, 44.47140, 44.45998, 44.44209,&
- 44.42257, 44.40038, 44.37905, 44.36011, 44.35666,&
- 44.36594, 44.37397, 44.37687, 44.37565, 44.37784,&
- 44.38400, 44.39171, 44.39634, 44.39880, 44.40099,&
- 44.40118, 44.39848, 44.39311, 44.39245, 44.39898,&
- 44.39910  /)
+! Open file
+OPEN( NEWUNIT = ILU, FILE = HFILE, FORM = 'formatted' )
 
-!
-!* longitudes of the segments ends (1st point is takeoff, last point is landing)
-!        (decimal degrees)
-!
-TAIRCRAFTS(8)%XSEGLON = (/  0.75057, 0.72578, 0.69760, 0.66704, 0.63457,&
- 0.60222, 0.56878, 0.53642, 0.50398, 0.47225,&
- 0.43953, 0.40789, 0.38031, 0.35008, 0.32169,&
- 0.30147, 0.28060, 0.26058, 0.23973, 0.21616,&
- 0.19367, 0.18236, 0.18502, 0.20778, 0.20656,&
- 0.18370, 0.18703, 0.20372, 0.19130, 0.19682,&
- 0.19357, 0.18506, 0.20504, 0.20853, 0.18918,&
- 0.19966, 0.21438, 0.19613, 0.18009, 0.19803,&
- 0.20224, 0.19336, 0.18564, 0.20677, 0.20731,&
- 0.19554, 0.18745, 0.19135, 0.20223, 0.20453,&
- 0.22417, 0.25282, 0.28740, 0.32278, 0.35850,&
- 0.39281, 0.42680, 0.46075, 0.49942, 0.54027,&
- 0.58128, 0.62144, 0.66096, 0.69920, 0.73827,&
- 0.77681, 0.81271, 0.84190, 0.87282, 0.90619,&
- 0.94117, 0.96868, 0.99038, 1.01055, 1.02558,&
- 1.03116, 1.03574, 1.04032, 1.04706, 1.05803,&
- 1.07306, 1.09104, 1.11081, 1.12296, 1.13651,&
- 1.12012, 1.09442, 1.08149, 1.08005, 1.08059,&
- 1.08087, 1.08126, 1.08118, 1.05870, 1.07019,&
- 1.08092, 1.08959, 1.09857, 1.10259, 1.10139,&
- 1.10055, 1.10282, 1.10878, 1.11744, 1.10495,&
- 1.06783, 1.08647, 1.12371, 1.11720, 1.09692,&
- 1.11863, 1.14779, 1.17939, 1.21196, 1.24465,&
- 1.25333, 1.22210, 1.20875, 1.23017, 1.24679,&
- 1.22657, 1.23285, 1.25139, 1.23305, 1.21876,&
- 1.23712, 1.25495, 1.23643, 1.22729, 1.24422,&
- 1.25601, 1.23404, 1.23452, 1.23818, 1.22150,&
- 1.21730, 1.22441, 1.19372, 1.16127, 1.12640,&
- 1.09446, 1.06388, 1.03469, 1.00273, 0.97325,&
- 0.94589, 0.91633, 0.88300, 0.84659, 0.80979,&
- 0.77679, 0.75144, 0.72825, 0.70681, 0.68546,&
- 0.66167, 0.63855, 0.61353, 0.58770, 0.56178,&
- 0.53561, 0.50932, 0.48310, 0.45312, 0.41403,&
- 0.38316, 0.37315, 0.37027, 0.36942, 0.36485,&
- 0.35752, 0.34676, 0.33433, 0.32168, 0.31139,&
- 0.30504, 0.30198, 0.30551, 0.31093, 0.31540,&
- 0.32043, 0.31453, 0.29134, 0.26964, 0.24912,&
- 0.22493, 0.20110, 0.18452, 0.19842, 0.22297,&
- 0.24828, 0.27199, 0.29414, 0.31429, 0.34416,&
- 0.37748, 0.41231, 0.44685, 0.47991, 0.51294,&
- 0.54640, 0.58024, 0.61466, 0.65004, 0.68542,&
- 0.72044, 0.75565, 0.76069, 0.77374, 0.76079,&
- 0.76013  /)
+READ( ILU, END = 101, FMT = '(A)' ) YSTRING ! Reading of header (skip it)
 
-!
-!* pressure of the segments ends (1st point is takeoff, last point is landing)
-!        (pascals)
-!
-IF (TAIRCRAFTS(8)%LALTDEF) THEN
-  ALLOCATE(TAIRCRAFTS(8)%XSEGP   (TAIRCRAFTS(8)%NSEG+1))
-TAIRCRAFTS(8)%XSEGP = 100. * (/1002.7, 994.1, 993.0, 994.6, 994.2,&
- 994.3, 995.3, 996.2, 997.4, 996.8,&
- 997.5, 996.0, 989.7, 990.8, 996.2,&
- 999.0, 997.8, 998.4, 999.0, 999.8,&
- 996.0, 985.6, 978.0, 967.9, 959.6,&
- 952.6, 943.8, 934.8, 924.6, 916.9,&
- 907.5, 898.5, 888.8, 879.9, 870.9,&
- 861.3, 852.3, 843.9, 834.5, 825.4,&
- 816.3, 806.4, 797.4, 788.2, 779.6,&
- 770.6, 762.0, 753.3, 745.0, 741.1,&
- 743.1, 748.3, 754.5, 761.4, 768.9,&
- 777.1, 785.5, 794.8, 806.6, 817.8,&
- 829.3, 840.3, 851.4, 862.4, 873.6,&
- 885.4, 896.8, 911.7, 924.7, 933.7,&
- 946.4, 959.8, 973.2, 981.3, 973.2,&
- 957.9, 945.9, 935.4, 923.1, 913.1,&
- 914.1, 923.5, 939.6, 958.2, 970.2,&
- 975.1, 968.2, 954.8, 939.1, 928.3,&
- 917.1, 915.8, 922.7, 933.0, 943.4,&
- 957.9, 970.0, 977.2, 967.0, 955.4,&
- 940.6, 927.1, 916.1, 918.5, 926.5,&
- 940.9, 954.7, 965.0, 972.7, 964.7,&
- 960.1, 959.0, 959.5, 966.5, 973.6,&
- 977.4, 970.8, 960.0, 948.2, 937.7,&
- 929.8, 920.2, 908.4, 899.6, 888.0,&
- 877.9, 866.9, 855.7, 846.6, 836.1,&
- 825.1, 813.8, 805.6, 795.1, 784.2,&
- 775.1, 769.6, 773.5, 780.9, 790.2,&
- 799.0, 812.7, 823.0, 832.8, 843.1,&
- 854.7, 862.0, 873.0, 885.9, 895.8,&
- 895.4, 884.4, 871.9, 864.3, 854.8,&
- 844.0, 833.2, 824.1, 814.2, 805.5,&
- 796.0, 786.3, 777.5, 776.5, 789.1,&
- 803.2, 814.9, 826.4, 834.9, 842.7,&
- 850.2, 861.0, 870.4, 880.3, 891.1,&
- 902.5, 914.6, 927.2, 936.1, 946.8,&
- 961.5, 974.1, 988.2, 993.4, 996.2,&
- 998.3, 995.0, 995.7, 996.1, 995.0,&
- 992.5, 995.4, 996.3, 993.9, 988.9,&
- 992.2, 995.8, 996.7, 995.3, 995.0,&
- 995.6, 995.8, 995.6, 995.4, 994.3,&
- 995.1, 995.0, 986.7, 992.4,1009.3,&
-1010.1  /)
- ELSE
-  ALLOCATE(TAIRCRAFTS(8)%XSEGZ   (TAIRCRAFTS(8)%NSEG+1))
-  TAIRCRAFTS(8)%XSEGZ    = (/8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000/)
-ENDIF 
-!
-IF ( NAIRCRAFTS < 9 ) RETURN
-#else
-CALL PRINT_MSG( NVERB_FATAL, 'GEN', 'INI_AIRCRAFT', 'aircraft characteristics are commented' )
-#endif
-!
-!*      1.   Aircraft number 9
-!            -----------------
-!
-#if 0
-!* model number
-!
-TAIRCRAFTS(9)%NMODEL             = 0
-!
-!* model switch
-!
-TAIRCRAFTS(9)%CMODEL              = 'FIX'
-!
-!* aircraft type
-!
-TAIRCRAFTS(9)%CTYPE               = 'AIRCRA'
+DO JI = 1, TPAIRCRAFT%NSEG + 1
+  ! Read aircraft position
+  READ( ILU, END = 101, FMT = '(A)' ) YSTRING
 
-!* aircraft flight name
-!
-TAIRCRAFTS(9)%CTITLE             = 'DIMO23A'
-!
-!* time step for storage
-!
-TAIRCRAFTS(9)%TFLYER_TIME%XTSTEP = 60.
-!
-!* take-off date and time
-!
-TAIRCRAFTS(9)%TLAUNCH%nyear  =  2007
-TAIRCRAFTS(9)%TLAUNCH%nmonth =    04
-TAIRCRAFTS(9)%TLAUNCH%nday   =    23
-TAIRCRAFTS(9)%TLAUNCH%xtime  = 28080.
-!
-!* number of flight segments
-!
-TAIRCRAFTS(9)%NSEG                =   217
-!
-!* initalisation of flag for pressure (T) or Z(F) for aicraft altitude
-!
-TAIRCRAFTS(9)%LALTDEF             = .TRUE.
-!
-!* allocation of the arrays
-!
-ALLOCATE(TAIRCRAFTS(9)%XSEGTIME(TAIRCRAFTS(9)%NSEG  ))
-ALLOCATE(TAIRCRAFTS(9)%XSEGLAT (TAIRCRAFTS(9)%NSEG+1))
-ALLOCATE(TAIRCRAFTS(9)%XSEGLON (TAIRCRAFTS(9)%NSEG+1))
-!
-!* duration of the segments (seconds)
-!
-TAIRCRAFTS(9)%XSEGTIME = (/   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60,   60,   60,   60,   60,   60,&
-   60 /)
+  READ( YSTRING, * ) ZTIME, ZLAT, ZLON, ZALT
 
-!
-!* latitudes of the segments ends (1st point is takeoff, last point is landing)
-!        (decimal degrees)
-!
-TAIRCRAFTS(9)%XSEGLAT = (/  44.39751, 44.39753, 44.39752, 44.39853, 44.40034,&
- 44.39319, 44.38918, 44.39412, 44.40370, 44.40138,&
- 44.39750, 44.39613, 44.39272, 44.38845, 44.38440,&
- 44.38014, 44.37677, 44.37483, 44.36861, 44.35633,&
- 44.33758, 44.31741, 44.29690, 44.27804, 44.28492,&
- 44.30878, 44.33297, 44.35655, 44.37919, 44.40120,&
- 44.42312, 44.44432, 44.46236, 44.47801, 44.46757,&
- 44.46157, 44.45602, 44.45566, 44.47449, 44.47193,&
- 44.45598, 44.45165, 44.47066, 44.47028, 44.45764,&
- 44.45697, 44.47308, 44.46318, 44.45201, 44.46706,&
- 44.47951, 44.46693, 44.45556, 44.46823, 44.46949,&
- 44.47851, 44.49455, 44.51153, 44.52774, 44.54366,&
- 44.55714, 44.56864, 44.57811, 44.58390, 44.58479,&
- 44.58010, 44.57385, 44.56768, 44.56246, 44.55190,&
- 44.53340, 44.50838, 44.49894, 44.48327, 44.46686,&
- 44.45235, 44.43776, 44.42406, 44.40974, 44.39455,&
- 44.37895, 44.36464, 44.35046, 44.33591, 44.32117,&
- 44.30449, 44.28671, 44.26956, 44.25473, 44.23844,&
- 44.22230, 44.20516, 44.18263, 44.15639, 44.13418,&
- 44.13223, 44.13549, 44.13856, 44.14149, 44.14458,&
- 44.14644, 44.15412, 44.16261, 44.16914, 44.17509,&
- 44.18020, 44.18150, 44.17193, 44.17974, 44.18504,&
- 44.18683, 44.16630, 44.14618, 44.16061, 44.17979,&
- 44.19216, 44.18184, 44.16803, 44.15456, 44.16727,&
- 44.18122, 44.17483, 44.17399, 44.17022, 44.16534,&
- 44.16835, 44.16535, 44.16013, 44.16126, 44.15846,&
- 44.14933, 44.14374, 44.15137, 44.16848, 44.17712,&
- 44.19348, 44.22233, 44.25237, 44.28189, 44.31303,&
- 44.34515, 44.37181, 44.38475, 44.38428, 44.38017,&
- 44.37486, 44.37286, 44.37742, 44.38493, 44.39367,&
- 44.39152, 44.38350, 44.38046, 44.38063, 44.38652,&
- 44.39793, 44.41131, 44.42400, 44.43619, 44.44731,&
- 44.45933, 44.47095, 44.47776, 44.48403, 44.49192,&
- 44.50044, 44.51020, 44.52095, 44.53370, 44.54737,&
- 44.55783, 44.56727, 44.57504, 44.58094, 44.58412,&
- 44.58225, 44.57236, 44.55879, 44.54496, 44.53045,&
- 44.51564, 44.50161, 44.48671, 44.47298, 44.45754,&
- 44.44110, 44.42419, 44.40608, 44.38719, 44.36785,&
- 44.35673, 44.36123, 44.37101, 44.37533, 44.37696,&
- 44.37613, 44.38058, 44.38785, 44.39397, 44.39713,&
- 44.39959, 44.40136, 44.40122, 44.39871, 44.39061,&
- 44.39359, 44.39652, 44.38966, 44.39608, 44.39569,&
- 44.39465, 44.40496, 44.40415, 44.39887, 44.39713,&
- 44.39695, 44.39696, 44.39696 /)
+  IF ( JI > 1 ) TPAIRCRAFT%XSEGTIME(JI-1) = ZTIME - ZTIME_OLD
+  TPAIRCRAFT%XSEGLAT(JI) = ZLAT
+  TPAIRCRAFT%XSEGLON(JI) = ZLON
+  IF ( TPAIRCRAFT%LALTDEF ) THEN
+    TPAIRCRAFT%XSEGP(JI) = ZALT * 100. ! *100 to convert from hPa to Pa
+  ELSE
+    TPAIRCRAFT%XSEGZ(JI) = ZALT
+  END IF
 
+  ZTIME_OLD = ZTIME
+END DO
 
-!
-!* longitudes of the segments ends (1st point is takeoff, last point is landing)
-!        (decimal degrees)
-!
-TAIRCRAFTS(9)%XSEGLON = (/  0.76306, 0.76307, 0.76305, 0.76269, 0.74580,&
- 0.74072, 0.76103, 0.77639, 0.75449, 0.71425,&
- 0.68316, 0.65249, 0.61874, 0.58328, 0.55006,&
- 0.51760, 0.48441, 0.45139, 0.42065, 0.39305,&
- 0.37216, 0.35714, 0.34286, 0.32602, 0.30618,&
- 0.29573, 0.28531, 0.27413, 0.26043, 0.24570,&
- 0.23012, 0.21237, 0.18837, 0.17083, 0.18349,&
- 0.20509, 0.19600, 0.19825, 0.19492, 0.20130,&
- 0.19254, 0.19556, 0.19605, 0.20768, 0.19070,&
- 0.19338, 0.19937, 0.20087, 0.19005, 0.19651,&
- 0.20863, 0.20360, 0.19309, 0.19990, 0.20947,&
- 0.18161, 0.14867, 0.11569, 0.08135, 0.04598,&
- 0.00878,-0.03075,-0.07182,-0.11374,-0.15676,&
--0.19923,-0.24111,-0.28194,-0.32286,-0.36105,&
--0.38799,-0.39993,-0.43095,-0.44520,-0.45588,&
--0.47157,-0.48673,-0.50422,-0.52201,-0.53820,&
--0.55361,-0.57117,-0.58856,-0.60501,-0.62178,&
--0.63509,-0.64631,-0.65933,-0.67844,-0.69380,&
--0.70676,-0.71683,-0.72233,-0.72811,-0.74429,&
--0.78257,-0.82472,-0.86568,-0.90634,-0.94853,&
--0.99312,-1.03733,-1.08136,-1.12497,-1.16729,&
--1.20861,-1.24852,-1.24317,-1.24128,-1.26618,&
--1.29450,-1.30808,-1.30763,-1.30267,-1.29873,&
--1.29013,-1.29921,-1.31215,-1.31578,-1.31067,&
--1.30216,-1.30826,-1.32260,-1.30085,-1.30780,&
--1.32801,-1.30845,-1.29379,-1.31837,-1.32354,&
--1.30182,-1.31707,-1.34122,-1.33728,-1.29928,&
--1.26473,-1.24858,-1.23360,-1.21667,-1.20075,&
--1.19259,-1.17065,-1.13473,-1.09576,-1.05647,&
--1.01627,-0.97416,-0.93471,-0.90394,-0.87912,&
--0.85150,-0.82113,-0.79423,-0.76751,-0.74274,&
--0.72071,-0.70026,-0.67875,-0.65563,-0.63129,&
--0.60738,-0.58319,-0.55662,-0.52999,-0.50503,&
--0.48014,-0.45503,-0.42987,-0.40221,-0.36724,&
--0.32885,-0.28896,-0.24699,-0.20322,-0.15936,&
--0.11700,-0.07826,-0.04194,-0.00601, 0.02865,&
- 0.06331, 0.09933, 0.13591, 0.17155, 0.20078,&
- 0.22495, 0.24723, 0.26669, 0.28571, 0.30512,&
- 0.33057, 0.36230, 0.39468, 0.42872, 0.46249,&
- 0.49528, 0.52814, 0.56066, 0.59247, 0.62509,&
- 0.65765, 0.68978, 0.72237, 0.75668, 0.77236,&
- 0.75175, 0.76499, 0.76381, 0.74495, 0.76561,&
- 0.78717, 0.76713, 0.74758, 0.76078, 0.76316,&
- 0.76337, 0.76334, 0.76336  /)
+101 CONTINUE
 
-!
-!* pressure of the segments ends (1st point is takeoff, last point is landing)
-!        (pascals)
-!
+CLOSE( ILU )
 
-IF (TAIRCRAFTS(9)%LALTDEF) THEN
-  ALLOCATE(TAIRCRAFTS(9)%XSEGP   (TAIRCRAFTS(9)%NSEG+1))
-TAIRCRAFTS(9)%XSEGP = 100. * (/ 1014.8,1014.8,1014.8,1014.8,1005.5,&
- 987.8, 972.7, 959.2, 957.2, 978.1,&
- 993.8, 993.5, 992.9, 995.5, 997.4,&
- 997.7, 998.5, 998.3, 996.8, 997.7,&
-1000.1, 999.3, 998.7, 997.4, 996.2,&
- 998.3,1000.0, 999.9, 999.1, 998.6,&
- 998.5, 998.0, 999.2, 999.1,1009.5,&
-1003.4, 990.2, 978.4, 967.1, 956.2,&
- 945.9, 934.6, 924.2, 912.3, 901.3,&
- 889.8, 878.6, 866.9, 855.7, 844.9,&
- 834.2, 823.0, 812.0, 801.4, 800.1,&
- 806.9, 815.5, 824.4, 834.5, 845.2,&
- 856.3, 870.2, 884.9, 898.2, 913.0,&
- 927.0, 940.6, 953.4, 966.2, 979.8,&
- 992.8,1004.2,1006.7, 993.2, 982.3,&
- 972.7, 962.0, 950.9, 940.8, 928.6,&
- 917.0, 906.2, 895.3, 884.4, 874.0,&
- 864.1, 854.4, 844.5, 834.4, 823.4,&
- 812.3, 803.1, 806.5, 815.1, 824.1,&
- 836.3, 845.1, 854.7, 866.7, 884.2,&
- 903.2, 921.4, 938.5, 953.8, 969.2,&
- 986.8,1000.3,1007.3, 995.3, 983.3,&
- 986.5,1005.5,1005.5, 994.9, 985.4,&
- 973.9, 964.7, 954.5, 945.0, 935.2,&
- 924.2, 913.1, 902.7, 891.8, 881.8,&
- 871.0, 860.2, 850.3, 839.9, 830.3,&
- 820.3, 809.5, 801.3, 802.9, 813.4,&
- 825.9, 839.4, 855.4, 874.2, 894.0,&
- 909.5, 925.8, 940.5, 955.0, 969.2,&
- 983.7,1000.0,1008.1,1000.5, 988.9,&
- 982.3, 972.7, 960.7, 951.3, 939.8,&
- 929.0, 915.4, 904.9, 895.4, 884.3,&
- 873.4, 863.1, 852.1, 840.5, 829.5,&
- 819.2, 809.6, 800.6, 801.4, 809.6,&
- 818.1, 829.6, 840.8, 854.8, 868.4,&
- 882.0, 894.2, 908.1, 922.9, 937.5,&
- 950.9, 967.8, 987.5,1003.2,1005.1,&
-1003.5,1003.3,1002.4,1002.3,1002.0,&
- 995.6, 995.5, 998.5, 999.5,1000.3,&
-1000.6, 999.6, 998.8, 999.2, 998.0,&
- 997.3, 995.4, 995.1, 998.1, 988.4,&
- 976.2, 965.3, 956.4, 945.6, 947.8,&
- 965.9, 985.1,1003.1,1013.9,1013.9,&
-1013.9,1013.9,1013.9  /)
- ELSE
-  ALLOCATE(TAIRCRAFTS(9)%XSEGZ   (TAIRCRAFTS(9)%NSEG+1))
-  TAIRCRAFTS(9)%XSEGZ    = (/8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000,8000,8000,&
-8000,8000,8000/)
-ENDIF
-#else
-CALL PRINT_MSG( NVERB_FATAL, 'GEN', 'INI_AIRCRAFT', 'aircraft characteristics are commented' )
-#endif
-!
-!----------------------------------------------------------------------------
-!
-!
-END SUBROUTINE INI_AIRCRAFT
+IF ( JI < TPAIRCRAFT%NSEG + 1 ) &
+  CALL PRINT_MSG( NVERB_ERROR, 'GEN', 'AIRCRAFT_CSV_READ', 'Data not found in file ' // TRIM( HFILE ) )
+
+END SUBROUTINE AIRCRAFT_CSV_READ
+
+END MODULE MODE_INI_AIRCRAFT
diff --git a/src/MNH/ini_aircraft_balloon.f90 b/src/MNH/ini_aircraft_balloon.f90
index 64135ed5c3489880e9e9928cc21150473ad1250f..a9fb888da7ed8926609defc9fc3cd434e35b5b95 100644
--- a/src/MNH/ini_aircraft_balloon.f90
+++ b/src/MNH/ini_aircraft_balloon.f90
@@ -98,12 +98,12 @@ USE MODD_PARAM_n,    ONLY: CCLOUD
 USE MODD_PARAMETERS
 !
 USE MODE_GRIDPROJ
+USE MODE_INI_AIRCRAFT
+USE MODE_INI_BALLOON
 USE MODE_ll
 USE MODE_MODELN_HANDLER
 USE MODE_MSG
 !
-USE MODI_INI_BALLOON
-USE MODI_INI_AIRCRAFT
 !
 IMPLICIT NONE
 !
diff --git a/src/MNH/ini_balloon.f90 b/src/MNH/ini_balloon.f90
index f52a2f994e9e2e3e4da87ee341ec777a7bbdfb59..cda0db7c2cf4d46d8b82479906c3c719cf819e53 100644
--- a/src/MNH/ini_balloon.f90
+++ b/src/MNH/ini_balloon.f90
@@ -3,6 +3,16 @@
 !MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
 !MNH_LIC for details. version 1.
 !-----------------------------------------------------------------
+MODULE MODE_INI_BALLOON
+
+IMPLICIT NONE
+
+PRIVATE
+
+PUBLIC :: INI_BALLOON
+
+CONTAINS
+
 !     ######################
       SUBROUTINE INI_BALLOON
 !     ######################
@@ -98,7 +108,7 @@
 USE MODD_AIRCRAFT_BALLOON
 USE MODD_CONF,             ONLY: NMODEL_NEST => NMODEL
 USE MODD_CST,              ONLY: XPI
-USE MODD_PARAMETERS,       ONLY: XUNDEF
+USE MODD_PARAMETERS,       ONLY: XNEGUNDEF, XUNDEF
 
 USE MODE_MSG
 
@@ -349,3 +359,5 @@ IF ( NBALLOONS > 0 ) CALL BALLOONS_NML_DEALLOCATE()
 !----------------------------------------------------------------------------
 !
 END SUBROUTINE INI_BALLOON
+
+END MODULE MODE_INI_BALLOON
diff --git a/src/MNH/modn_aircrafts.f90 b/src/MNH/modn_aircrafts.f90
new file mode 100644
index 0000000000000000000000000000000000000000..f4309dfc793e1387355328bb6af8844ef64066e1
--- /dev/null
+++ b/src/MNH/modn_aircrafts.f90
@@ -0,0 +1,69 @@
+!MNH_LIC Copyright 2022-2022 CNRS, Meteo-France and Universite Paul Sabatier
+!MNH_LIC This is part of the Meso-NH software governed by the CeCILL-C licence
+!MNH_LIC version 1. See LICENSE, CeCILL-C_V1-en.txt and CeCILL-C_V1-fr.txt
+!MNH_LIC for details. version 1.
+!-----------------------------------------------------------------
+! Author: P. Wautelet 19/08/2022
+! Modifications:
+!-----------------------------------------------------------------
+!####################
+MODULE MODN_AIRCRAFTS
+!####################
+!
+! Namelist with the the characteristics of the aircrafts
+!
+USE MODD_AIRCRAFT_BALLOON
+USE MODD_PARAMETERS,       ONLY: NFILENAMELGTMAX
+USE MODD_TYPE_DATE,        ONLY: DATE_TIME
+
+IMPLICIT NONE
+
+!Use separated arrays for the different aircraft characteristics
+!Using directly TAIRCRAFTDATA derived types does not work due to compiler bug (GCC at least from 5.5 to 12.1, see GCC bug 106065)
+
+CHARACTER(LEN=3),               DIMENSION(:), ALLOCATABLE :: CMODEL
+INTEGER,                        DIMENSION(:), ALLOCATABLE :: NMODEL
+CHARACTER(LEN=6),               DIMENSION(:), ALLOCATABLE :: CTYPE
+CHARACTER(LEN=10),              DIMENSION(:), ALLOCATABLE :: CTITLE
+TYPE(DATE_TIME),                DIMENSION(:), ALLOCATABLE :: TLAUNCH
+REAL,                           DIMENSION(:), ALLOCATABLE :: XTSTEP
+INTEGER,                        DIMENSION(:), ALLOCATABLE :: NPOS
+LOGICAL,                        DIMENSION(:), ALLOCATABLE :: LALTDEF
+CHARACTER(LEN=NFILENAMELGTMAX), DIMENSION(:), ALLOCATABLE :: CFILE !Names of CSV files with trajectory data
+
+!Do not read CTYPE, value is always forced to 'AIRCRA'
+NAMELIST / NAM_AIRCRAFTS / CFILE, CMODEL, CTITLE, LALTDEF, NMODEL, NPOS, TLAUNCH, XTSTEP
+
+CONTAINS
+
+SUBROUTINE AIRCRAFTS_NML_ALLOCATE( KAIRCRAFTS )
+  INTEGER, INTENT(IN) :: KAIRCRAFTS
+
+  !Note: the default values are used/checked in ini_aircraft => be careful to ensure coherency
+  ALLOCATE( CMODEL (KAIRCRAFTS) ); CMODEL(:)  = 'FIX'
+  ALLOCATE( CTITLE (KAIRCRAFTS) ); CTITLE(:)  = ''
+  ALLOCATE( CTYPE  (KAIRCRAFTS) ); CTYPE(:)   = 'AIRCRA'
+  ALLOCATE( NMODEL (KAIRCRAFTS) ); NMODEL(:)  = 0
+  ALLOCATE( TLAUNCH(KAIRCRAFTS) )
+  ALLOCATE( XTSTEP (KAIRCRAFTS) ); XTSTEP(:)  = XNEGUNDEF
+  ALLOCATE( NPOS   (KAIRCRAFTS) ); NPOS(:)    = 0
+  ALLOCATE( LALTDEF(KAIRCRAFTS) ); LALTDEF(:) = .FALSE.
+  ALLOCATE( CFILE  (KAIRCRAFTS) ); CFILE(:)   = ''
+END SUBROUTINE AIRCRAFTS_NML_ALLOCATE
+
+
+SUBROUTINE AIRCRAFTS_NML_DEALLOCATE( )
+  !Deallocate namelist arrays
+  DEALLOCATE( CMODEL     )
+  DEALLOCATE( CTITLE     )
+  DEALLOCATE( CTYPE      )
+  DEALLOCATE( NMODEL     )
+  DEALLOCATE( TLAUNCH    )
+  DEALLOCATE( XTSTEP     )
+  DEALLOCATE( NPOS       )
+  DEALLOCATE( LALTDEF    )
+  DEALLOCATE( CFILE      )
+END SUBROUTINE AIRCRAFTS_NML_DEALLOCATE
+
+
+END MODULE MODN_AIRCRAFTS
diff --git a/src/MNH/read_exsegn.f90 b/src/MNH/read_exsegn.f90
index a3303a5fead852cc87083e3836346fc343f685ed..ca2f7047ab9bb419fb5afe656a1caf8092bbfd41 100644
--- a/src/MNH/read_exsegn.f90
+++ b/src/MNH/read_exsegn.f90
@@ -305,6 +305,7 @@ END MODULE MODI_READ_EXSEG_n
 !  P. Wautelet 27/04/2022: add namelist for profilers
 !  P. Wautelet 24/06/2022: remove check on CSTORAGE_TYPE for restart of ForeFire variables
 !  P. Wautelet 13/07/2022: add namelist for flyers and balloons
+!  P. Wautelet 19/08/2022: add namelist for aircrafts
 !------------------------------------------------------------------------------
 !
 !*       0.    DECLARATIONS
@@ -343,8 +344,9 @@ USE MODI_TEST_NAM_VAR
 
 USE MODN_2D_FRC
 USE MODN_ADV_n      ! The final filling of these modules for the model n is
+USE MODN_AIRCRAFTS, ONLY: AIRCRAFTS_NML_ALLOCATE, NAM_AIRCRAFTS
 USE MODN_BACKUP
-USE MODN_BALLOONS, ONLY: BALLOONS_NML_ALLOCATE, NAM_BALLOONS
+USE MODN_BALLOONS,  ONLY: BALLOONS_NML_ALLOCATE, NAM_BALLOONS
 USE MODN_BLANK_n
 USE MODN_BLOWSNOW
 USE MODN_BLOWSNOW_n
@@ -851,6 +853,13 @@ IF (KMI == 1) THEN
 
   CALL POSNAM(ILUSEG,'NAM_FLYERS',GFOUND,ILUOUT)
   IF (GFOUND) READ(UNIT=ILUSEG,NML=NAM_FLYERS)
+
+  IF ( NAIRCRAFTS > 0 ) THEN
+    CALL AIRCRAFTS_NML_ALLOCATE( NBALLOONS )
+    CALL POSNAM(ILUSEG,'NAM_AIRCRAFTS',GFOUND,ILUOUT)
+    IF (GFOUND) READ(UNIT=ILUSEG,NML=NAM_AIRCRAFTS)
+  END IF
+
   IF ( NBALLOONS > 0 ) THEN
     CALL BALLOONS_NML_ALLOCATE( NBALLOONS )
     CALL POSNAM(ILUSEG,'NAM_BALLOONS',GFOUND,ILUOUT)
diff --git a/src/MNH/write_desfmn.f90 b/src/MNH/write_desfmn.f90
index 046b0bd1e2d49fec9ffaa630145e28a3bdcb6a4e..e7a777d6420ea0b8ef48221ed1097499d8c9f50e 100644
--- a/src/MNH/write_desfmn.f90
+++ b/src/MNH/write_desfmn.f90
@@ -163,8 +163,9 @@ USE MODD_STATION_n,  ONLY: LSTATION
 !
 USE MODE_MSG
 !
+! USE MODN_AIRCRAFTS
 USE MODN_BACKUP
-USE MODN_BALLOONS
+! USE MODN_BALLOONS
 USE MODN_CONF
 USE MODN_DYN
 USE MODN_NESTING
@@ -455,7 +456,8 @@ IF(LSERIES) WRITE(UNIT=ILUSEG,NML=NAM_SERIES)
 IF(NMODEL_CLOUD/=NUNDEF) WRITE(UNIT=ILUSEG,NML=NAM_TURB_CLOUD)
 IF(CTURB /= 'NONE') WRITE(UNIT=ILUSEG,NML=NAM_TURB)
 WRITE(UNIT=ILUSEG,NML=NAM_FLYERS)
-!Not possible (for the moment): arrays have been deallocated after ini_balloon: WRITE(UNIT=ILUSEG,NML=NAM_BALLOONS)
+!Not possible (for the moment): arrays have been deallocated after ini_aircraft: WRITE(UNIT=ILUSEG,NML=NAM_AIRCRAFTS)
+!Not possible (for the moment): arrays have been deallocated after ini_balloon:  WRITE(UNIT=ILUSEG,NML=NAM_BALLOONS)
 !
 !
 !