Professional Documents
Culture Documents
Harmonised
Calculation
Method
Mobile Services
Version 6
November 2001
Developed by the Sub Working Group Mobile Services
Revision 5
HCM MS DOCUMENTATION, Version 6 (02/11/2001) 1
September 1999
Harmonised Calculation Method for Mobile Service
Foreword
As chairmen of the Sub Working Groups Mobile Service and Program, sub working groups of the Vienna Agreement
Technical Working Group Harmonised Calculation Method, we have the honour to present you the revision of the
HCM-program and documentation which is in line with the Vienna Agreement 2001. Special provisions have been
taken to be fully in line with the CEPT recommendations. The program and the documentation are developed by the
Sub Working Group Mobile Services and the Sub Working Group Program.
Also new in this version is that the position of the mobile stations is calculated, taking into account the radius of service
and the borderlines.
In the documentation some pages are intentionally left blank to permit recto-verso printing. In the documentation you
will find the flowcharts on the left page, the text on the right page.
As chairmen of the SWG-MS and the SWG-Program we would like to thank all participants of both groups for their
active support during the development of the new version, the program and its documentation. We hope that all this
work will give a new impulse to all administrations to end the transition period as described in the addendum of the
Vienna Agreement 2001.
Kind regards,
TABLE OF CONTENTS
TABLE OF CONTENTS...................................................................................................................................................1
GENERAL 3
CHAPTER 5.12: DETERMINATION OF THE TERRAIN- OR MORPHOLOGICAL PROFILE BETWEEN TWO POINTS
(PROFIL)...........................................................................................................................................123
CHAPTER 5.13: DETERMINE THE HEIGHT INFORMATION OF A POINT (POINTH).................................................127
CHAPTER 5.14: DETERMINE THE MORPHOLOGICAL INFORMATION OF A POINT (POINTM)...............................129
CHAPTER 5.15: CALCULATE THE POSITION OF THE MOBILE (MOB_POS)............................................................131
CHAPTER 5.15.1: DETERMINE THE NUMBER OF INTERSECTIONS BETWEEN THE BORDER AND
THE SERVICE AREA.........................................................................................................................133
GENERAL
This Harmonised Calculation Method for Mobile Service (HCM-MS) is part of the Vienna Agreement '01. In this
document we use the abbreviation VA01 for the Vienna Agreement 2001. Also, the relevant CEPT Recommendations
for services not noted in the VA01 are included in HCM-MS, as agreed by all Signatories.
General note:
List of subroutines
The HCM-MS subroutine uses subroutines, for example to calculate distance, clearance angle correction factor, ... The
list of the subroutines is:
Interface
HCM-MS subroutine will be run with input and output data, which are defined in an interface. This interface is
described in chapter 8.
Remarks:
When an error occurs, an error code is generated and the subroutine is terminated. A list of error codes and their
description are given in chapter 9.
Interface to the
surrounding
program
(input values)
yes no
Line calculation ?
LINE_C FS_CAL
Calculation of the max. Calculation of the
field strength on a line field strength EC
FS (chp. 4) (chp. 2)
FS_CAL
P_FS_C
Calculation of the
perm. interference
field strength EP
(chp. 3)
Interface to the
surrounding
program
(output values)
This subroutine Harmonised Calculation Method for Mobile Service is the Harmonised Calculation Method itself. The
HCM-MS subroutine performs calculation from a transmitting station to a receiving station or from a transmitting
station to a co-ordination line.
Interface
All required data for the subroutine are included in the interface. This interface is described in Chapter 8.
Line Calculation?
This box represents decision whether a point to point or a point to line calculation is performed.
This subroutine predicts the field strength and is described in detail in Chapter 2.
This subroutine calculates the permissible field strength and is described in detail in Chapter 3.
This subroutine calculates the maximum field strength on a co-ordination line and is described in detail in Chapter 4.
GETFIG
Select appropriate ITU-R curves(one
for land, one for sea) according to
the frequency band, the time
percentage and the sea temperature
POINTH
Reading height of a
given point from the
terrain database
yes no
Are they equal ?
I s the difference
yes 1m or less than 10% ? no
Info 2 Info 14
yes no
Cmode = -7,-1,0,7 or 8 ?
End
transmitting parameters,
receiving parameters, or data for line selection,
conditional calculation parameters including the permissible field strength,
additional information.
All output values are set to zero. Input values (transmitting parameters, receiving parameters or data for line selection
and additional information) are mandatory and have to be provided by the surrounding program. The list of input values
is described in the following table:
All input values (depending on the calculation mode) are read, checked and converted if necessary (Tx frequency, Tx
antenna height, Tx co-ordinates, Rx frequency, Rx antenna height, Rx co-ordinates).
This process determines the height of the transmitter site above sea level, which will be used for further calculations.
GETFIG: Select appropriate ITU-R curves (one for land, one for sea) according to the frequency
band, the time percentage and the sea temperature
This subroutine selects two sets of field strength curves for calculation, according to the frequency band, the time
percentage and the sea temperature. The selection is made according to Annex 4 of VA01. The output of this subroutine
contains two sets of curves: one for land, one for sea propagation and their names.
Note: for mobile services HCM decided to expand the curves down to 1 km.
POINTH: Read height of a given point from the terrain database (Tx)
This process uses the POINTH subroutine to select the heights of the transmitter site from the terrain database. This
subroutine is described in detail in Chapter 5.
If no input value for Tx height is given, the value of the terrain data is taken into account.
This process compares the input height value and the height in terrain data.
If the difference between the input value and the terrain data value is less than 10 % or equal 1 m, an info code is
generated (info 2), otherwise a different info code is generated (info 14).
The maximum cross border range and the e.r.p. of reference transmitter are set according to Annex 1 of the VA01.
The permissible field strength, the applied T% and the applied h2 are set according to table 1.1. If there are input values
for permissible field strength or maximum cross border range, the previous settings are superseded.
Noc = no change
DISTAN
calculation of the distance between two points (Tx and receiving point)
DIRECT
calculation of the directions
(Tx to Rx and Rx to Tx) MOB_POS
yes
calculation of the
Is there a mobile?
no position of the mobile
(Tx or Rx)
no
Line calculation ? Height of Rx above sea level (chp. 2.1)
yes
yes no
Distance < 1 km
PROFIL
Determination of the terrain or the morphological
profile between two points (Tx and receiving point)
switch off no
yes
Deygout
Calculated field strength
= free space field
strength Line calculation
yes or a mobile ? no
no
Deygout allowed ?
End
Description
This calculation is made according to Annex 5 of the VA01 and based on the following three methods:
- free space
- Deygout method (Appendix 1 to Annex 5 of the VA01)
- ITU-R method (Annex 5 of the VA01)
taking into account all the correction factors mentioned in Annex 5 of the VA01.
DISTAN: Calculation of the distance between two points (Tx, Receiving point)
This subroutine calculates the distance (d) between Tx and Rx or between Tx and a co-ordination line point if line
calculation is performed. DISTAN is described in detail in Chapter 5.
If the distance is greater than 1000 km or equal to zero, the HCM-MS subroutine terminates with an error code.
This subroutine calculates the azimuth from the transmitter to the receiver and from the receiver to the transmitter.
DIRECT is described in detail in Chapter 5.
Is there a mobile ?
A test is performed, whether the transmitter or the receiver is a mobile station. The information is found in the input
value for radious of service area: when the radius is greater than 0, the station is a mobile.
This subroutine calculates the position of the mobile (Tx or Rx). MOB_POS is described in detail in Chapter 5.
Line calculation
This decision has to be taken because this subroutine is also used in other places (LINE_C).
If the co-ordination line calculation is performed, then the height of Rx above sea level is not used and only the ITU-R-
method will be used (Switch off Deygout is set to Yes).
This process determines the height of the receiver site above sea level which will be used for further calculations. This
process is described in detail in Chapter 2.1.
The calculation of the free space field strength is performed at this stage of the procedure due to the fact that in further
steps this value is needed for comparison or calculations. This process is described in detail in Chapter 2.2.
Distance < 1 km
When the distance is less than 1 km, it is impossible to determine a correct terrain profile. In that case only the
calculated free space field strength is used.
PROFIL: Getting the terrain or morphological profile between two points (Tx, Receiving point)
This subroutine gets the terrain or morphological profile between Tx and Rx or Tx and a co-ordination line point if line
calculation is performed. PROFIL is described in detail in Chapter 5. In this case, the terrain profile is taken.
This process calculates the difference between the first order Fresnel zone and the terrain height. This process is
described in detail in chapter 2.3
If the first order Fresnel zone is free, the calculated free space field strength is used.
If distance is less than 1 km or if the first Fresnel zone is free the calculated field strength is equal to the free space field
strength.
This gives the possibility to switch off the calculation of the field strength according to the Deygout-method and to
calculate only with the ITU-R-method.
By default, this switch has to be set by surrounding program to NO.
The calculation of the field strength according to the Deygout-method is based on Appendix 1 to Annex 5 of the VA01.
This process is described in detail in Chapter 2.4.
When calculating towards lines or when at least one station is a mobile station, only the ITU-R method is used.
Deygout allowed
If there are not more than two obstacles on the calculation path, the Deygout-method is used. Otherwise, the ITU-R
method is used.
The calculation of the field strength according to the ITU-R method is based on Annex 5 of the VA01. This process is
described in detail in Chapter 2.5.
The output of the subroutine FS_CAL gives the calculated field strength (Free space, Deygout method or ITU-R
method).
Start
POINTH
Reading height of a
given point from the
terrain database
yes no
Are they equal ?
Info 4 Info 15
End
POINTH : Read height of a given point from the terrain database (Rx)
This process uses the POINTH subroutine to select the heights of the receiver site from the terrain database. This
subroutine is described in detail in Chapter 5.
If no input value for the Rx height is given, the value of the terrain data is taken into account.
This process compares the input height value and the height in terrain data.
If the difference between the input value and the terrain data value is less than 10 % or equal 1 m, an info code is
generated (info 4), otherwise a different info code is generated (info 15).
Start
yes no
Line calculation ?
DIRECT
Calculation of the azimuth from
one point to another point
Calculation of the
total difference angle
Calculation of the
horizontal ant. attenuation
(chp. 2.2.2)
End
Description
This process calculates the free space field strength, which will be used in other processes or subroutines.
Line calculation
If line calculation is performed the vertical angle is set to zero; therefore it is not necessary to calculate the vertical
angle.
This process calculates the vertical angle between the antenna heights of point A (Tx) and point B (Rx).
hB hA
The vertical angle is calculated by the following formula: Vertical angle arctan
1000 * d
(hA and hB are in meters and d is in kilometers).
The vertical angle pointing towards the ground is negative (see column 9B of Annex 2 of the VA01)
DIRECT calculates the azimuth between Tx and the receiving point. This subroutine is described in detail in Chapter 5.
LEFT BLANK
The total difference angle is calculated according to the Annex 8 to the VA, using the formula
This process calculates the horizontal antenna correction factor and is described in detail in Chapter 2.2.2.
In case of non directional antenna, no calculation is needed and the horizontal antenna correction factor is set to zero.
This process calculates the vertical antenna correction factor and is described in detail in Chapter 2.2.1.
In case of non-directional antenna, no calculation is needed and the vertical antenne correction factor is set to zero.
This process calculates the total antenna attenuation C1 according to Annex 8 to the VA.
If both values for attenuation are equal, the resulting attenuation (Aresulting) is equal to one of those values:
Aresulting = Ahorizontal or Aresulting = Avertical
If the horizontal attenuation is greater than the vertical, the resulting attenuation (Aresulting) is:
Aresulting = Avertical + (Ahorizontal Avertical) Abs(hda) / (Abs(hda) + Abs(vda))
If the vertical attenuation is greater than the vertical, the resulting attenuation (A resulting) is:
Aresulting = Ahorizontal + (Avertical Ahorizontal) * Abs(vda) / (Abs(hda) + Abs(vda))
The correction for the type of reference antenna (C2) will be 2.1 dB in case of an isotropic antenna (I) and zero in case
of an 1/2 antenna (E).
This process calculates the e.r.p. (PR) in the direction of the receiver or a given point with an antenna height using the
following formula:
PR Perp C1 C 2
This process calculates the free space field strength according to the following formula:
E0 77 20 log(d ) PR
Start
Vertical antenna
correction is equal to
calculated loss
End
The decision has to be taken in order to separate between non-directional and directional cases.
If the vertical antenna is non directional, the vertical antenna correction factor is set to zero.
If the type of antenna vertical is directional, the process calculates the difference between the elevation angle of Tx
and the calculated vertical angle.
This subroutine calculates the loss in the vertical plane of the gain of a directive antenna in a given direction. ANTENN
is described in detail in Chapter 5.
Start
Horizontal antenna
correction is equal to
calculated loss
End
The decision has to be taken in order to separate between non-directional and directional cases.
If the horizontal antenna is non directional, the horizontal antenna correction factor is set to zero.
If the type of antenna horizontal is directional, the process calculates the difference between the azimuth of the main-
lobe (az) and the calculated horizontal angle (DIR). The horizontal angle is calculated in the DIRECT subroutine.
This difference (delta) is used for calculating the antenna correction factor in the subroutine ANTENN.
This subroutine calculates the loss in the horizontal plane of the gain of a directive antenna in a given direction.
ANTENN is described in detail in Chapter 5.
Start
Calculation of curvature
of the earth and adding
it to the terrain height
Addition of morphologic
height
Calculation of the
clearance height below
the line of sight
Calculation of the
differences between the
Fresnel zone and the
clearance height
End
Chapter 2.3: Comparison between 1st order Fresnel zone and terrain
Description
This process compares the 1st order Fresnel zone and the terrain to determine if the 1st order Fresnel zone is free.
This process calculates the curvature of the Earth (h0), using the following formula:
G * Z * (d G * Z )
h0 ( Z )
17
and adds this value to each height h(Z) of the height element, resulting in the modified height : h( Z ) h0 ( Z ) .
This process adds 10 meters to each height of height element except the first and last km of the distance.
This process calculates the clearance height below the line of sight, using the following formula:
G*Z
hc ( Z ) hT (hT hR ) * h( Z )
d
LEFT BLANK
This process calculates the radius of the 1st order Fresnel for each terrain element, using the following formula:
G * Z * (d G * Z )
r0 ( Z ) 547.7
d* f
Calculation of the differences between the Fresnel zone and the clearance height
This process calculates the difference between hd(Z) clearance height and radius of 1st order Fresnel zone for each
terrain element, using the formula:
hd ( Z ) hc ( Z ) r 0( Z )
Start
Determination of the
main obstacle M1
Both path's
Both path's no
yes no between M1-M2 and
between Tx-M2 and M2-Rx are free
M2-M1 are free
info 8
yes
Info 10
Exit to the ITU-R
calculation method
info 9
Info 13
Calculation of field
strength for 2 obstacles
End
Chapter 2.4: Calculation of the field strength according to the Deygout method
Description
This process calculates the field strength according to the Deygout method.
The position of this obstacle is determined by calculating the following formula for each height element of terrain data
(Z):
1 1
V h * 8.16 * 10 5 * f *( ) (Hz, m)
a b
This formula converted for each height element of terrain data in appropriate units (MHz, km) will be:
1 1
V ( Z ) hC ( Z ) * 0.00258 * f *( )
Z *G d Z *G
When the maximum of V(Z) is calculated (VM1) the main obstacle M1 is found. This terrain element height is ZM1.
First this process calculates the clearance height below the line of sight between Tx and M1, using the following
formula:
G*Z a
hC ( Z ) hM 1 (hM 1 hR ) * h( Z ) a G * Z M1
d a
and calculates the radius of the 1st Fresnel for each terrain element between Tx and M1, using the following formula:
G * Z * (a G * Z )
ra ( Z ) 547.7 * a G * Z M1
a* f
Then this process calculates the clearance height below the line of sight between M1 and Rx, using the following
formula:
G*Z
hC ( Z ) hT (hT hM 1 ) * h( Z ) a G * Z M1
a
and calculates the radius of the 1st Fresnel for each terrain element between M1 and Rx, using the following formula:
(G * Z a) * (d G * Z )
rb ( Z ) 547.7 * a G * Z M1
(d a ) * f
and the process calculates the difference between hd(Z) clearance height and radius of 1st Fresnel zone for each terrain
d
element between the first to Z XM Z M 1 int( ) , using the formula:
G * 40
hd ( Z ) hc ( Z ) ra ( Z )
This process calculates the difference between hd(Z) clearance height and radius of 1st Fresnel zone for each terrain
d
element between Z YM Z M 1 int( ) and the last one , using the formula:
G * 40
hd ( Z ) hc ( Z ) rb ( Z )
This decision has to be taken to determine if there is one or more obstacles between Tx and Rx.
This process calculates the field strength for one obstacle. First this process calculates the diffraction loss du to the
obstacle, using the following formula:
If VM1 is less than 1, this value is set to 1 and if AM is greater than 40 dB, this value is set to 40 dB.
As a next step, the vertical angle of the transmitting antenna to the obstacle and to the receiving antenna is calculated in
relation to the horizontal plane, using the following formulas:
hM 1 hT hR hT
PVM 1 arctan( ) and PVE 0 arctan( )
a d
Where PVM1 is the vertical angle between Tx and M1,
hM1is the height of the obstacle above sea level,
hT is the height of Tx above sea level,
a is the distance between Tx and M1 in m,
PVE0 is the vertical angle between Tx and Rx,
hR is the height of Rx above sea level and
d is the distance between Tx and Rx.
The maximum of the two angles is used to calculate the new vertical antenna correction factor C 2. This correction factor
is calculated by using the ANTENN subroutine described in Chapter 5.
Then the process calculates the field strength according the new correction factor and the diffraction loss using the
following formulas:
The new correction factor for the horizontal and vertical antenna type is (C) = C 12 + C 22 (vectorial sum) and it will
be limited to a maximum of 40 dB.
The correction for the type of reference antenna (C3) will be 2.1 dB in case of an isotropic antenna (I) and zero in case
of an 1/2 antenna (E).
This decision has to be taken to determine if there is an obstacle between Tx and M1.
This process determines the second obstacle M2 between M1 and Rx. The position of this obstacle is determined by
d
calculating the following formula for each height element of terrain data (Z) between Z YM Z M 1 int( ) and
G * 40
the last one:
1 1
V ( Z ) hC ( Z ) * 0.00258 * f * ( )
Z * G Z * G G * ZM1
When the maximum of V(Z) is calculated (VM2) the second obstacle M2 is found. This terrain element height is ZM2.
Description
This process calculates the two new Fresnel zones between Tx and M2 and between M2 and M1.
This process calculates the curvature of the Earth (h0) from Tx to M1, using the following formulas:
G * Z * ((a b) G * Z )
h0 ( Z )
17
for Z = 1 to ZM1
and adds this value to each height h(Z) of the height element, resulting in the modified height : h( Z ) h0 ( Z )
for Z = 1 to ZM1
This process adds 10 meters to each height of height element except the first and last km of the distance.
This process calculates the clearance height below the line of sight between Tx and M1, using the following formulas:
G*Z
hc ( Z ) hT ( hT hM 1 ) * h( Z )
ab
for Z = 1 to ZM1
This process calculates the radius of the 1st Fresnel for each terrain element from 1 to ZM1, using the following formula:
G * Z * ((a b) G * Z )
r0 ( Z ) 547.7
( a b) * f
This process calculates the difference between hd(Z) clearance height and radius of 1st Fresnel zone for each terrain
element from 1 to ZM1, using the formula:
hd ( Z ) hc ( Z ) r 0( Z )
This decision has to be taken to determine if there is only two obstacles between Tx and Rx. If there is more than two
obstacles, ITU-R method is used.
This process calculates the field strength for two obstacles. First this process calculates the diffraction loss du to the first
obstacle, using the following formula:
AM 6.4 20 log(V M 1 V M2 1 1)
If VM1 is less than 1, this value is set to 1 and if AM is greater than 40 dB, this value is set to 40 dB.
Then the process calculates the diffraction loss for the second obstacle, using the following formula:
If VM2 is less than 1, this value is set to 1 and if AMS is greater than 40 dB, this value is set to 40 dB.
As a next step, the vertical angle of the transmitting antenna to the two obstacles and to the receiving antenna is
calculated in relation to the horizontal plane, using the following formulas:
hM 1 hT h hT
PVM 1 arctan( ) , PVM 2 arctan( M 2 )
a ab
h hT
and PVE 0 arctan( R )
d
Where PVM1 is the vertical angle between Tx and M1,
PVM2 is the vertical angle between Tx and M2,
hM1is the height of the first obstacle above sea level,
hM2is the height of the second obstacle above sea level,
hT is the height of Tx above sea level,
a is the distance between Tx and M1 in m,
b is the distance between M2 and M1 in m,
PVE0 is the vertical angle between Tx and Rx,
hR is the height of Rx above sea level and
d is the distance between Tx and Rx.
The maximum of the three angles is used to calculate the new vertical antenna correction factor C 2. This correction
factor is calculated by using the ANTENN subroutine described in Chapter 5.
Then the process calculates the field strength according the new correction factor and the diffraction losses using the
following formulas:
The new correction factor for the horizontal and vertical antenna type is (C) = C 12 + C 22 (vectorial sum) and it will
be limited to a maximum of 40 dB.
The correction for the type of reference antenna (C3) will be 2.1 dB in case of an isotropic antenna (I) and zero in case
of a 1/2 antenna (E).
This decision has to be taken to determine if there is only two obstacles between Tx and Rx. If there is more than two
obstacles, ITU-R method is used.
This process determines the second obstacle M2 between Tx and M1. The position of this obstacle is determined by
calculating the following formula for each height element of terrain data (Z) between the first to :
d
Z XM Z M 1 int( )
G * 40
1 1
V ( Z ) hC ( Z ) * 0.00258 * f * ( )
Z * G G * ZM1 G * Z
When the maximum of V(Z) is calculated the second obstacle M2 is found. This terrain element height is Z M2.
Description
This process calculates the two new Fresnel zones between M1 and M2 and between M2 and Rx.
This process calculates the curvature of the Earth (h0) from Rx to M2, using the following formulas:
G * Z * ((b c) G * Z )
h0 ( Z )
17
and adds this value to each height h(Z) of the height element, resulting in the modified height :
h( Z ) h0 ( Z ) for Z = ZM1 to ZMax
This process adds 10 meters to each height of height element except the first and last km of the distance.
This process calculates the clearance height below the line of sight between Rx and M1, using the following formulas:
G*Z
hc ( Z ) hR (hR hM 1 ) * h( Z )
bc
LEFT BLANK
This process calculates the radius of the 1st Fresnel for each terrain element from ZM1 to ZMax using the following
formula:
G * Z * ((b c) G * Z )
r0 ( Z ) 547.7
(b c ) * f
This process calculates the difference between hd(Z) clearance height and radius of 1st Fresnel zone for each terrain
element from ZM1 to ZMax, using the formula:
hd ( Z ) hc ( Z ) r 0( Z )
This decision has to be taken to determine if there is only two obstacles between Tx and Rx. If there is more than two
obstacles, ITU-R method is used.
Start
End
Chapter 2.5: Calculation of the field strength according to the ITU-R method
Description
This subroutine calculates the field strength according to the ITU-R method.
This process determines the clearance angle of Tx and Rx, and its correction factors by calculating or setting these
values if necessary. This is described in detail in chapter 2.5.1.
This process determines the Tx and Rx effective antenna height by calculating or setting these values if necessary. h1 is
determined using the table in Chapter 3 of Annex 5 of the VA01. This is described in detail in chapter 2.5.2.
This process calculates terrain irregularity according to Chapter 3.3 or Appendix 5 of Annex 5 of the VA01, as described
in detail in Chapter 5.
This process calculates the field strength including mixed path propagation as described in detail in Chapter 2.5.5.
This process calculates the field strength applying correction factors according to the frequency range, the receiver
antenna height h2 and power used as described in Chapter 2.5.6.
yes Is no
Tx a fixed station and
Vienna = true
Calculation of the Tx clearance
angle according to Annex 5 of
the VA99
(chp. 2.5.1.1)
Tx clearance angle and its
correction factor are
set to 0
Tx
no yes
clearance angle
0
CLEARC Tx clearance angle
Calculation of the correction factor is
clearance angle set to 0
correction factor
Is
yes
Rx a fixed station and
Cmode >= 0
no
yes
Vienna ?
no
End
Chapter 2.5.1: Determination of the clearance angle and its correction factor
If the transmitter is a fixed station and Vienna method is used the transmitter clearance angle and its correction factor
are calculated. In all other cases, Tx clearance angle and its correction factor are not applied and are set to 0.
The Tx clearance angle and its correction factor are set to zero.
This process calculates the Tx clearance angle according to Annex 5 of the VA 01 and is described in detail in Chapter
2.5.1.1.
Tx clearance angle 0
If the Tx clearance angle is negative, the Tx clearance angle correction factor is calculated according to the Vienna
method. If the Tx clearance angle is greater or equal zero the correction factor is set to 0.
This subroutine calculates the clearance angle correction factor and is described in Chapter 5.
If the receiver is a fixed station and point to point calculation are performed (Cmode > 0), the receiver clearance angle
and its correction factor are calculated. In all other cases, the Rx clearance angle and its correction factor are not applied
and are set to 0.
The Rx clearance angle and its correction factor are set to zero.
Vienna?
If the Vienna method is used the Rx clearance angle and its correction factor are calculated according to chapter 3.1 and
Appendix 4 of Annex 5 of the VA01. In other case, the Rx clearance angle and its correction factor are calculated
according to the CEPT method (Appendix 5 of Annex 5 of the VA01).
LEFT BLANK
CLACOF: Calculation of the clearance angle and its correction factor according to the CEPT method
This subroutine calculates the clearance angle and its correction factor according to the CEPT and is described in
Chapter 5.
This process calculates the Rx clearance angle according to Chapter 3.2 or Appendix 5 of Annex 5 of the VA01 and is
described in detail in Chapter 2.5.1.2.
Rx clearance angle 0
If the Rx clearance angle is negative, the Rx clearance angle correction factor is calculated according to the Vienna
method. In all other cases, the Rx clearance angle correction factor is set to 0.
This subroutine calculates the clearance angle correction factor and is described in Chapter 5.
Start
no yes
Distance 16 km
d 2 = distance d 2 = 16 km
End
For the determination of the Tx clearance angle, the distance from the transmitter up to 16 km is taken into account. If
the distance between the transmitter and the receiver is less than 16 km, only the real distance is taken into account.
The clearance angle is calculated for all profile points, and the minimum value is chosen.
h x hTx
clearance _ angle Arc tan( )
d x * 1000
negative
Antenna height
above ground
min (16km , d)
positive
Antenna height
above ground
Start
no yes
Distance 16 km
d 2 =0 d 2 = distance - 16 km
End
For the determination of the Rx clearance angle, the distance from the receiver 16 km back in the direction of the
transmitter is taken into account. If the distance between the transmitter and the receiver is less than 16 km, only the real
distance is taken into account.
The clearance angle is calculated for all profile points, and the minimum value is chosen.
h x hRx
clearance _ angle Arc tan( )
d x * 1000
Start
no Is Tx a mobile yes
station ?
Only in case of Tx
clearance angle 0: Set effective height Tx
calculation of effective to 3m
height Tx (chp. 2.5.2.1)
Vienna and no
Cmode 0 ?
yes
h 1 = effective height Tx
no Is Rx a mobile yes
station ?
Only in case of Rx
clearance angle 0: Set effective height Rx
calculation of effective to 3m
height Rx (chp. 2.5.2.2)
Set h 1 according to
paragraph 3 of Annex 5 of
the VA99
End
Is Tx a mobile station?
If the transmitter is a mobile station, the effective antenna height of Tx is set to 3 m. If the transmitter is a fixed station
and the Tx clearance angle is greater or equal to zero, the effective antenna height is calculated as described in detail in
Chapter 2.5.2.1.
Note: In case of non Vienna calculation the Tx clearance angle is set to zero, and therefore the effective antenna height
of the transmitter is calculated.
If Vienna method is used and Cmode equal or greater than zero (no border line calculation) the effective antenna height
of Rx is calculated or set. In the other cases, h1 is the effective antenna height of Tx.
Is Rx a mobile station?
If the receiver is a mobile station, the effective antenna height of Rx is set to 3 m. If the receiver is a fixed station and
the Rx clearance angle is greater or equal to zero, the effective antenna height is calculated as described in detail in
Chapter 2.5.2.2.
The value of h1is set according to the table in paragraph 3 of Annex 5 of the VA01.
Start
yes no
Distance between Tx
and Rx > 15 km
d 2 = 15 km d 2 = distance
d 1 = 1 km d 1 = 1 km
h eff (tx)
=h Tx
+ height of Tx antenna - h m
no yes
h eff(Tx)
>0
h eff(Tx)
=0
End
If the distance between Tx and Rx is greater than 15 km d1 is set to 1 km and d2 is set to 15 km. For shorter distances
d2 is set to real distance.
This process sums the height of all profile heights from d1 to d2.
This process calculates the average height above sea level hm using the following formula:
sum
hm
number _ of _ profile _ heights
This process gets the Tx height above sea level (hTx) as described in Chapter 1.1.
This process calculates the Tx effective antenna height using the following formula:
If the Tx effective antenna height is negative, the Tx effective antenna height is set to 0.
Start
yes no
Distance between Tx
and Rx > 15 km
d 2 = distance - 15 km d 2 =0
d 1 = distance - 1 km d 1 = distance - 1 km
h eff (Rx)
=h Rx
+ height of Rx antenna - h m
End
If the distance d between Tx and Rx is greater than 15 km d1 is set to d 1 km and d2 is set to d 15 km. For shorter
distances d2 is set to 0 km.
This process sums the height of all profile heights from d1 to d2.
This process calculates the average height above sea level hm using the following formula:
sum
hm
number _ of _ profile _ heights
This process gets Rx height above sea level (hRx) as described in Chapter 2.1.
This process calculates the Rx effective antenna height using the following formula:
Start
Info 16
End
If an input value for the distance over sea is available this value is taken into account. If not the distance over sea is
calculated.
Profil
This process determines the morphological profile between the transmitter and the receiving point. The profile is read
from the morphological database. In case when no morphological data is available, the whole morphological path is set
to normal land.
If distance between Tx and Rx is less than or equal to 10 km, distance over sea value is set to 0. If not all morphological
data between the transmitter and the receiving point is taken into consideration.
This process checks all the morphological profile to detect parts which are sea.
This process adds all parts of at least 3 km continuous sea, and the resulting value is considered to be distance over
sea.
If distance over sea is less than 10 km, the distance over sea value is set to 0.
If distance over sea is greater than distance, distance over sea value is set to distance. The info value is set to 16.
Start
no yes
Vienna ?
h = 50 m
DH_ITU DH_VIE
Calculate h according Calculate h according
to the CEPT to the
recommendations Vienna method
C_DH_C
Calculate the correction
factor k h
End
Chapter 2.5.4: Calculation of the terrain irregularity and its correction factor
If the distance between Tx and Rx is greater than 10 km and if the distance over sea is less than the real distance, h is
calculated. In the other cases h is set to 50 m (kh is equal to 0).
Vienna?
If Vienna method is used, the terrain irregularity is calculated according to the Chapter 3.3 of Annex 5 of the VA01. If
CEPT method is used, the terrain irregularity is calculated according to Appendix 5 of Annex 5.
This subroutine calculates the terrain irregularity h according to the Chapter 3.3 of Annex 5 of the VA01 and is
described in Chapter 5.
This subroutine calculates the terrain irregularity h according to the Appendix 5 of Annex 5 of the VA01 and is
described in Chapter 5.
Vienna?
If Vienna method is used and the clearance angle for Tx or Rx is negative, de correction factor according to the terrain
irregularity (kh) is set to zero (see table in Chapter 3 of Annex 5 of the VA01).
This subroutine calculates the terrain irregularity correction factor and is described in Chapter 5.
Start
GETFIG
Select the correct
ITU-R figures
(land and sea)
h 1 < 37.5 no
yes
or
h 1 >1200 m
GET_E
Calculate E land Calculate field strength
(h 1
outside range 37.5 - 1200 m) from curves
(chp. 2.5.5.1) E land (h 1 ;d )
yes no yes no
d sea 10 km d sea 10 km
Calculate E GET_E
sea d =0 Calculate field strength d =0
(h 1 outside range 37.5 - 1200 m) sea sea
E =0 from curves E =0
(chp. 2.5.5.2) sea sea
E sea (h 1 ;d )
End
Chapter 2.5.5: Calculation of the field strength including mixed path propagation
This subroutine selects the correct ITU-R figures and is described in detail in chapter 5.
If the value of h1 is outside the range 37.5 m to 1200 m the field strength is calculated according to Appendix 5 of
Annex 5 of the VA01.
This process calculates the field strength for the land path when h1 is outside the range 37.5 m to 1200 m and is
described in Chapter 2.5.5.1.
This subroutine calculates the field strength from curves as described in Chapter 5. The output field strength is for 1 kW
ERP.
If the distance over sea is less than 10 km, the distance over sea is set to 0 and the field strength calculation for sea path
is not applied.
This process calculates the field strength for the sea path when h1 is outside the range 37.5 m to 1200 m and is
described in Chapter 2.5.5.2.
This process calculates the field strength for the mixed path propagation as described in Chapter 2.5.5.3.
Start
yes no
d 4.1 h 1
yes no yes
h 1 < 37.5 m no
h1 < 37.5 m
d1 = d d1 = d
d1=d + 142 - 4.1 h 1 (Vienna)
d1=d + 25 - 4.1 h d2 =4.1 h1 d2 =4.1 h1
1
d1=d + 140 - 4.1 h 1 (non Vienna) d3 = 25 d3 = 142 (Vienna)
d3 = 140 (non-Vienna)
GET_E GET_E
GET_E GET_E
Calculate field Calculate field
Calculate field Calculate field
strength from strength from
strength from strength from
curves curves
curves curves
E1: (37.5;d1) E1: (1200;d1)
E(37.5;d1) E(1200;d1)
E2: (37.5;d2) E2: (1200;d2)
E3: (37.5;d3) E3: (1200;d3)
E = E1 - E2 + E3
E land
=E +k Tx
+k Rx
-k h
yes
E land >E free space
E land
=E free space no
End
This process calculates the field strength if h1 is less than 37.5 m or is greater than 1200 m (according to Appendix 2 of
Annex 5 of the VA01).
d1 = d + 25 - 4,1 h1 , and field strength (E) is derived from the curve of h1 = 37.5 m, at distance d1.
d1 = d + 142 4.1 h1 , and field strength (E) is derived from the curve of h1 = 1200 m, at distance d1.
d1 = d + 140 4.1 h1 , and field strength (E) is derived from the curve of h1 = 1200 m, at distance d1.
d1 = d, d2 = 4.1 h1 , d3 = 25, and field strength values (E1, E2, E3) are derived from the curve of h1 =
37.5 m, at distances d1, d2, d3.
d1 = d, d2 = 4.1 h1 , d3 = 142, and field strength values (E1, E2, E3) are derived from the curve of h1 =
1200 m, at distances d1, d2, d3.
d1 = d, d2 = 4.1 h1 , d3 = 140, and field strength values (E1, E2, E3) are derived from the curve of h1 =
1200 m, at distances d1, d2, d3.
LEFT BLANK
This subroutine calculates the field strength from curves as described in Chapter 5. The output field strength is for 1 kW
ERP.
Eland = E + k Tx + k Rx - kh
The field strength for the land path is modified to take into account the Tx and Rx clearance angle correction factors and
the h correction factor.
Eland (1kW) is limited to the free space field strength value (1 kW).
Start
yes no
d 4.1 h 1
yes no yes
h 1 < 37.5 m no
h1 < 37.5 m
d1 = d d1 = d
d1=d + 142 - 4.1 h 1 (Vienna)
d1=d + 25 - 4.1 h d2 = 4.1 h1 d2 =4.1 h1
1
d1=d + 140 - 4.1 h 1 (non Vienna) d3 = 25 d3 = 142 (Vienna)
d3 = 140 (non-Vienna)
GET_E GET_E
GET_E GET_E
Calculate field Calculate field
Calculate field Calculate field
strength from strength from
strength from strength from
curves curves
curves curves
E1: (37.5;d1) E1: (1200;d1)
E(37.5;d1) E(1200;d1)
E2: (37.5;d2) E2: (1200;d2)
E3: (37.5;d3) E3: (1200;d3)
E = E1 - E2 + E3
End
This process calculates the field strength if h1 is less than 37.5 m or is greater than 1200 m (according to Appendix 2 of
Annex 5 of the VA01).
d1 = d + 25 - 4,1 h1 , and field strength (E) is derived from the curve of h1 = 37.5 m, at distance d1.
d1 = d + 142 4.1 h1 , and field strength (E) is derived from the curve of h1 = 1200 m, at distance d1.
d1 = d + 140 4.1 h1 , and field strength (E) is derived from the curve of h1 = 1200 m, at distance d1.
d1 = d, d2 = 4.1 h1 , d3 = 25, and field strength values (E1, E2, E3) are derived from the curve of h1 =
37.5 m, at distances d1, d2, d3.
d1 = d, d2 = 4.1 h1 , d3 = 142, and field strength values (E1, E2, E3) are derived from the curve of h1 =
1200 m, at distances d1, d2, d3.
d1 = d, d2 = 4.1 h1 , d3 = 140, and field strength values (E1, E2, E3) are derived from the curve of h1 =
1200 m, at distances d1, d2, d3.
This subroutine calculates the field strength from curves as described in Chapter 5. The output field strength is for 1 kW
ERP.
Start
no yes
d sea
=0
no yes
Vienna ?
E l,t = E land
*(d -d sea
)/ d
E s,t = E sea
*d sea
/d
E=E l,t
+ A * (E s,t
-E l,t
)
End
dsea = 0?
If distance over sea is equal to zero the mixed path field strength is equal to the land path field strength.
Vienna?
d sea
E Eland ( E sea Eland )
d
If Vienna method is used the following formula are calculated according to Chapter 3.6 of Annex 5 of the VA01.
d d sea
E l ,t E land * ( )
d
d sea
E s ,t E sea *
d
If the frequency is higher than 300 MHz and T% is equal to 1, the field strength is determined by using the following
formula where A is define by the figure of Chapter 3.6 of Annex 5 of the VA01:
E E l ,t A * ( E s ,t E l , t )
Start
no yes
Vienna ?
yes
h2 < 10 m
Correction according
the actual used power
E = E - 30 + PR
End
Vienna?
If Vienna method is used the correction factor for the receiver antenna height h2 according to frequency and distance is
not taken into account.
h2 > 10 m
If the receiver antenna height is greater than 10 m, its correction factor is calculated.
This process calculates the correction of the receiver antenna height from 10 m to 3 m () (1.6 of Appendix 5 of Annex
5 of the VA01), according to the frequency (f) and the distance (d).
d < 50 km = - 8 dB
f 300 MHz 50 km d 100 km Linear interpolation
d > 100 km = - 5 dB
d < 50 km = - 10 dB
f > 300 MHz 50 km d 100 km Linear interpolation
d > 100 km = - 3 dB
E=E+
The field strength is corrected according the actual used power by the following formula:
E E 30 PR
If the frequency is greater or equal to 1900 MHz and less or equal to 2170 MHz (UMTS / IMT2000), then
E = E0 (E0 E) * 1.414 (E0 = free space field strength)
If the frequency is higher than or equal to 862 MHz and less than 1700 MHz, 2 dB correction is needed according to
Chapter 3.4 of Annex 5 of the VA01, i.e. E = E-2.
If the frequency is higher than or equal to 1700 MHz but not UMTS /IMT2000, 9 dB correction is needed (GSM 1800),
i.e. E=E-9.
P_FS_C
Calculation of the permissible interference
field strength EP (chp. 3)
Start
Calculate f
Input
no value for
k f available
yes
Determine k f
depending on the
calculation mode
(chapter 3.1)
End
Description
This subroutine calculates the permissible interference field strength taking into account the correction factors
mentioned in Annex 1, Annex 3, Annex 6 of the VA01 and in the relevant CEPT Recommendations.
The calculation parameters are frequency offset, receiving antenna diagram, the polarisation discrimination and
receiving antenna gain..
Calculate f:
The frequency offset between transmitter and receiver (in kHz) f = ABS (ft-fr) * 1000 will be calculated.
If an input value for kf is available, this value is used. If not the correction factor is calculated.
If no input value for kf is available, correction factor of f depending on the calculation mode is calculated as
described in Chapter 3.1.
If delta frequency is greater than the definition range, the maximum value from the Annex 3 of the Vienna Agreement
for kf +82 dB is used and info value frequency outside definition range is set.
Calculating the permissible field strength taking into account the correction factor for the frequency
offset f and all receiving antenna correction factors
This process calculates the resulting permissible field strength. This is described in detail in Chapter 3.2.
Start
Determine, if
Tx or Rx is a TETRA
system (designation of
emission = 25K0G7W)
Is yes
Cmode
8
no Is at least one no
modulation not digital ?
Determination of k f
yes according to Emergency
Services
Determination of k f
Is yes according to VA
Cmode
0, 4 or 7
(Chapter 3.1.1)
no
Determination of k f
Is yes according to GSM 900
Cmode
1, 2 or 3
(chapter 3.1.2)
no
Is yes Determination of k f
Cmode
according to GSM 1800
5 or 6
no
Is yes Determination of k f
Cmode according to UMTS/
9 IMT2000
no
Error
Cmode not available
k f
End
In this proces it is checked if the designation of emission for the transmitter or the receiver is equal to 25K0G7W
(TETRA). The output is also stored for use in the proces for determination of kf according to the Vienna Agreement
(see chapter 3.1.1).
If calculation mode is 8
In case of calculation mode 8 (Emergency and security services) first it is checked whether at least one of the
modulations of the transmitter or the receiver is not digital. This is checked in the designation of emission: if the sixth
character is 3 or 7 the modulation is analogue, 1, 2 7 or 9 is digital. When both modulations are digital, the correction
factor for f according to the emergency and security services is used. In the other case kf is calculated according to
the Vienna Agreement (see chapter 3.1.1)
where B1 is the channel spacing of the wider and B2 that of the narrower system.
Note: If another calculation mode than the previous one is used an error occurs.
If calculation mode is 0, 4 or 7
In case of calculation mode 0 (normal Vienna calculation), 4 (ERMES ERMES) or 7 (Vienna Agreement
measurement calculation), the correction factor of f according to the Vienna Agreement is used.
This process calculates kf according to the Vienna Agreement. This is described in Chapter 3.1.1.
If calculation mode is 1, 2 or 3
In case of calculation mode 1(GSM GSM), 2 (GSM TACS) or 3 (GSM NMT) the correction factor of f
according to the CEPT Rec. T/R 20-08 is used.
This process calculates kf according to the GSM 900 method. This is described in Chapter 3.1.2.
If calculation mode is 5 or 6
In case of calculation mode 5 (GSM 1800 ML GSM 1800 FB) or 6 (GSM 1800 FB GSM ML) the correction factor
of f according to the CEPT Rec. T/R 22-07 is used.
LEFT BLANK
f kf
0 kHz - 9 dB
200 kHz + 9 dB
400 kHz + 41 dB
600 kHz + 49 dB
If calculation mode is 9
In case of calculation mode 9 the correction factor for f for UMTS/IMT-2000 systems is used.
f kf
< 5000 kHz 0 dB
5000 kHz and < 10000 kHz + 24 dB
10000 kHz + 82 dB
The value + 24 dB is derived from the CEPT/ERC Recommendation for Border Coordination of UMTS/IMT-
2000 systems. The value for the permissible fieldstrength for frequencies which are aligned is substracted from
the value for the permissible fieldstrenght for frequencies which are not aligned.
Determination of k f according
to Vienna Agreement (chp 3.1.1)
Start
Input
Designation of emission
(Rx and Tx)
Delta frequency ( f )
no
Is
CSR
12,5 kHz 25kHz
20kHz
k f calculation
Output
k f
End
The channel spacing of the used receiver system (CSR) will be determined from its bandwidth.
For the determination of CSR from the first 4 characters of column 7A (designation of emission) of Annex 2 of the
VA01, the channel spacing has to be determined as follows:
CSR:
Note: The error values are for the receiver 1013 and for the transmitter 1014 (Channel spacing outside definition range).
The channel spacing of the interfering transmitter system (CSI) will be determined from its bandwidth.
For the determination of CSI from the first 4 characters of column 7A (designation of emission) of Annex 2 of the
VA01, the channel spacing has to be determined as follows:
Note: The error values are for the receiver 1013 and for the transmitter 1014 (Channel spacing outside definition range).
LEFT BLANK
Is Tx or Rx TETRA ?
This has already been checked in chapter 3.1. If Tx or Rx is a TETRA equipment the figures 4 or 5 of the Annex 3 to the
Vienna Agreement are used.
According to the channel spacing of the receiver, the appropriate curve of figure 1, 2 or 3 of the Annex 3 to the Vienna
Agreement is used.
k f calculation:
The calculation of the value of kf will be taken from the curve according to f.
Output:
The output of this module is the value of kf and will be used for the calculation of the permissible interference field
strength.
Determination of k f according
to CEPT T/R 20-08 (GSM 900) (chp 3.1.2)
Start
Tx bandwith
>
100 kHz
Tx = GSM Rx = GSM
End
If the Tx bandwidth is greater than 100 kHz, GSM is the transmitter. In the other case GSM is the receiver.
Tx = GSM
Rx = GSM
Calculation Tx Rx kf
Mode (interferer) (wanted) f = 0 kHz f = 200 kHz f = 400 kHz
1 GSM GSM - 9 dB + 9 dB + 41 dB
2 TACS GSM - 11 dB + 19 dB + 49 dB
2 GSM TACS - 9 dB + 33 dB + 51 dB
3 NMT GSM - 9 dB + 33 dB + 61 dB
3 GSM NMT - 10 dB + 20 dB + 50 dB
Start
End
Chapter 3.2: Calculating the permissible field strength taking into account kf and
all receiving antenna correction factors
The total difference angle is calculated according to the Annex 8 to the VA, using the formula
This process calculates the horizontal antenna attenuation and is described in detail in Chapter 2.2.2.
In case of non directional antenna, no calculation is needed and the horizontal antenna attenuation is set to zero.
This process calculates the vertical antenna attenuation and is described in detail in Chapter 2.2.1.
In case of non-directional antenna, no calculation is needed and the vertical antenne attenuation is set to zero.
This process calculates the total antenna attenuation C1 according to Annex 8 to the VA.
If both values for attenuation are equal, the resulting attenuation (Aresulting) is equal to one of those values:
Aresulting = Ahorizontal or Aresulting = Avertical
If the horizontal attenuation is greater than the vertical, the resulting attenuation (A resulting) is:
Aresulting = Avertical + (Ahorizontal Avertical) Abs(hda) / (Abs(hda) + Abs(vda))
If the vertical attenuation is greater than the vertical, the resulting attenuation (Aresulting) is:
Aresulting = Ahorizontal + (Avertical Ahorizontal) * Abs(vda) / (Abs(hda) + Abs(vda))
The correction for the type of reference antenna (C2) will be 2.1 dB in case of an isotropic antenna (I) and zero in case
of an 1/2 antenna (E).
LEFT BLANK
The resulting permissible field strength is calculated taking into account the permissible field strength from table or
input, the receiver antenna gain, the total antenna directivity attenuation correction factor, the correction factor
according to the type of antenna, the depolarisation loss and the correction factor according to the frequency offset.
EP = EP G2 + C1 + C2 + p + kF
LINE_C
Calculation of the max. field strength
on a line (chp. 4)
Start
Calculate interference
range (INTRA)
(chp. 4.1)
Select line
POINTB
Open line data
yes
no
End reached ?
Calculate distance to
centre point
yes Are there no
centre points to be
regarded ?
Distance < no
Read line data interference yes
corresponding to the Line data Max field range
stored centre point strength =
-999.9 yes
Redo calculation to
Line parts the point of
End
no done yes maximum field
strength
Description
This subroutine will predict the maximum interference field strength on the co-ordination lines.
Co-ordination lines are
- border lines
- maximum cross border ranges
- the x-km lines of preferential frequencies.
For the prediction of the field strength the subroutine Calculation of the field strength (FS_CAL) is used.
Common terrain data and common co-ordination line data are obligatory.
This process calculates the maximum interference range of the given Tx (based on power, effective antenna height, 10
steps, flat terrain and maximum permissible interference field strength). This is described in detail in chapter 4.1.
Select line:
This routine checks the input value for the co-ordination line distance and country codes and builds the filename.
This subroutine opens the selected file for access and is described in detail in chapter 5.
This routine reads line data from the opened file. One record consists of 11 pairs of co-ordinates (10 points from the
line and one centre point).
End reached:
If all line data is read and all calculations to centre points are performed, the program proceeds to determine the
maximum field strength.
If the distance is within the interference range, this centre point has to be taken into account for field strength
calculation.
LEFT BLANK
This process calculates the field strength at the given centre point. For cross border range calculations, the maximum
cross border range is added to find a new point where the field strength is calculated. This is described in detail in
chapter 4.2.
The co-ordinates of the three centre points giving the highest field strength values are stored for further calculation on
this part of line.
If centre points have been stored, the program proceeds to calculate the field strength at this part of the line. If no centre
points have been stored, the co-ordination line lies outside of the interference range.
The part of line data described by the stored centre point is read.
The field strength for all points of this special part of the line is calculated. For maximum cross border range
calculations, the maximum cross border range is added to find a new point where the field strength is calculated. This is
described in detail in chapter 4.2.
For the point with the maximum field strength value, the co-ordinates and the field strength are stored.
The program proceeds until all line parts described by the stored centre points have been taken into account.
To provide all necessary output data, the calculation to the point giving the highest field strength, is performed again.
Start
Calculation of effective
yes Is transmitter a no antenna heigths in 10
mobile station degree steps
Chp 4.1.1
Calculate interference
range
no yes
mixed path
(d sea 10.0)
Tx
yes no
Freq 300
MHz
no yes no yes
T% =1 T% =1
INTRA = INTRA + 5 km
Cross
border range yes
INTRA = INTRA - MCR
calculations
(MCR)
no
End
For fixed stations, this module calculates the effective antenna heights in 10 degree steps with a grid of 500 m (to speed
up the calculations) and an antenna height of 0 meter. This process is described in detail in chapter 4.1.1.
According to the ITU-R Rec. curves, the interference range INTRA is calculated using the following formula:
INTRA 10 20 C
G 10 1.1
Mixed path:
Mixed path is assumed if the input value for dsea 10km or not provided (worst case). For mixed path calculations the
value of INTRA will be increased by a factor CO depending on the frequency band and time percentage. CO is a
correction factor derived from the average differences between land- and sea- curves at a given time percentage.
LEFT BLANK
To correct for the average distance between the centre point and the line, 5 km are added.
Start
angle = 0 degrees
PROFIL
Determination of the terrain-
or morphological profile
between two points
(Tx and receiving points)
End
Calculate heff
The profile grid size is set to 500 m to speed up calculations. This may be done because accuracy is not needed at this
intermediate calculation.
Angle = 0 degrees:
New point:
The ending point of the new profile (starting at Tx) is calculated using the new angle and a distance of 15.1km.
PROFIL:
The subroutine PROFIL is called to calculate the new terrain profile. This subroutine is described in detail in chapter 5.
Calculate heff:
Start
yes Cross
border range
calculation
FS_CAL
Calculation of the field strength
(chp. 2)
End
For cross border calculations, the given point is not the receiving point, so corrections have to be made.
The distance and direction from the transmitter to the given line point are calculated (using DISTAN and DIRECT as
described in chapter 5).
This module calculates the co-ordinates of the receiving point by adding the maximum cross border range taking into
account the distance and the direction calculated before.
FS_CAL:
This module calculates the field strength at the receiving point (described in chapter 2).
ANTENN
Calculation of the gain of a directive
antenna in a given direction (chp. 5.1)
Start
End
Chapter 5: SUBROUTINES
The first part of this subroutine splits the input antenna character string into three parts as described in point 1.1 of
Annex 6 of the VA01 :
This part of the subroutine converts the first and third part of the separated character string into numeric values.
This part of the subroutine checks the type of antenna (2 nd part) and the possible values of the leading part according to
the values in the table:
EA 001 - 065
EB 001 - 079
EC 001 - 096
DE 001 - 065
LA 001 - 120
KA 000 - 100
CA 000 - 100
CB 000 - 100
CC 000 - 100
For EA, EB, EC, DE, LA, KA, CA, CB and CC type antennas, the angle and antenna code are used directly with the
formulas in Annex 6 of the VA01 to calculate the correction factor.
For V* and W* type antennas, the antenna code is further analyzed to derive the correct formula according to Appendix
4 & 5 to Annex 6 of the VA01.
For XX and ND type antennas the correction factor is set to 0 dB. For XX antennas an info value is returned.
The result is limited to -40 dB, giving an antenna correction factor in the range of -40 ... 0 dB.
C_DH_C
Calculate the correction factor k h
(chp. 5.2)
Start
Input h, d, f
no yes
f > 300
Figure 2 of appendix
Figure 1 of appendix
3 to annex 5 of
3 to annex 5 of VA99
VA99
k h determination
End
Input h, d, f:
The values for terrain irregularity, distance and frequency are read.
f > 300:
The table according to figure 1 of Appendix 3 to Annex 5 of VA01 is selected for calculation.
The table according to figure 2 of Appendix 3 to Annex 5 of VA01 is selected for calculation.
k h determination:
CLACOF
Calculation of the clearance angle
and its correction factor according to
the CEPT method
(Chapter 5.3)
Start
no yes
Distance > 16 km
Calculate all Rx
Calculate all Rx
elevation angles taking
elevation angles taking
into account the
into account the
distance from
distance from Tx to Rx
(Rx - 16 km) to Rx
Rx clearance angle =
minimum of all Rx
elevation angles
Calculate Rx clearance
angle correction factor
End
Chapter 5.3: Calculation of the clearance angle and its correction factor according
to the CEPT method (CLACOF)
This module determines the terrain clearance angle as described in 1.4 of the Appendix 5 to Annex 5 of the VA01. The
profile that has been taken into account is situated between the receiver and 16 km from it, into the direction of the
transmitter.
Calculate all Rx elevation angles taking into account the distance from Tx to Rx:
Calculate this in case of a distance less than or equal to 16 km. For every profile point, an elevation angle is calculated
from 10 m height above the ground at the receiver site.
Calculate all Rx elevation angles taking into account the distance from Rx 16 km to Rx:
Calculate this in case of a distance greater than 16 km. For every profile point, belonging to the last 16km of the profile
(from Tx to Rx) the elevation angle is calculated from 10 m height above the ground at the receiver site.
The terrain clearance angle is the minimum of the calculated elevation angles.
From the Rx terrain clearance angle and the frequency, the correction factor is determined out of the figure in 1.4 of
the Appendix 5 to Annex 5 of the VA01.
CLEARC
Calculation of the clearance angle
correction factor (chp. 5.4)
Start
no yes
f > 300 MHz
End
The terrain clearance angle correction factor is calculated in accordance to Appendix 4 to Annex 5 of the VA01, using
the formulas for VHF or UHF depending on the frequency band.
DH_ITU
Calculate h according to CEPT
recommendations (Ch 5.5)
Start
yes no
d > 10 km
no yes
d > 50 km
h = 50 m
d2 = d d2 = 50 km
Determine h
End
d > xx km:
This module calculates the value of h from the terrain profile, starting 10 km from the transmitter up to the receiving
point (d2=d). If the distance from the transmitter to the receiver (d) is less than or equal to 10 km, then h = 50m. If the
distance (d) is larger than 50km, then the first 50km are taken into account (d2 = 50km).
For further calculations, the profile heights have to be sorted, to be able to eliminate the extreme values.
10% of the values at the top and the bottom are deleted to minimise the influence of extremes in the propagation path
(see 1.2 of Appendix 5 to Annex 5 of the VA01).
Determine h:
The difference between the highest and lowest remaining profile height is the value of h.
DH_VIE
Calculate h according to Vienna
method (Ch 5.6)
Start
yes no
d > 10 km
yes no
d > 50 km
h = 50 m
Select all profile points from Select all profile heights from
4.5 km to 25 km 4.5 km to (distance - 4.5 km)
Determine h
End
d > xx km:
This module calculates the value of h from the terrain profile, taking into account the terrain in a range from 4.5 km to
25 km from the Tx and Rx site.
If the distance from the transmitter to the receiver is less than or equal to 10 km, then h = 50m.
If the distance is less than or equal to 50km, then the terrain in a range of 4.5 km from Tx to 4.5 km to Rx is taken into
account (see 3.3 of Annex 5 to the VA01).
Depending on the distance between the transmitter and the receiver, all required profile points are selected according to
chapter 3.3 of Annex 5 of the VA01
For further calculations, the profile heights have to be sorted, to be able to eliminate the extreme values.
10% of the values at the top and the bottom are deleted to minimise the influence of extremes in the propagation path.
Determine h:
The difference between the highest and lowest remaining profile height is the value of h.
DIRECT
Calculation of the azimuth from one
point to another point
(Chapter 5.7)
Start
yes no
Is longitude of A =
longitude of B
Is latitude of A >=
yes no
latitude B
yes no
Difference between
longitudes < 180
Azimuth = Azimuth =
Azimuth = angle
360 - angle 360 - angle
End
Chapter 5.7: Calculation of the azimuth from one point to another point (DIRECT)
This subroutine calculates the azimuth from point A to point B and is only valid for calculations with geographical
points north of the equator.
Determine angle:
where
D arccos(sin( LAA) * sin( LAB ) cos( LAA) * cos( LAB ) * cos( LOB LOA))
and where
LOA = longitude of point A
LAA = latitude of point A
LOB = longitude of point B
LAB = latitude of point B
DISTAN
Calculation of the distance between
two points (Tx and receiving point)
(Chapter 5.8)
Start
yes no
Are co-ordinates
equal?
End
Chapter 5.8: Calculation of the distance between two points (Tx and receiving
point). (DISTAN)
When the co-ordinates of Tx and the receiving point are equal the distance is set to 0 km.
Calculate distance:
2 R
111 .2 km
360
d[km] = 111.2 * a
GET_E
Calculate field strength from curves
(chp. 5.9)
Start
Interpolation
End
This module gets the field strength from the table of the appropriate curve. Values in this table are stored at fixed
distances and fixed effective antenna heights. The distance d is between d1 and d2; the effective antenna height h1 is
between h11 and h12.
E1=E(h11,d1)
E2=E(h12,d1)
E3=E(h11,d2)
E4=E(h12,d2).
Interpolation:
Linear interpolation between these four values is done to get the field strength E(h,d).
LEFT BLANK
Chapter 5.10 Select the correct ITU-R figures (land and sea) (GETFIG)
This subroutine selects the correct land- and sea-figure and their names according to the frequency (less than or equal
300 MHz = VHF, greater than 300 MHz = UHF), the time percentage and the sea temperature (see Annex 4 of the
VA01).
LEFT BLANK
The only reason why this subroutine is a stand-alone subroutine, is that the opening of the file is hardware depending.
The subroutine distributed by the HCM-group is performing on an MS-DOS platform.
Start
no Is yes
ending point reached
?
Determine the information of point PN Determine the information of the last point
(see Chapter 5.13 and 5.14) (see Chapter 5.13 and 5.14)
Next point
End
This process constructs the path profile to get the height information or morphological information of all points along
the profile path.
The height information or the morphological information of the first point is determined. The determination of the
height of a point is described in detail in Chapter 5.13, the determination of the morphological information of a point is
described in detail in Chapter 5.14.
The distance between the first and last point is calculated (see Chapter 5.8).
The points along the path profile are counted. The first point in this loop is number 2 because number 1 is the starting
point calculated before.
If the calculated distance between starting point and point PN is greater or equal to the total distance, then the ending
point is reached.
The co-ordinates of point PN are calculated taking into account the direction and distance from the starting point.
The height information or the morphological information of point PN is determined. The determination of the height of
a point is described in detail in Chapter 5.13, the determination of the morphological information of a point is described
in detail in Chapter 5.14.
Next point
The height information or the morphological information of the last point is determined. The determination of the
height of a point is described in detail in Chapter 5.13, the determination of the morphological information of a point is
described in detail in Chapter 5.14.
LEFT BLANK
Start
yes Is no
data block in memory
?
End
This process determines the height of a point. The height information is stored in files on a disk. The structure of this
files containing the height information is described in detail in Chapter 10.
Calculate the filename and the resolution of the file containing the height data
The filename and the resolution of the file containing the height data is calculated using the co-ordinates of the point.
The data block number is calculated using the co-ordinates of the point.
Determine the heights of the 4 grid points nearest to the wanted point
Start
yes Is no
data block in memory
?
End
This process determines the morphological information of a point. This information is stored in files on a disk. The
structure of this files containing the morphological information is described in detail in Chapter 11.
Calculate the filename and the resolution of the file containing the height data
The filename and the resolution of the file containing the morphological information is calculated using the co-ordinates
of the point.
The data block number is calculated using the co-ordinates of the point.
yes
no Is Tx a mobile?
no yes
Is Rx a mobile?
Test overlapping
conditions
End
Is Tx a mobile ?
Here it is detected if the transmitter is a mobile. The information is derived from the input value for the radius of service
area.
If the service area is cut odd times, it means that the service area of the mobile is limited by the border. Therefor the
closest point on the border section inside the service area in the direction of the receiver has to be taken into account. If
the service area is cut even times it means that the edge of the service area is still within the own country. Therefor the
closest position on the circle of service area into the direction towards the receiver is selected.
Is Rx a mobile ?
Here it is detected if the receiver is a mobile. The information comes out of the input value for radius of service area.
If the service area is cut odd times, it means that the service area of the mobile is limited by the border. Therefor the
closest point on the border section inside the service area, in the direction of the transmitter has to be taken into account.
If the service area is cut even times it means that the edge of the service area is still within the own country. Therefor
the closest position on the circle of service area into the direction towards the receiver is selected.
If both service areas overlap or if the affected fixed station is within the service area of the mobile, the program gives an
info message and the fieldstrenght is set to 999.9 dBV/m.
Start
Determine the
intersection between
two line pieces
Is there an intersection?
Yes No
Increase number of
intersections by 1
No Yes
Is end of file reached?
End
Chapter 5.15.1: Determine the number of intersections between the border and the
service area.
This routine takes the input value for the country code and builts the name of the filename of the borderline. For this
calculation the complete borderline of the country is needed.
In this routine two line section are use: the first section is the line between two adjacent points on the border; the second
section is the line between the centre of the service area and the point on the edge of the service area in the direction of
the receiver. This routine determines if there is an intersection between the two line sections.
Is there an intersection ?
If an intersection is determined a counter indicating the number of intersections is increased by one. After this the next
point from the border line is taken to select a new line section of the borderline.
If all line data is read and all calculations are performed, this routine gives a number as output.
The height data used by the HCM programs (Mobile Service and Fixed Service) may come from different
sources.
Some data may come from military source (Digital Terrain Elevation Data (DTED) Level 1 Coverage), some
data are may come from national geographic institutes.
A fallback possibility to get terrain height data is to use GTOPO30 data. This data is free available at the
Internet (http://edcwww.cr.usgs.gov/landdaac/gtopo30/gtopo30.html), but it only has a resolution of 30
seconds (approximately 1 km). GTOPO30 data converted to the HCM format are available at the internet site
of the Vienna Agreement (http://va.bmwi.bund.de).
The HCM terrain height data has a resolution of 3 seconds in the North - South direction and 3 or 6 seconds
in the East West direction (depending on the latitude). If the latitude is less than 50 degrees (North or
South), the resolution is 3 seconds, if the latitude is greater or equal to 50 degrees, the resolution is 6
seconds.
All source data has to be converted to WGS84 format and to the above mentioned resolution. Data from
different sources needs to be combined to a common database covering all Vienna Agreement Signatory
countries (plus an additional range of approximately 100 km).
- All elevation data consists of 2 Bytes Integer-values (Fixed Binary integers). If the elevation value is
negative, first the MSB (Bit #15) has to be cleared and second the complement has to be built to get the
correct elevation value.
- Terrain data of a 5 x 5 minute square (approximately 9 x 5 km) is combined in one data-record. Strips in the
North and East are added to the data inside the square. The reason is: If you want to have the elevation of a
given point, in most cases this point is located between 4 points in the grid of the stored data. To get the
correct elevation, you have to interpolate between these 4 points. The western and southern grid-points are
always present (example: wanted point 8 degrees 0 minute 1 second record 8 degrees 0 minute to 5
minutes is read; so the western grid-point (= 8 degrees 0 minute 0 second) is present. In the case where the
wanted point is for example 8 degrees 4 minutes 59 seconds, the eastern grid-point is 8 degrees 5 minutes 0
second. Normally this point is not inside the read record, but part of another record (8 degrees 5 minutes to
10 minutes). To prevent the program from reading an additional record, the strip 5 minutes 0 second is added
to the record 0 minute to 5 minutes. For the same reason, a strip in the North is also added. It is therefore
possible to get the right elevation of a wanted point reading only one record of data.
133 134 135 136 137 138 139 140 141 142 143 144
121 132
109 120
97 108
85 96
73 84
West 61 72 East
49 60
37 48
25 36
13 24
1 2 3 4 5 6 7 8 9 10 11 12
South
- All files with the same longitude are stored in the same subdirectory. The name of the subdirectory is
equal to the first four characters of the filename (example: E007).
- All subdirectories are stored in the (top level) directory TOPO. A valid filename with the full path therefore
is:
C:\TOPO\E010\E010N45.33E
Note: Only the drive letter C may be replaced by any other valid drive letter. The rest of the directory
structure is fixed. This fixed directory structure is build in the HCM programs. Only the drive letter is an
input value to the HCM programs. The rest of the filename / subdirectory name is calculated inside the HCM
programs taking into account the co-ordinates.
- In Europe, a 5 minutes x 5 minutes square contains north of 50 degrees latitude 101 x 51 values = 5.151
values and south of 50 degrees latitude 101 x 101 values = 10.201 values. One value = 2 Bytes. The length of
data records therefore is 10.302 or 20.402 Bytes.
- Record description:
Length: fixed, 10.302 or 20.402 Bytes
No carriage control!
- The elevation data inside the record is combined from East to West and from South to North.
North
West East
South
The morphological data required for the HCM programs is provided by the TWG HCM SWG Program
(Technical Working Group Harmonized Calculation Method Sub Working Group Program) and is available
at the internet site of the Vienna Agreement (http://va.bmwi.bund.de).
The morphological database is a raster database with the same grid and structure as the terrain height
database (see Chapter 10).
Each entry consists of two bytes, one for the predominant height of the surface (trees, buildings) and one for
the class of the morphology information.
Because each grid point represents an area of 3 x 3 (3 x 6) seconds, more than one class of morphology is
possible, e.g. a part is buildings, an other part is trees. In those cases there are different heights for this area.
It is possible, to define more than one class, but only one height.
The height information is one byte. Therefore it is possible to define heights from 0 m to
255 m. The height is the predominant height of the area represented by this grid point, e.g. if there are 70 %
buildings with 10 m height, 20% trees with 12 m height and 10% roads with 0 m height, 10 m is taken to
represent this area.
The class of morphology consists of one byte. Therefore 8 different classes (bits) are possible. For the fixed
service land, sea and coastal area are required, for the mobile service only land and sea are required.
In general, a morphological database is not required for all countries applying the HCM software. If there is
no sea or coastal area (e.g. Austria, Slovakia), the use of a morphological database is not mandatory.
The morphological database offered by the TWG HCM SWG Program does not have height information (all
heights are 0 m). Only the morphological classes normal land, sea / ocean and costal area are supplied.
All morphological data consists of 2 bytes. The first byte represents the class of morphology, the second byte
is the height information.
North
133 134 135 136 137 138 139 140 141 142 143 144
121 132
109 120
97 108
85 96
73 84
West 61 72 East
49 60
37 48
25 36
13 24
1 2 3 4 5 6 7 8 9 10 11 12
South
All files with the same longitude are stored in the same subdirectory. The name of the subdirectory is equal to the first
four characters of the filename (example: E007).
All subdirectories are stored in the (top level) directory MORPHO. A valid filename with the full path
therefore is:
C:\MORPHO\E010\E010N45.33M
Note: Only the drive letter C may be replaced by any other valid drive letter. The rest of the directory
structure is fixed. This fixed directory structure is build in the HCM programs. Only the drive letter is an
input value to the HCM programs. The rest of the filename / subdirectory name is calculated inside the HCM
programs taking into account the co-ordinates.
In Europe, a 5 x 5 minutes square contains north of 50 degrees latitude 101 x 51 values = 5.151 values and
south of 50 degrees latitude 101 x 101 values = 10.201 values. One value = 2 bytes. The length of data
records therefore is 10.302 or 20.402 bytes.
Record description:
Length: fixed, 10.302 or 20.402 Bytes
No carriage control!
The data inside the record is combined from East to West and from South to North.
North
West East
South
For distance calculations, field strength predictions and calculation of the position of a mobile, following geographical
data are required:
border lines to involved countries,
cross border lines according to the Annex 1 of VA01,
x-km lines for preferential frequencies (for own and foreign preferential frequencies).
closed borderlines of the own and of involved countries (for calculation of the position of mobiles).
To determine the necessary border line for the involved countries, the border line data of the involved countries are
required up to a distance of 100 km within these countries.
For calculating the cross border range for Tx the common borderline e.g. between country B and A is used with an
extension of approx. 100 km on both ends as shown below.
To determine the x-km lines in every country involved, the data of these x-km lines with or without an overlap on one
or both sides of the border are required. The requirement of an overlap depends on the shape of the border lines.
In some cases, if the border line e.g. looks like the picture below, an overlap of the x-km-lines is required. How long the
overlap is and where the line starts or ends, is subject of a bilateral agreement between the involved countries.
Chapter 8.1.5: Closed borderlines of the own and of involved countries (for calculation of the
position of mobiles):
To determine the the position of a mobile (if the borderline cuts the service area of this mobile), a closed borderline of
the country is required. This country may be the own country or an involved country (country A D).
The closed border line of the country is stored in the BORDER directory with the name of the country (country code, 3
characters, missing characters are _) and the extension ALL, e.g. HOL.ALL or F__.ALL
For field strength predictions on the border line, only the border line data described in 8.1.2 will be used. This
calculation has to be performed in every of the cases mentioned under paragraph 1 in order to determine the affected
countries.
After having determined the affected countries, the cross border range calculation has to be performed by using only
the border line data of the own country (see 8.1.3).
After determination of the affected countries, the field strength predictions on the x-km lines have to be performed by
using the x-km lines data (see 8.1.4).
All line data (borderlines, x-km lines, lines for calculating the cross border range) are stored in different files. The
names of those files are build using the two country codes (country from country to) and the distance to the
borderline. If the country code is less than 3 letters, the missing places are filled with underscores (e.g. F__).
Borderlines are stored with the extension .000 (e.g. the borderline between HOL and BEL has the filename
HOLBEL.000).
Lines to calculate the cross border range use the extension .CBR.
Preferential lines (x-km lines) use the value of the distance to the borderline as extension (e.g. .015 for a 15 km line).
Closed lines to calculate the position of a mobile use the extension .ALL.
Line data files consists of fixed length records without carriage control.
To create a record, the co-ordinates of 10 points following each other are selected. The centre of this 10 co-ordinates is
calculated. This is the 11th point. All co-ordinates are in decimal form, longitude first, latitude second (e.g. 10.14567
45.39876). The result of all 11 points is 22 numbers. This 22 values are converted to radian (value x / 180) and stored
in REAL x 8 variables. All converted 22 values are stored in one record writing 22 x 8 = 176 Bytes.
Record: long 1, lat 1, long 2, lat 2,..long 10, lat 10, long11, lat11
Part of a FORTRAN code to store the data (22 radian values of co-ordinates)
PROGRAM TEST
C
DOUBLE PRECISION COORD(22)
CHARACTER*176 LINE
C
EQUIVALENCE (COORD, LINE)
C
OPEN (UNIT=1, FILE=HOLBEL.000, ACCESS = DIRECT, RECL = 176)
WRITE (1, REC=1) LINE
C
C LINE and COORD use the same memory space (EQUIVALENCE statement) !
C
CLOSE (UNIT=1)
C
END
If for the last record the number of the remaining points is less than 10, the co-ordinates of the last available point is
duplicated until 10 co-ordinates are reached.
Chapter 8.4: How to create the required database with the "BORDER" - program:
The "BORDER" program offers the option to create all required data files. As the input for calculations you need the
border line data from your own country, subdivided in portions according to the different involved countries and up to a
distance of 100 km from the own border. All data consist of pairs of geographical co-ordinates of border points in
decimal, WGS84 format. It is required as a textfile, in each line longitude and latitude of one border point, first
longitude, second latitude. These two values have to be delimited by a blank, a comma or a semicolon (see HELP in the
BORDER program, example: 9.523 51.324).
For other computers (e.g. UNIX) the BORDER program presents the possibility to store the line data in ASCII-format.
This file(s) have to be moved to the other computer and a small program has to be run to convert this data to the format
required for the HCM module. This FORTRAN program is listed in paragraph 5.
C
C ASC_BIN.FOR
C
C Converting ASCII (border-) line data created with the "BORDER"
C program to binary data.
C
DOUBLE PRECISION X(22)
CHARACTER*176 Y
CHARACTER*50 IN, OUT
INTEGER I, J, IOS, IN_L, OUT_L
C
EQUIVALENCE (X,Y)
C
C ************************************************************
C
C Ask for filenames:
10 WRITE (*,*)
IN = ' '
WRITE (*,*) ' Please enter the name of the file containing',
* ' the ASCII data:'
READ (*,'(A50)',END=900,ERR=10) IN
C
20 WRITE (*,*)
OUT = ' '
WRITE (*,*) ' Please enter the name of the file for the',
* ' binary data:'
READ (*,'(A50)',END=900,ERR=20) OUT
C
C Length of filenames:
IN_L = INDEX (IN, ' ') - 1
IF (IN_L .LT. 1) GOTO 10
OUT_L = INDEX (OUT, ' ') - 1
IF (OUT_L .LT. 1) GOTO 20
C
OPEN (UNIT=1, FILE=IN(1:IN_L), RECL=440)
OPEN (UNIT=2, FILE=OUT(1:OUT_L), RECL=176, ACCESS='DIRECT')
C
J = 1
C
100 READ (1,'(22F20.15)',IOSTAT=IOS) (X(I),I=1,22)
IF (IOS .EQ. -1) GOTO 900
IF (IOS .NE. 0) THEN
WRITE (6,*) ' Error reading ASCII data, I/O-status = ',IOS
GOTO 900
END IF
WRITE (2,REC=J,IOSTAT=IOS) Y
IF (IOS .NE. 0) THEN
WRITE (6,*) ' Error writing binary data, I/O-status = ',IOS
GOTO 900
END IF
J = J + 1
GOTO 100
900 CLOSE (UNIT=1)
CLOSE (UNIT=2)
END
The interface contains all input- and output data to and from the HCM_MS subroutine and is defined in the include file
HCMMS01_DEF.FOR. This file is part of the source code.
Because all definitions are in COMMON blocks, no argument is required calling HCM_MS subroutine. Therefore a
simple surrounding program needs only a few lines:
Content of HCMMS01_DEF.FOR:
C
C HCMM01_DEF.FOR
C
C Common definitions for HCMMS_V6
C
CHARACTER*1 TYOFAN, CHANOC, SEATEM, TYOFAR
CHARACTER*2 COFFDI
CHARACTER*3 LANDF, SEAF, LANDTO, LANDFR, MARAIN
CHARACTER*4 HTI, HRI, HATI, HARI, GAINAN, DP
CHARACTER*5 AZITI, ELETI, VERSIO, RSERVT, RSERVR, DSEA
CHARACTER*5 AZIRI, ELERI, EPINP
CHARACTER*6 MAXPOW
CHARACTER*7 TANTH, TANTV, TANTHR, TANTVR
CHARACTER*9 DEMRX, DEMTX
CHARACTER*12 TRAFRE, RECFRE
CHARACTER*15 COOTX, COORX, COOBL, COOTXN, COORXN
CHARACTER*63 TPATH, BPATH, MPATH
C
INTEGER HTT, HRT, ERROR, PN, PROF(34000), MORPH(34000)
INTEGER CMODE, BORDIS, TIMPRO, HAR, HAT, HT
C
REAL PR, E0, EC, HDT, HDR
REAL MAXFS, HEFFX(36), TX_CLA, RX_CLA
REAL TX_CAC, RX_CAC, HEFFTX, HEFFRX
REAL AM, AMS, H1, DH, CDH, EL, ES, C1, C2
REAL DIRTX, ANGLEV, DAV, DAH, ERPRT
REAL EP, MAXRA, C1R, C2R
REAL DF, CDF, EP0, CSR, CSI, DIRRX
REAL DAZI, DELE, AV, PROTM, DSEA_C
C
DOUBLE PRECISION DIST, PD, DISBOR, DIRBOR
DOUBLE PRECISION LONGA, LATA, LONGB, LATB
C
LOGICAL INFO2(20), INFO3(5), INFOA2, INFOA3, OFFDEY
LOGICAL VIENNA
C
C
COMMON /COMDA/ LONGA, LATA, LONGB, LATB, ERROR, HDT, HDR,
* CMODE, HEFFX, TIMPRO, HAT, HAR, PROTM, HT,
* INFO2, INFO3, INFOA2, INFOA3, OFFDEY, VIENNA
COMMON /CDATA/ HTI, HRI, HATI, HARI, AZITI, ELETI, MAXPOW,
* TYOFAN, TANTH, TANTV, CHANOC, SEATEM,
* RSERVT, RSERVR, COOTX, COORX, TRAFRE,
* RECFRE, LANDF, SEAF, DSEA, MARAIN, VERSIO,
* COOTXN, COORXN
COMMON /NDATA/ HTT, HRT, PR, E0, EC, DSEA_C
COMMON /CRDAT/ TANTHR, TANTVR, DEMRX, DEMTX, AZIRI, ELERI,
* EPINP, TYOFAR, GAINAN, DP, COFFDI
COMMON /NRDAT/ EP, MAXRA, ERPRT
COMMON /MOD5ND/ BORDIS, MAXFS, DISBOR, DIRBOR
COMMON /MOD5CD/ LANDTO, LANDFR, COOBL
COMMON /ERGDAT/ AM, AMS, H1, DH, CDH, EL, ES, C1, C2,
* DIRRX, ANGLEV, DAV, DAH, TX_CLA, RX_CLA,
* TX_CAC, RX_CAC, HEFFTX, HEFFRX
COMMON /ER3DAT/ C1R, C2R, DF, CDF, EP0, CSR, CSI,
* DIRTX, DAZI, DELE, AV
COMMON /TP/ TPATH
COMMON /MP/ MPATH
COMMON /BP/ BPATH
COMMON /PROFDA/ DIST, PD, PN, PROF, MORPH
Input/
A lot of programming languages (e.g. Visual Basic, C++) are able to work with DLLs.
There are some restrictions in some programming languages: Boolean - and String variables are difficult to handle and
the number of arguments is limited. Therefor some modifications in the interface are required:
CMODE
An input value; the mode of calculation; a 4 byte INTEGER (LONG in VB); permissible values = -8 to +7
OFFDEY
An input value; the switch off Deygout method; a 4 byte INTEGER (LONG in VB);
values: 0 = False (Deygout is switched on), any other value = True (Deygout is switched off).
BORDIS
An input value; the distance to the borderline; a 4 byte INTEGER (LONG in VB);
values: 0 = calculations are performed on the borderline, positive value x = calculations are performed at the x-km line,
any negative value = calculation of the maximum cross-border range.
PD
An input value; the distance between two profile points (grid size) in km; a 8 byte DOUBLE PRECISION (DOUBLE in
VB); this value has to be set to 0.1 (default value).
DIST
An output value; the distance between transmitter and the receiving point in km; a 8 byte DOUBLE PRECISION
(DOUBLE in VB); this value is only valid in case of a point to point calculation (positive CMODE). In case of a point
to line calculation, this value only represents the outcome of the last calculation performed, not the distance to the point
with the highest field strength!
HTT
An output value; a 4 byte INTEGER (LONG in VB); the height of the transmitter site above sea level from the terrain
database in m.
HRT
An output value; a 4 byte INTEGER (LONG in VB); the height of the receiver site above sea level from the terrain
database in m. This value is only valid if CMODE is positive!
HT
An output value; a 4 byte INTEGER (LONG in VB); the height of the transmitter site above sea level in m. This value
is either the height from terrain database if no input value for the height above sea level is given or the height given in
the input value. This height is used for all calculations.
ERROR
An output value; a 4 byte INTEGER (LONG in VB); the error code. Error codes are listed in the HCM documentation.
An additional error code is generated by the DLL software:
Number: 3000
Description: The string variable passed to the DLL is too short (less than 365 characters).
AM
An output value; a 4 byte REAL (SINGLE in VB), the loss of the main obstacle in dB (Deygout method). This value is
only valid in case of Deygout method and is set to 0 in case of the ITU_R method.
AMS
An output value; a 4 byte REAL (SINGLE in VB), the loss of the second obstacle in dB (Deygout method). This value
is only valid in case of Deygout method and is set to 0 in case of the ITU_R method.
H1
An output value; a 4 byte REAL (SINGLE in VB), the effective antenna height in m used for the calculations according
the ITU_R method. This value is only valid in case of ITU_R method and is set to 0 in case of the Deygout-method.
DH
An output value; a 4 byte REAL (SINGLE in VB), the terrain irregularity in m used for the calculations according the
ITU_R method. This value is only valid in case of ITU_R method and is set to 0 in case of the Deygout-method.
CDH
An output value; a 4 byte REAL (SINGLE in VB), the correction factor according to the terrain irregularity in dB used
for the calculations according the ITU_R method. This value is only valid in case of ITU_R method and is set to 0 in
case of the Deygout-method.
PR
An output value; a 4 byte REAL (SINGLE in VB), the power in the direction of the receiver in dBW.
E0
An output value; a 4 byte REAL (SINGLE in VB), the free space field strength in dBV/m.
EL
An output value; a 4 byte REAL (SINGLE in VB), the land field strength in dBV/m. This value is only valid in case
of ITU_R method and is set to 0 in case of the Deygout-method.
ES
An output value; a 4 byte REAL (SINGLE in VB), the sea field strength in dBV/m. This value is only valid in case of
ITU_R method and is set to 0 in case of the Deygout-method.
C1
An output value; a 4 byte REAL (SINGLE in VB), the correction factor in dB according to the transmitter antenna type.
C2
An output value; a 4 byte REAL (SINGLE in VB), the correction factor in dB according to the transmitter antenna type
(E or I).
DIRRX
An output value; a 4 byte REAL (SINGLE in VB), the horizontal direction from the transmitter to the receiver in
degrees.
ANGLEV
An output value; a 4 byte REAL (SINGLE in VB), the vertical direction from the transmitter to the receiver in degrees.
DAV
An output value; a 4 byte REAL (SINGLE in VB), the difference in the vertical angles (from the transmitter to the
receiver - elevation angle of the transmitter antenna) in degrees.
DAH
An output value; a 4 byte REAL (SINGLE in VB), the difference in the horizontal angles (from the transmitter to the
receiver - azimuth angle of the transmitter antenna) in degrees.
AV
An output value; a 4 byte REAL (SINGLE in VB), the vertical direction from the receiver to the transmitter in degrees.
DAZI
An output value; a 4 byte REAL (SINGLE in VB), the difference in the horizontal angles (from the receiver to the
transmitter - azimuth angle of the receiver antenna) in degrees.
DELE
An output value; a 4 byte REAL (SINGLE in VB), the difference in the vertical angles (from the receiver to the
transmitter - elevation angle of the receiver antenna) in degrees.
TX_CLA
An output value; a 4 byte REAL (SINGLE in VB), the transmitter clearance angle in degrees.
RX_CLA
An output value; a 4 byte REAL (SINGLE in VB), the receiver clearance angle in degrees.
TX_CAC
An output value; a 4 byte REAL (SINGLE in VB), the correction factor according to the transmitter clearance angle in
dB.
RX_CAC
An output value; a 4 byte REAL (SINGLE in VB), the correction factor according to the receiver clearance angle in dB.
DSEA_C
An output value; a 4 byte REAL (SINGLE in VB), the distance over sea in km taken into account during the
calculations (either input value or calculated value).
C1R
An output value; a 4 byte REAL (SINGLE in VB), the correction factor in dB according to the receiver antenna type.
C2R
An output value; a 4 byte REAL (SINGLE in VB), the correction factor in dB according to the receiver antenna type
(E or I).
DF
An output value; a 4 byte REAL (SINGLE in VB), the frequency difference between transmitter - and receiver
frequency in kHz.
CDF
An output value; a 4 byte REAL (SINGLE in VB), the correction factor according to the frequency difference between
transmitter - and receiver frequency in dB.
CSR
An output value; a 4 byte REAL (SINGLE in VB), the channel spacing of the receiver in kHz.
CSI
An output value; a 4 byte REAL (SINGLE in VB), the channel spacing of the transmitter in kHz.
EC
An output value; a 4 byte REAL (SINGLE in VB), the calculated field strength in dBV/m. This value is only valid in
case of a point to point calculation (positive CMODE).
EP
An output value; a 4 byte REAL (SINGLE in VB), the permissible field strength in dBV/m (input value or calculated
value).
EP0
An output value; a 4 byte REAL (SINGLE in VB), the permissible field strength in dBV/m from the Vienna
Agreement.
MAXRA
An output value; a 4 byte REAL (SINGLE in VB), the maximum crossborder range in km (input value or from Vienna
Agreement).
ERPRT
An output value; a 4 byte REAL (SINGLE in VB), the power of the reference transmitter in dBW.
PROTM
An output value; a 4 byte REAL (SINGLE in VB), the protection margin in dB (difference of calculated field strength
and permissible field strength).
MAXFS
An output value; a 4 byte REAL (SINGLE in VB), the calculated field strength in dBV/m. This value is only valid in
case of a point to line calculation (negative CMODE).
DISBOR
An output value; the distance between transmitter and the point on a co-ordination line with the highest field strength, a
8 byte DOUBLE PRECISION (DOUBLE in VB); this value is only valid in case of a point to line calculation (negative
CMODE).
DIRBOR
An output value; the direction to the point on a co-ordination line with the highest field strength, a 8 byte DOUBLE
PRECISION (DOUBLE in VB); this value is only valid in case of a point to line calculation (negative CMODE).
INTSTR
An input / output value (a part of this string is only input, an other part is only output). A CHARACTER (STRING in
VB) variable with at least 459 characters. The content of this string is:
Note:
If more than 459 characters are passed, the remaining part (> 459) must be a valid directory name.
If a valid directory is given, the HCM_MS_DLL will write two text-files into this directory:
INPUT.TXT and OUTPUT.TXT every time it is called..
INPUT.TXT contains all input values passed to the DLL and OUTPUT.TXT stores all output values coming from the
DLL.
Additional files
To run the DLL on your system, you need some additional run-time files.
The self-installing executable kit VFRUN65AI.EXE installs the run-time components needed to run
Visual Fortran applications on systems which do not have Visual Fortran installed. The components
installed by this kit are:
DFORRT.DLL - Visual Fortran non-threaded run-time support
Negative values and values from 1 to 999 are reserved for the subroutine to access the terrain data
(Error 36 = no data available).
1000 = Distance is greater than 1000 km, calculations not possible
1002 = Error in input value transmitter or receiver height
1003 = Error in input data of depolarization loss.
1004 = Error in input data of correction factor according frequency difference.
1005 = Error in antenna height
1006 = Error in elevation (Tx)
1007 = Error in antenna type
1008 = Error in azimuth (Tx)
1009 = error in type of antenna (Tx) (E or I)
1010 = Error in power
1011 = Error in radius of service area
1013 = Channel spacing outside definition range (Rx)!
1014 = Channel spacing outside definition range (Tx)!
1015 = Error in azimuth (Rx)
1016 = Error in elevation (Rx)
1017 = Error in type of antenna ("E" or "I") (Rx)
1018 = Error in gain of antenna
1019 = Error in input data of permissible field strength
1021 = Error in geographical co-ordinates
1022 = Error in transmitting frequency
1023 = Error in reception frequency
1024 = Mode of calculation is not available
1025 = Error in input value of border line distance.
1026 = Selected (border-) line data not available.
1027 = Error in (border-) line data.
1028 = Error in (border-) line co-ordinates.
1029 = Error in input value of distance over sea.
1030 = Error in co-ordinates (Tx = Rx, -> distance = 0.0 km).
1031 = Error in input value Maximum crossborderrange of harmful interference.
1032 = Error in service area Rx
1033 = The xxx.ALL bordeline file for the Tx is missing.
1034 = The xxx.ALL bordeline file for the Rx is missing.
3000 = The string variable passed to the DLL is to short (less than 459 characters)