1 | PROGRAM toot |
---|
2 | IMPLICIT NONE |
---|
3 | |
---|
4 | !--ICAO profile |
---|
5 | !--flight level given ICAO table |
---|
6 | !--41 levels from ICAO table and 1 dummy level on bottom, 2 on top |
---|
7 | INTEGER, PARAMETER :: flevel=44, klev=79 |
---|
8 | !--feetICAO(flevel)=surface, feetICAO(1)=haute altitude |
---|
9 | REAL :: feetICAO(flevel) |
---|
10 | !--pressure ICAO in hPa - from top to surface |
---|
11 | REAL, DIMENSION(flevel), PARAMETER :: & |
---|
12 | pICAO=(/0.,125.,188.,197., & |
---|
13 | 206.,217.,227.,238.,250.,262.,274.,287.,301.,315., & |
---|
14 | 329.,344.,360.,376.,393.,410.,428.,446.,466.,485., & |
---|
15 | 506.,527.,549.,572.,595.,619.,644.,670.,697.,724., & |
---|
16 | 753.,782.,812.,843.,875.,908.,942.,977.,1013.,1050./) |
---|
17 | |
---|
18 | REAL :: feetLMDz, altLMDz(klev) |
---|
19 | REAL, PARAMETER :: feet2meters=0.3048 |
---|
20 | INTEGER :: k, kk |
---|
21 | |
---|
22 | REAL,DIMENSION(klev),PARAMETER :: pplay=(/ |
---|
23 | & |
---|
24 | 101202.1, 100942.4, 100653.4, 100331.9, 99974.2, 99576.55, |
---|
25 | & |
---|
26 | 99134.67, 98643.84, 98098.98, 97494.48, 96824.3, 96081.91, 95260.24, |
---|
27 | & |
---|
28 | 94351.73, 93348.34, 92241.55, 91022.46, 89681.82, 88210.2, 86598.11, |
---|
29 | & |
---|
30 | 84836.23, 82915.69, 80828.4, 78567.48, 76127.79, 73506.45, 70703.54, |
---|
31 | & |
---|
32 | 67722.81, 64572.39, 61265.38, 57820.47, 54262.17, 50620.74, |
---|
33 | 46931.69, & |
---|
34 | 43234.69, 39571.99, 35986.37, 32518.85, 29206.36, 26079.83, |
---|
35 | 23162.71, & |
---|
36 | 20470.42, 18010.36, 15782.71, 13781.58, 11996.42, 10413.44, |
---|
37 | 9016.865, & |
---|
38 | 7790.02, 6716.147, 5778.999, 4963.233, 4254.644, 3640.276, 3108.45, |
---|
39 | & |
---|
40 | 2648.733, 2251.867, 1909.687, 1615.018, 1361.581, 1143.891, |
---|
41 | 957.1722, & |
---|
42 | 797.2696, 660.5754, 543.9607, 444.7146, 360.4912, 289.2627, |
---|
43 | 229.2787, & |
---|
44 | 179.0303, 137.2198, 102.7344, 74.62312, 52.07758, 34.41441, |
---|
45 | 21.05668, & |
---|
46 | 11.50741, 5.296797, 1.483435 /) |
---|
47 | |
---|
48 | !--initialise ICAO flight levels |
---|
49 | DO k=3,flevel |
---|
50 | feetICAO(k)=FLOAT(flevel-k-1)*1000. |
---|
51 | ENDDO |
---|
52 | feetICAO(2)= 47000. |
---|
53 | feetICAO(1)=300000. |
---|
54 | |
---|
55 | DO k=1,klev |
---|
56 | DO kk=1,flevel-1 |
---|
57 | IF (pplay(k).LT.pICAO(kk+1)*100. .AND. |
---|
58 | pplay(k).GE.pICAO(kk)*100.) THEN |
---|
59 | feetLMDz=feetICAO(kk)+(feetICAO(kk+1)-feetICAO(kk)) & |
---|
60 | *(pplay(k)-pICAO(kk)*100.)/(pICAO(kk+1)*100.-pICAO(kk)*100.) |
---|
61 | altLMDz(k)=feet2meters*feetLMDz*1.e-3 !-en km |
---|
62 | ENDIF |
---|
63 | ENDDO |
---|
64 | ENDDO |
---|
65 | |
---|
66 | print *,'altLMDz=', altLMDz |
---|
67 | |
---|
68 | END |
---|
69 | |
---|