33 type(
qg_gom),
intent(in) :: gom
35 real(kind_real),
intent(in) :: bias
41 if (abs(bias)>epsilon(bias))
call abor1_ftn (
'qg_wspeed_equiv: bias not implemented')
45 hofx%values(1,iobs) = sqrt(gom%values(1,iobs)*gom%values(1,iobs)+gom%values(2,iobs)*gom%values(2,iobs))
56 type(
qg_gom),
intent(in) :: gom
58 type(
qg_gom),
intent(in) :: traj
59 real(kind_real),
intent(in) :: bias
63 real(kind_real) :: zu,zv,zt
67 zu = traj%values(1,iobs)
68 zv = traj%values(2,iobs)
69 zt = sqrt(zu**2+zv**2)
70 if (zt>epsilon(zt))
then
71 hofx%values(1,iobs) = (zu*gom%values(1,iobs)+zv*gom%values(2,iobs))/zt
73 hofx%values(1,iobs) = 0.0
85 type(
qg_gom),
intent(inout) :: gom
87 type(
qg_gom),
intent(in) :: traj
88 real(kind_real),
intent(inout) :: bias
92 real(kind_real) :: zu,zv,zt
96 zu = traj%values(1,iobs)
97 zv = traj%values(2,iobs)
98 zt = sqrt(zu**2+zv**2)
99 if (zt>epsilon(zt))
then
100 gom%values(1,iobs) = zu*hofx%values(1,iobs)/zt
101 gom%values(2,iobs) = zv*hofx%values(1,iobs)/zt
103 gom%values(1,iobs) = 0.0
104 gom%values(2,iobs) = 0.0
116 type(
qg_gom),
intent(in) :: gom
117 type(
qg_gom),
intent(inout) :: traj
124 traj%values(1,iobs) = gom%values(1,iobs)
125 traj%values(2,iobs) = gom%values(2,iobs)