9 use atlas_module,
only: atlas_fieldset
10 use datetime_mod,
only: datetime, c_f_datetime
11 use fckit_configuration_module,
only: fckit_configuration
13 use kinds,
only: kind_real
14 use oops_variables_mod,
only : oops_variables
36 integer(c_int),
intent(inout) :: c_key_self
37 integer(c_int),
intent(in) :: c_key_geom
38 type(c_ptr),
value,
intent(in) :: c_vars
42 type(oops_variables) :: vars
49 vars = oops_variables(c_vars)
50 call self%create(geom, vars)
59 integer(c_int),
intent(inout) :: c_key_self
74 integer(c_int),
intent(in) :: c_key_self
88 integer(c_int),
intent(in) :: c_key_self
101 integer(c_int),
intent(in) :: c_key_self
102 type(c_ptr),
intent(in) :: c_conf
107 call self%dirac(fckit_configuration(c_conf))
115 integer(c_int),
intent(in) :: c_key_self
129 integer(c_int),
intent(in) :: c_key_self
130 integer(c_int),
intent(in) :: c_key_rhs
147 integer(c_int),
intent(in) :: c_key_self
148 integer(c_int),
intent(in) :: c_key_rhs
164 integer(c_int),
intent(in) :: c_key_self
165 integer(c_int),
intent(in) :: c_key_rhs
182 integer(c_int),
intent(in) :: c_key_self
183 integer(c_int),
intent(in) :: c_key_rhs
200 integer(c_int),
intent(in) :: c_key_self
201 real(c_double),
intent(in) :: c_zz
204 real(kind=kind_real) :: zz
218 integer(c_int),
intent(in) :: c_key_self
219 real(c_double),
intent(in) :: c_zz
220 integer(c_int),
intent(in) :: c_key_rhs
223 real(kind=kind_real) :: zz
230 call self%axpy(zz,rhs)
239 integer(c_int),
intent(in) :: c_key_self
240 real(c_double),
intent(in) :: c_zz
241 integer(c_int),
intent(in) :: c_key_rhs
244 real(kind=kind_real) :: zz
251 call self%axpy(zz,rhs)
260 integer(c_int),
intent(in) :: c_key_fld1, c_key_fld2
261 real(c_double),
intent(inout) :: c_prod
264 real(kind=kind_real) :: zz
269 call fld1%dot_prod(fld2,zz)
280 integer(c_int),
intent(in) :: c_key_lhs
281 integer(c_int),
intent(in) :: c_key_x1
282 integer(c_int),
intent(in) :: c_key_x2
291 call x1%diff_incr(x2, lhs)
299 integer(c_int),
intent(in) :: c_key_fld
300 integer(c_int),
intent(in) :: c_key_rhs
308 if (
size(fld%geom%lon,1)==
size(rhs%geom%lon,1) .and. &
309 size(fld%geom%lat,2)==
size(rhs%geom%lat,2) .and. &
310 fld%geom%nzo==rhs%geom%nzo )
then
313 call fld%convert(rhs)
322 & bind(c,name=
'soca_increment_set_atlas_f90')
325 integer(c_int),
intent(in) :: c_key_self
326 integer(c_int),
intent(in) :: c_key_geom
327 type(c_ptr),
value,
intent(in) :: c_vars
328 type(c_ptr),
intent(in),
value :: c_afieldset
332 type(oops_variables) :: vars
333 type(atlas_fieldset) :: afieldset
337 vars = oops_variables(c_vars)
338 afieldset = atlas_fieldset(c_afieldset)
340 call self%set_atlas(geom, vars, afieldset)
348 & bind(c,name=
'soca_increment_to_atlas_f90')
351 integer(c_int),
intent(in) :: c_key_self
352 integer(c_int),
intent(in) :: c_key_geom
353 type(c_ptr),
value,
intent(in) :: c_vars
354 type(c_ptr),
intent(in),
value :: c_afieldset
358 type(oops_variables) :: vars
359 type(atlas_fieldset) :: afieldset
363 vars = oops_variables(c_vars)
364 afieldset = atlas_fieldset(c_afieldset)
366 call self%to_atlas(geom, vars, afieldset)
374 & bind(c,name=
'soca_increment_from_atlas_f90')
377 integer(c_int),
intent(in) :: c_key_self
378 integer(c_int),
intent(in) :: c_key_geom
379 type(c_ptr),
value,
intent(in) :: c_vars
380 type(c_ptr),
intent(in),
value :: c_afieldset
384 type(oops_variables) :: vars
385 type(atlas_fieldset) :: afieldset
389 vars = oops_variables(c_vars)
390 afieldset = atlas_fieldset(c_afieldset)
392 call self%from_atlas(geom, vars, afieldset)
401 integer(c_int),
intent(in) :: c_key_fld
402 type(c_ptr),
intent(in) :: c_conf
403 type(c_ptr),
intent(inout) :: c_dt
406 type(datetime) :: fdate
409 call c_f_datetime(c_dt, fdate)
410 call fld%read(fckit_configuration(c_conf), fdate)
419 integer(c_int),
intent(in) :: c_key_fld
420 type(c_ptr),
intent(in) :: c_conf
421 type(c_ptr),
intent(in) :: c_dt
424 type(datetime) :: fdate
427 call c_f_datetime(c_dt, fdate)
428 call fld%write_rst(fckit_configuration(c_conf), fdate)
437 integer(c_int),
intent(in) :: c_key_fld
438 integer(c_int),
intent(in) :: kf
439 real(c_double),
intent(inout) :: pstat(3*kf)
442 real(kind=kind_real) :: zstat(3, kf)
443 integer :: jj, js, jf
447 call fld%gpnorm(kf, zstat)
452 pstat(jj) = zstat(js,jf)
462 integer(c_int),
intent(in) :: c_key_fld
463 real(c_double),
intent(inout) :: prms
466 real(kind=kind_real) :: zz
470 call fld%dot_prod(fld, zz)
479 integer(c_int),
intent(in) :: c_key_fld
480 integer(c_int),
intent(in) :: c_key_iter
481 integer(c_int),
intent(in) :: values_len
482 real(c_double),
intent(inout) :: values(values_len)
490 call fld%getpoint(iter, values)
498 integer(c_int),
intent(inout) :: c_key_fld
499 integer(c_int),
intent(in) :: c_key_iter
500 integer(c_int),
intent(in) :: values_len
501 real(c_double),
intent(in) :: values(values_len)
509 call fld%setpoint(iter, values)
517 integer(c_int),
intent(in) :: c_key_fld
518 integer(kind=c_int),
intent(inout) :: nx, ny, nzo, nf
524 nx =
size(fld%geom%lon,1)
525 ny =
size(fld%geom%lon,2)
527 nf =
size(fld%fields)
538 integer(c_int),
intent(in) :: c_key_self
539 integer(c_int),
intent(in) :: c_key_geom
540 integer(c_size_t),
intent(out) :: c_vec_size
550 call self%serial_size(geom,vec_size)
551 c_vec_size = vec_size
562 integer(c_int),
intent(in) :: c_key_self
563 integer(c_int),
intent(in) :: c_key_geom
564 integer(c_size_t),
intent(in) :: c_vec_size
565 real(c_double),
intent(out) :: c_vec(c_vec_size)
571 vec_size = c_vec_size
575 call self%serialize(geom, vec_size, c_vec)
586 integer(c_int),
intent(in) :: c_key_self
587 integer(c_int),
intent(in) :: c_key_geom
588 integer(c_size_t),
intent(in) :: c_vec_size
589 real(c_double),
intent(in) :: c_vec(c_vec_size)
590 integer(c_size_t),
intent(inout) :: c_index
592 integer :: vec_size, idx
596 vec_size = c_vec_size
601 call self%deserialize(geom, vec_size, c_vec, idx)
C++ interfaces for soca_geom_iter_mod::soca_geom_iter.
type(registry_t), public soca_geom_iter_registry
Linked list interface - defines registry_t type.
C++ interfaces for soca_geom_mod::soca_geom.
type(registry_t), public soca_geom_registry
Linked list interface - defines registry_t type.
C++ interfaces for soca_increment_mod::soca_increment.
subroutine soca_increment_from_atlas_c(c_key_self, c_key_geom, c_vars, c_afieldset)
C++ interface for soca_increment_mod::soca_increment::getpoint()
subroutine soca_increment_ones_c(c_key_self)
C++ interface for soca_increment_mod::soca_increment version of soca_fields_mod::soca_fields::ones()
subroutine soca_increment_zero_c(c_key_self)
C++ interface for soca_increment_mod::soca_increment version of soca_fields_mod::soca_fields::zeros()
subroutine soca_increment_create_c(c_key_self, c_key_geom, c_vars)
C++ interface for soca_increment_mod::soca_increment version of soca_fields_mod::soca_fields::create(...
subroutine soca_increment_self_schur_c(c_key_self, c_key_rhs)
C++ interface for soca_increment_mod::soca_increment::schur()
subroutine soca_increment_change_resol_c(c_key_fld, c_key_rhs)
C++ interface for soca_increment_mod::soca_increment::convert()
subroutine soca_increment_to_atlas_c(c_key_self, c_key_geom, c_vars, c_afieldset)
C++ interface for soca_increment_mod::soca_increment::to_atlas()
subroutine soca_increment_self_sub_c(c_key_self, c_key_rhs)
C++ interface for soca_increment_mod::soca_increment version of soca_fields_mod::soca_fields::sub()
subroutine soca_increment_self_add_c(c_key_self, c_key_rhs)
C++ interface for soca_increment_mod::soca_increment version of soca_fields_mod::soca_fields::add()
subroutine soca_increment_dirac_c(c_key_self, c_conf)
C++ interface for soca_increment_mod::soca_increment::dirac()
subroutine soca_increment_read_file_c(c_key_fld, c_conf, c_dt)
C++ interface for soca_increment_mod::soca_increment version of soca_fields_mod::soca_fields::read()
subroutine soca_incrementnum_c(c_key_fld, nx, ny, nzo, nf)
C++ interface to get soca_increment_mod::soca_increment dimension sizes.
subroutine soca_increment_diff_incr_c(c_key_lhs, c_key_x1, c_key_x2)
C++ interface for subtracting two soca_increment_mod::soca_increment using soca_state_mod::soca_state...
subroutine soca_increment_copy_c(c_key_self, c_key_rhs)
C++ interface for soca_increment_mod::soca_increment version of soca_fields_mod::soca_fields::copy()
subroutine soca_increment_write_file_c(c_key_fld, c_conf, c_dt)
C++ interface for soca_increment_mod::soca_increment version of soca_fields_mod::soca_fields::write()
subroutine soca_increment_rms_c(c_key_fld, prms)
C++ interface for soca_increment_mod::soca_increment RMS.
subroutine soca_increment_random_c(c_key_self)
C++ interface for soca_increment_mod::soca_increment::random()
subroutine soca_increment_deserialize_c(c_key_self, c_key_geom, c_vec_size, c_vec, c_index)
C++ interface for soca_increment_mod::soca_increment version of soca_fields_mod::soca_fields::deseria...
subroutine soca_increment_gpnorm_c(c_key_fld, kf, pstat)
C++ interface for soca_increment_mod::soca_increment version of soca_fields_mod::soca_fields::gpnorm(...
subroutine soca_increment_setpoint_c(c_key_fld, c_key_iter, values, values_len)
C++ interface for soca_increment_mod::soca_increment::setpoint()
subroutine soca_increment_accumul_c(c_key_self, c_zz, c_key_rhs)
C++ interface for soca_increment_mod::soca_increment version of soca_fields_mod::soca_fields::axpy()
subroutine soca_increment_dot_prod_c(c_key_fld1, c_key_fld2, c_prod)
C++ interface for soca_increment_mod::soca_increment version of soca_fields_mod::soca_fields::dot_pro...
subroutine soca_increment_getpoint_c(c_key_fld, c_key_iter, values, values_len)
C++ interface for soca_increment_mod::soca_increment::getpoint()
subroutine soca_increment_axpy_c(c_key_self, c_zz, c_key_rhs)
C++ interface for soca_increment_mod::soca_increment version of soca_fields_mod::soca_fields::axpy()
subroutine soca_increment_self_mul_c(c_key_self, c_zz)
C++ interface for soca_increment_mod::soca_increment version of soca_fields_mod::soca_fields::mul()
subroutine soca_increment_serial_size_c(c_key_self, c_key_geom, c_vec_size)
C++ interface for soca_increment_mod::soca_increment version of soca_fields_mod::soca_fields::serial_...
subroutine soca_increment_delete_c(c_key_self)
C++ interface for soca_increment_mod::soca_increment version of soca_fields_mod::soca_fields::delete(...
subroutine soca_increment_set_atlas_c(c_key_self, c_key_geom, c_vars, c_afieldset)
C++ interface for soca_increment_mod::soca_increment::set_atlas()
subroutine soca_increment_serialize_c(c_key_self, c_key_geom, c_vec_size, c_vec)
C++ interface for soca_increment_mod::soca_increment version of soca_fields_mod::soca_fields::seriali...
registry for soca_increment_mod::soca_increment instances for use in Fortran/C++ interface of soca_in...
type(registry_t), public soca_increment_registry
Linked list interface - defines registry_t type.
registry for soca_state_mod::soca_state instances for use in Fortran/C++ interfaces of soca_state_mod...
type(registry_t), public soca_state_registry
Linked list interface - defines registry_t type.