UFO
ufo_groundgnss_ropp_mod_stub.F90
Go to the documentation of this file.
1 ! (C) Copyright 2017-2018 UCAR
2 !
3 ! This software is licensed under the terms of the Apache Licence Version 2.0
4 ! which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
5 
6 !>Stubbed Fortran module for ground based gnss ropp1d forward operator
7 !> following the ROPP (2018 Aug) implementation
8 
10 
11 use iso_c_binding
12 use kinds
13 use ufo_vars_mod
16 use ufo_basis_mod, only: ufo_basis
17 use obsspace_mod
18 use missing_values_mod
19 use fckit_log_module, only : fckit_log
20 
21 implicit none
22 public :: ufo_groundgnss_ropp
23 private
24 
25  !> Fortran derived type for ground based gnss trajectory
26 type, extends(ufo_basis) :: ufo_groundgnss_ropp
27  contains
28  procedure :: simobs => ufo_groundgnss_ropp_simobs
29 end type ufo_groundgnss_ropp
30 
31 contains
32 
33 ! ------------------------------------------------------------------------------
34 ! ------------------------------------------------------------------------------
35 subroutine ufo_groundgnss_ropp_simobs(self, geovals, hofx, obss)
36 
37  implicit none
38  class(ufo_groundgnss_ropp), intent(in) :: self
39  type(ufo_geovals), intent(in) :: geovals
40  real(kind_real), intent(inout) :: hofx(:)
41  type(c_ptr), value, intent(in) :: obss
42  real(c_double) :: missingdouble
43 
44  character(len=*), parameter :: myname_="ufo_groundgnss_ropp_simobs"
45  integer, parameter :: max_string = 800
46 
47  character(max_string) :: err_msg
48 
49  write(err_msg,*) "TRACE: ufo_groundgnss_ropp_simobs_stub: begin"
50  call fckit_log%info(err_msg)
51  write(err_msg,*) "WARNING: GroundgnssROPP operator cannot run when ROPP code is not available"
52  call fckit_log%info(err_msg)
53 
54 ! check if nobs is consistent in geovals & hofx
55  if (geovals%nlocs /= size(hofx)) then
56  write(err_msg,*) myname_, ' error: nlocs inconsistent!'
57  call abor1_ftn(err_msg)
58  endif
59 
60  missingdouble = missing_value(missingdouble)
61 
62 ! initialize HofX to missing
63  hofx(:) = missingdouble
64 
65  write(err_msg,*) "TRACE: ufo_groundgnss_ropp_simobs_stub: completed"
66  call fckit_log%info(err_msg)
67 
68 end subroutine ufo_groundgnss_ropp_simobs
69 ! ------------------------------------------------------------------------------
70 
71 end module ufo_groundgnss_ropp_mod
type(registry_t), public ufo_geovals_registry
Linked list interface - defines registry_t type.
integer, parameter max_string
Fortran module for ground-based gnss refractivity ropp forward operator following the ROPP (2018 Aug)...
subroutine ufo_groundgnss_ropp_simobs(self, geovals, hofx, obss)
type to hold interpolated fields required by the obs operators
Fortran derived type for ground based gnss trajectory.