FV3 Bundle
qg_obsoper_mod.F90
Go to the documentation of this file.
1 ! (C) Copyright 2009-2016 ECMWF.
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 ! In applying this licence, ECMWF does not waive the privileges and immunities
6 ! granted to it by virtue of its status as an intergovernmental organisation nor
7 ! does it submit to any jurisdiction.
8 
9 !> Fortran module for streamfunction observations for the QG model
11 
12 use iso_c_binding
13 use config_mod
14 use qg_vars_mod
15 use kinds
16 
17 implicit none
18 private
19 public :: qg_obsoper, qg_oper_setup
20 public :: qg_obsoper_registry
21 
22 ! ------------------------------------------------------------------------------
23 
24 !> Fortran derived type for stream function observations for the QG model
25 type :: qg_obsoper
26  character(len=30) :: request
27  integer :: ncol
28 end type qg_obsoper
29 
30 #define LISTED_TYPE qg_obsoper
31 
32 !> Linked list interface - defines registry_t type
33 #include "oops/util/linkedList_i.f"
34 
35 !> Global registry
36 type(registry_t) :: qg_obsoper_registry
37 
38 ! ------------------------------------------------------------------------------
39 contains
40 ! ------------------------------------------------------------------------------
41 !> Linked list implementation
42 #include "oops/util/linkedList_c.f"
43 
44 ! ------------------------------------------------------------------------------
45 
46 subroutine qg_oper_setup(self, c_conf, svars, ncol)
47 implicit none
48 type(qg_obsoper), intent(inout) :: self
49 type(c_ptr), intent(in) :: c_conf
50 character(len=*), intent(in) :: svars(:)
51 integer :: ncol
52 
53 self%request = config_get_string(c_conf, len(self%request), "ObsType")
54 self%ncol = ncol
55 
56 end subroutine qg_oper_setup
57 
58 ! ------------------------------------------------------------------------------
59 
60 end module qg_obsoper_mod
type(registry_t), public qg_obsoper_registry
Linked list interface - defines registry_t type.
Fortran module to handle variables for the QG model.
Definition: qg_vars_mod.F90:11
subroutine, public qg_oper_setup(self, c_conf, svars, ncol)
Linked list implementation.
Fortran derived type for stream function observations for the QG model.
Fortran module for streamfunction observations for the QG model.