Ticket #498: doc.tex

File doc.tex, 5.2 KB (added by Johannes K. Nielsen, 5 years ago)

Documentation and test output.

Line 
1The ropp\_fm\_ecmwf\_state2state subroutine maps the state vector x\%state into the state variables x\%temp, x\%shum, x\%press\_sfc x\%press and x\%geop.
2
3Calculation of full level pressure and geopotential is following
4
5@article{simmons_energy_1981,
6 title = {An energy and angular-momentum conserving vertical finite-difference scheme and hybrid vertical coordinates},
7 volume = {109},
8 journal = {mwr},
9 author = {Simmons, A. J. and Burridge, D. M.},
10 year = {1981},
11 pages = {758--766}
12}
13equation 3.18.
14
15The ropp\_fm\_ecmwf\_state2state\_tl(x, x\_tl) subroutine propagates a perturbation of the state vector x\_tl\%state to the state variables of x\_tl.
16
17The ropp\_fm\_ecmwf\_state2state\_ad(x, x\_ad) subroutine propagates a perturbation of the state variables of x\_ad to the adjoint x\_ad\%state.
18
19Tests:
20The t_\fascod\_ecmwf\_tl and t\_fascod\_ecmwf\_ad programs test the ad/tl implementation by mapping a perturbation from state-vector to refractivty space and bending angle space, ie. they test refrac\_1d and bandle\_1d as well as the state2state subroutines. The TL test only verifies that <f(x+dx)-f(x), f\_tl(dx)>/|f(x+dx)-f(x)| is close to unity when |f(x+dx)-f(x) - f\_tl(dx)|/|f(x+dx)-f(x)| is at minimum. The t\_fascod\_ecmwf\_ad propes the consistency of ad and tl code to $10^-8$ relative difference.
21
22
23 ./t\_fascod\_ecmwf\_tl
24
25 TL: x\%non\_ideal, x\%new\_ref\_op, x\%new\_bangle\_op = F F F
26
27 Checking REFRACTIVITY TL FASCOD_TRO
28 |dy|/|dy_init| cos_angle 100*rel diff
29 1.0000000000E+00 7.7748352054E-01 8.9484237172E+01
30 1.0000000000E-01 8.7302799306E-01 5.5141499049E+01
31 1.0000000000E-02 9.9654791218E-01 8.3651384082E+00
32 1.0000000000E-03 9.9995704249E-01 9.2708766520E-01
33 1.0000000000E-04 9.9999956976E-01 9.2784559077E-02
34 1.0000000000E-05 9.9999999570E-01 9.2792156723E-03
35 1.0000000000E-06 9.9999999996E-01 9.2796796506E-04
36 1.0000000000E-07 1.0000000000E+00 9.3748021206E-05
37 1.0000000000E-08 1.0000000000E+00 7.3099526302E-05
38 1.0000000000E-09 9.9999999995E-01 1.0025458375E-03
39 1.0000000000E-10 1.0000000000E+00 3.3108763310E-05
40 1.0000000000E-11 9.9999999999E-01 3.3880138137E-04
41 1.0000000000E-12 9.9999999948E-01 3.3074131786E-03
42 1.0000000000E-13 9.9999993327E-01 3.6535174995E-02
43 1.0000000000E-14 9.9999234297E-01 3.9197448204E-01
44 Refractivity TL check passed
45
46 Checking BENDING ANGLE TL FASCOD_TRO
47 |dy|/|dy_init| cos_angle 100*rel diff
48 1.0000000000E+00 -9.1670648299E-02 1.0000000007E+02
49 1.0000000000E-01 -1.1552789005E-01 1.0000000001E+02
50 1.0000000000E-02 -9.8650088270E-02 1.0000000000E+02
51 1.0000000000E-03 1.0856024113E-01 9.9999999999E+01
52 1.0000000000E-04 9.9267812339E-01 1.2107567411E+01
53 1.0000000000E-05 9.9995016445E-01 1.0710929189E+00
54 1.0000000000E-06 9.9999949644E-01 1.0757195599E-01
55 1.0000000000E-07 9.9999999487E-01 1.0848793386E-02
56 1.0000000000E-08 9.9999999970E-01 2.5520329384E-03
57 1.0000000000E-09 9.9999999954E-01 3.0514677289E-03
58 1.0000000000E-10 9.9999946877E-01 1.0316923792E-01
59 1.0000000000E-11 9.9998816478E-01 5.3470767757E-01
60 1.0000000000E-12 9.9974796056E-01 2.2597030568E+00
61 1.0000000000E-13 9.6657556387E-01 2.6119611187E+01
62 1.0000000000E-14 5.7171199596E-01 8.2231672109E+01
63 Bending angle TL check passed
64****************************
65********** PASS **********
66****************************
67
68
69 ./t\_fascod\_ecmwf\_ad
70
71 AD: x\%non\_ideal, x\%new\_ref\_op, x\%new\_bangle\_op = F F F
72
73 Checking REFRACTIVITY AD FASCOD_TRO
74norm1, norm2, norm1/norm2, (norm1-norm2)/norm2 = 364528929.066 364528928.849 1.0000000 0.59628E-09
75
76 Checking BENDING ANGLE AD FASCOD_TRO
77norm1, norm2, norm1/norm2, (norm1-norm2)/norm2 = -9.025 -9.025 1.0000000 -0.36748E-09
78
79 Checking REFRACTIVITY AD FASCOD_MLS
80norm1, norm2, norm1/norm2, (norm1-norm2)/norm2 = 325588949.035 325588948.809 1.0000000 0.69328E-09
81
82 Checking BENDING ANGLE AD FASCOD_MLS
83norm1, norm2, norm1/norm2, (norm1-norm2)/norm2 = 75.279 75.279 1.0000000 0.73677E-09
84
85 Checking REFRACTIVITY AD FASCOD_MLW
86norm1, norm2, norm1/norm2, (norm1-norm2)/norm2 = 431837535.061 431837532.947 1.0000000 0.48936E-08
87
88 Checking BENDING ANGLE AD FASCOD_MLW
89norm1, norm2, norm1/norm2, (norm1-norm2)/norm2 = -79.704 -79.704 1.0000000 -0.19451E-09
90
91 Checking REFRACTIVITY AD FASCOD_SAS
92norm1, norm2, norm1/norm2, (norm1-norm2)/norm2 = 372208695.410 372208692.403 1.0000000 0.80779E-08
93
94 Checking BENDING ANGLE AD FASCOD_SAS
95norm1, norm2, norm1/norm2, (norm1-norm2)/norm2 = 25.611 25.611 1.0000000 -0.79416E-09
96
97 Checking REFRACTIVITY AD FASCOD_SAW
98norm1, norm2, norm1/norm2, (norm1-norm2)/norm2 = 409038225.382 409038225.287 1.0000000 0.23228E-09
99
100 Checking BENDING ANGLE AD FASCOD_SAW
101norm1, norm2, norm1/norm2, (norm1-norm2)/norm2 = 8.828 8.828 1.0000000 -0.49963E-09
102****************************
103********** PASS **********
104****************************
105