10 use fckit_configuration_module,
only: fckit_configuration
12 use oops_variables_mod
26 #define LISTED_TYPE mpasjedi_linvarcha_c2a
29 #include "oops/util/linkedList_i.f"
41 #include "oops/util/linkedList_c.f"
46 c_key_self, c_key_geom, c_key_bg, c_key_fg, c_conf, c_vars) &
47 bind(c,name=
'mpasjedi_linvarcha_c2a_create_f90')
50 integer(c_int),
intent(inout) :: c_key_self
51 integer(c_int),
intent(in) :: c_key_geom
52 integer(c_int),
intent(in) :: c_key_bg
53 integer(c_int),
intent(in) :: c_key_fg
54 type(c_ptr),
value,
intent(in) :: c_conf
55 type(c_ptr),
value,
intent(in) :: c_vars
61 type(fckit_configuration) :: f_conf
62 type(oops_variables) :: vars
72 f_conf = fckit_configuration(c_conf)
73 vars = oops_variables(c_vars)
75 call self%create(geom, bg, fg, f_conf, vars)
82 bind(c,name=
'mpasjedi_linvarcha_c2a_delete_f90')
85 integer(c_int),
intent(inout) :: c_key_self
98 c_key_self, c_key_geom, c_key_in, c_key_out) &
99 bind(c,name=
'mpasjedi_linvarcha_c2a_multiply_f90')
102 integer(c_int),
intent(in) :: c_key_self
103 integer(c_int),
intent(in) :: c_key_geom
104 integer(c_int),
intent(in) :: c_key_in
105 integer(c_int),
intent(in) :: c_key_out
117 call self%multiply(geom,xin,xout)
124 c_key_self, c_key_geom, c_key_in, &
125 c_key_out) bind (c,name='mpasjedi_linvarcha_c2a_multiplyadjoint_f90')
128 integer(c_int),
intent(in) :: c_key_self
129 integer(c_int),
intent(in) :: c_key_geom
130 integer(c_int),
intent(in) :: c_key_in
131 integer(c_int),
intent(in) :: c_key_out
143 call self%multiplyadjoint(geom,xin,xout)
152 c_key_self, c_key_geom, c_key_in, c_key_out) &
153 bind(c,name=
'mpasjedi_linvarcha_c2a_multiplyinverse_f90')
156 integer(c_int),
intent(in) :: c_key_self
157 integer(c_int),
intent(in) :: c_key_geom
158 integer(c_int),
intent(in) :: c_key_in
159 integer(c_int),
intent(in) :: c_key_out
171 call self%multiplyinverse(geom,xin,xout)
178 c_key_self, c_key_geom, c_key_in, &
179 c_key_out) bind (c,name='mpasjedi_linvarcha_c2a_multiplyinverseadjoint_f90')
182 integer(c_int),
intent(in) :: c_key_self
183 integer(c_int),
intent(in) :: c_key_geom
184 integer(c_int),
intent(in) :: c_key_in
185 integer(c_int),
intent(in) :: c_key_out
197 call self%multiplyinverseadjoint(geom,xin,xout)
type(registry_t), public mpas_fields_registry
Linked list interface - defines registry_t type.
type(registry_t), public mpas_geom_registry
Linked list interface - defines registry_t type.
subroutine c_mpasjedi_linvarcha_c2a_create(c_key_self, c_key_geom, c_key_bg, c_key_fg, c_conf, c_vars)
Linked list implementation.
subroutine c_mpasjedi_linvarcha_c2a_multiplyadjoint(c_key_self, c_key_geom, c_key_in, c_key_out)
type(registry_t), public mpasjedi_linvarcha_c2a_registry
Linked list interface - defines registry_t type.
subroutine c_mpasjedi_linvarcha_c2a_multiply(c_key_self, c_key_geom, c_key_in, c_key_out)
subroutine c_mpasjedi_linvarcha_c2a_multiplyinverse(c_key_self, c_key_geom, c_key_in, c_key_out)
subroutine c_mpasjedi_linvarcha_c2a_multiplyinverseadjoint(c_key_self, c_key_geom, c_key_in, c_key_out)
subroutine c_mpasjedi_linvarcha_c2a_delete(c_key_self)
Fortran derived type to hold MPAS field.
Fortran derived type to hold geometry definition.
Fortran derived type to hold configuration data for the B mat variable change.