Ticket #200: README

File README, 4.6 KB (added by Huw Lewis, 14 years ago)

README file

Line 
1code_original - Sean's code and sample output - 23/03/07
2
3ancil - N96 HadGEM1 orography field - retrieved from NEC - 23/03/07
4
5Missing data - REAL, PARAMETER :: RMDI = -9999.0 - 23/03/07
6
7------------------------------------------------------------------------
8
9Running the code - email from Sean, 23/03/07
10------------------------------------------------------------------------
11
12Ok, 3 files
13
14 refrac_info.f90
15
16is just a module containing various definitions.
17
18 gpsro_driver.f90
19
20is an example of a call to the 1d operator. I have
21set the atmospheric parameters up in a simple way, so that it
22should be pretty obvious what you have to extract from the UM
23model output. Basically, you need the P, T, Q on the (full) model
24levels, and the full model level heights.
25
26 gpsro_op.f90
27
28is the 1d bending angle operator. It is self contained,
29so hopefully you should not have to go into it, assuming everything
30works!
31
32
33To compile and run
34
35 f90 -c refrac_info.f90
36
37this should create refrac_info.mod. Then type
38
39 f90 gpsro_driver.f90 gpsro_op.f90 -o gpsro_op
40
41Then
42
43 gpsro_op
44
45This will write a profile of bending angles to screen. My results are
46given in alpha.out, so you can check its running ok.
47-----------------------------------------------------------------------
48
49UM height levels - from http://www-nwp.metoffice.com/~frcw/UM_Info/ND_levels/ND_levels.html - 16/04/07
50-----------------------------------------------------------------------------------------------------------
51Blev (=pphead(52) ) contains Zsea , the height of the level over the sea,
52bhlev (=pphead(54)) contains C(k) = [ 1 - eta_value(k) / eta_value(first constant rho level) ] ^2,
53
54so that the height for the level is Z(i,j)= Zsea+ C(k) * orography(i,j) at each point (i,j) in the grid.
55
56------------------------------------------------------------------------------------------------------------
57
58Tangent linear code - 03/07/07
59--------------------------------------------------------------------------
60
61
62I have attached the tangent linear code with a driver routine.
63To compile and run the driver
64
65f90 gpsro_drivertl.f90 gpsro_opTL.f90 gpsro_op.f90 -o gpsro_optl
66
67You always need to compile gpsro_opTL.f90 with gpsro_op.f90 because they
68share routines. The interface to the new code is
69
70SUBROUTINE alpha_optl(nlev, & ! no. of model levs (=38)
71 nobs, & ! no. of bending angles in profile
72 roc, & ! radius of curv.
73 undul, & ! undulation (set to 0.0)
74 lat, & ! latitude of ob. location (degrees)
75 pres, & ! pressure on mod levels (hPa)
76 pres_prime, &
77 temp, & ! temp on model levels
78 temp_prime, &
79 q, & ! specific humidity (g/kg)
80 q_prime, &
81 zg, & ! geopotential height of model levels(m)
82 a, & ! impact parameters
83 alpha, &
84 alpha_prime) ! bending angles
85
86Basically, when you see a "_prime" that means a perturbation. The code
87calculates the bending angles (alpha) as before with P,T and Q, but now
88also calculates the bending angle perturbations, alpha_prime, caused by
89the P, T and Q perturbations, p_prime, t_prime and q_prime, respectively.
90
91The driver code calculates alpha_prime along with the differences
92between 2 calls to the normal operator for a simple profile. The results
93are very close.
94
95The tangent linear code will enable you to look at the relative
96contributions of the p_prime, t_prime and q_prime to the alpha_prime.
97
98
99------------------------------------------------------------------------------------------------------------
100
101Further calculations - 15/02/08
102--------------------------------------------------------------------------
103
1041) set q to 0.0 just before refrac_levs is called and
105look at the bending angle trends.
106
1072) set q to 2000 value just before refrac_levs and
108look at trends etc.
109
1103) Look at refractivity trend on model levels. One
111of the outputs from refrac_levs is refrac. This is
112the refractivity on the model levels. (you could
113also look at the q = 0 for refrac if you get time.)
114
1154) Compare the Tdry and T trends on model levels.
116You can calculate Tdry after calling refrac_levs
117
118Tdry(:) =aval*pres(:)/refrac(:)
119
120where aval is the refractivity constant defined in
121refrac_info.
122
123Look at error (Tdry(:)-temp(:)) and trend differences.
124
125
126
127
128
129
130
131
132
133
134
135
136