Go to the documentation of this file.
11 use atlas_module,
only: atlas_field
12 use fckit_configuration_module,
only: fckit_configuration
26 subroutine qg_gom_setup_c(c_key_self,c_locs,c_vars) bind(c,name='qg_gom_setup_f90')
31 integer(c_int),
intent(inout) :: c_key_self
32 type(c_ptr),
value,
intent(in) :: c_locs
33 type(c_ptr),
value,
intent(in) :: c_vars
36 type(
qg_gom),
pointer :: self
58 integer(c_int),
intent(inout) :: c_key_self
61 type(
qg_gom),
pointer :: self
79 integer(c_int),
intent(inout) :: c_key_self
82 type(
qg_gom),
pointer :: self
97 subroutine qg_gom_copy_c(c_key_self,c_key_other) bind(c,name='qg_gom_copy_f90')
102 integer(c_int),
intent(in) :: c_key_self
103 integer(c_int),
intent(in) :: c_key_other
106 type(
qg_gom),
pointer :: self
107 type(
qg_gom),
pointer :: other
124 integer(c_int),
intent(in) :: c_key_self
127 type(
qg_gom),
pointer :: self
143 integer(c_int),
intent(in) :: c_key_self
146 type(
qg_gom),
pointer :: self
162 integer(c_int),
intent(in) :: c_key_self
165 type(
qg_gom),
pointer :: self
181 integer(c_int),
intent(in) :: c_key_self
182 real(c_double),
intent(in) :: zz
185 type(
qg_gom),
pointer :: self
194 self%values(jv,jo) = zz * self%values(jv,jo)
201 subroutine qg_gom_add_c(c_key_self,c_key_other) bind(c,name='qg_gom_add_f90')
206 integer(c_int),
intent(in) :: c_key_self
207 integer(c_int),
intent(in) :: c_key_other
210 type(
qg_gom),
pointer :: self
211 type(
qg_gom),
pointer :: other
223 subroutine qg_gom_diff_c(c_key_self,c_key_other) bind(c,name='qg_gom_diff_f90')
228 integer(c_int),
intent(in) :: c_key_self
229 integer(c_int),
intent(in) :: c_key_other
232 type(
qg_gom),
pointer :: self
233 type(
qg_gom),
pointer :: other
250 integer(c_int),
intent(in) :: c_key_self
251 integer(c_int),
intent(in) :: c_key_other
254 type(
qg_gom),
pointer :: self
255 type(
qg_gom),
pointer :: other
272 integer(c_int),
intent(in) :: c_key_self
273 integer(c_int),
intent(in) :: c_key_other
276 type(
qg_gom),
pointer :: self
277 type(
qg_gom),
pointer :: other
294 integer(c_int),
intent(in) :: c_key_self
295 real(c_double),
intent(inout) :: rms
298 type(
qg_gom),
pointer :: self
314 integer(c_int),
intent(in) :: c_key_gom1
315 integer(c_int),
intent(in) :: c_key_gom2
316 real(c_double),
intent(inout) :: prod
319 type(
qg_gom),
pointer :: gom1,gom2
331 subroutine qg_gom_stats_c(c_key_self,kobs,scaling,pmin,pmax,prms) bind(c,name='qg_gom_stats_f90')
336 integer(c_int),
intent(in) :: c_key_self
337 integer(c_int),
intent(inout) :: kobs
338 real(c_double),
intent(inout) :: scaling
339 real(c_double),
intent(inout) :: pmin
340 real(c_double),
intent(inout) :: pmax
341 real(c_double),
intent(inout) :: prms
344 type(
qg_gom),
pointer :: self
355 subroutine qg_gom_maxloc_c(c_key_self,mxval,iloc,ivar) bind(c,name='qg_gom_maxloc_f90')
360 integer(c_int),
intent(in) :: c_key_self
361 real(c_double),
intent(inout) :: mxval
362 integer(c_int),
intent(inout) :: iloc
363 integer(c_int),
intent(inout) :: ivar
366 type(
qg_gom),
pointer :: self
382 integer(c_int),
intent(in) :: c_key_self
383 type(c_ptr),
value,
intent(in) :: c_conf
386 type(fckit_configuration) :: f_conf
387 type(
qg_gom),
pointer :: self
390 f_conf = fckit_configuration(c_conf)
404 integer(c_int),
intent(in) :: c_key_self
405 type(c_ptr),
value,
intent(in) :: c_conf
408 type(fckit_configuration) :: f_conf
409 type(
qg_gom),
pointer :: self
412 f_conf = fckit_configuration(c_conf)
426 integer(c_int),
intent(in) :: c_key_self
427 type(c_ptr),
value,
intent(in) :: c_locs
428 type(c_ptr),
value,
intent(in) :: c_conf
431 type(fckit_configuration) :: f_conf
432 type(
qg_gom),
pointer :: self
436 f_conf = fckit_configuration(c_conf)
subroutine qg_gom_delete_c(c_key_self)
Delete GOM.
subroutine qg_gom_rms_c(c_key_self, rms)
Compute GOM RMS.
subroutine, public qg_gom_zero(self)
Set GOM to zero.
subroutine qg_gom_random_c(c_key_self)
Generate random GOM.
subroutine qg_gom_add_c(c_key_self, c_key_other)
Add GOM.
subroutine, public qg_gom_copy(self, other)
Copy GOM.
subroutine, public qg_gom_setup(self, nobs, vars)
Linked list implementation.
subroutine qg_gom_analytic_init_c(c_key_self, c_locs, c_conf)
GOM analytic initialization.
Fortran interface to Variables.
subroutine, public qg_gom_dotprod(gom1, gom2, prod)
GOM dot product.
subroutine, public qg_gom_stats(self, kobs, scaling, pmin, pmax, prms)
Compute GOM stats.
type(registry_t), public qg_gom_registry
Linked list interface - defines registry_t type.
subroutine qg_gom_maxloc_c(c_key_self, mxval, iloc, ivar)
Find and locate GOM max. value.
subroutine qg_gom_zero_c(c_key_self)
Set GOM to zero.
subroutine, public qg_gom_delete(self)
Delete GOM.
subroutine, public qg_gom_create(self)
Create GOM.
subroutine qg_gom_schurmult_c(c_key_self, c_key_other)
Schur product for GOM.
subroutine, public qg_gom_diff(self, other)
Subtract GOM.
subroutine, public qg_gom_read_file(self, f_conf)
Read GOM from file.
subroutine qg_gom_create_c(c_key_self)
Create GOM.
subroutine, public qg_gom_abs(self)
Get GOM absolute value.
subroutine, public qg_gom_rms(self, rms)
Compute GOM RMS.
subroutine qg_gom_stats_c(c_key_self, kobs, scaling, pmin, pmax, prms)
Compute GOM statistics.
subroutine qg_gom_read_file_c(c_key_self, c_conf)
Read GOM from file.
subroutine qg_gom_copy_c(c_key_self, c_key_other)
Copy GOM.
subroutine, public qg_gom_maxloc(self, mxval, iloc, ivar)
Find and locate GOM max. value.
subroutine qg_gom_write_file_c(c_key_self, c_conf)
Write GOM to file.
subroutine qg_gom_divide_c(c_key_self, c_key_other)
Schur division for GOM.
subroutine, public qg_gom_write_file(self, f_conf)
Write GOM to file.
subroutine, public qg_gom_random(self)
Generate random GOM values.
subroutine qg_gom_diff_c(c_key_self, c_key_other)
Subtract GOM.
subroutine, public qg_gom_add(self, other)
Add GOM.
subroutine qg_gom_mult_c(c_key_self, zz)
Multiply GOM with a scalar.
subroutine, public qg_gom_schurmult(self, other)
Schur product for GOM.
subroutine qg_gom_dotprod_c(c_key_gom1, c_key_gom2, prod)
GOM dot product.
subroutine, public qg_gom_analytic_init(self, locs, f_conf)
GOM analytic initialization.
subroutine qg_gom_abs_c(c_key_self)
Get GOM absolute value.
subroutine, public qg_gom_divide(self, other)
Schur division for GOM.
subroutine qg_gom_setup_c(c_key_self, c_locs, c_vars)
Setup GOM.