10 use atlas_module,
only: atlas_fieldset
11 use fckit_configuration_module,
only: fckit_configuration
16 use kinds,
only: kind_real
17 use oops_variables_mod
34 bind(c,name=
'mpas_increment_create_f90')
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, vars)
57 bind(c,name=
'mpas_increment_delete_f90')
59 integer(c_int),
intent(inout) :: c_key_self
73 bind(c,name=
'mpas_increment_zero_f90')
75 integer(c_int),
intent(in) :: c_key_self
86 bind(c,name=
'mpas_increment_ones_f90')
88 integer(c_int),
intent(in) :: c_key_self
99 bind(c,name=
'mpas_increment_dirac_f90')
101 integer(c_int),
intent(in) :: c_key_self
102 type(c_ptr),
value,
intent(in) :: c_conf
105 type(fckit_configuration) :: f_conf
108 f_conf = fckit_configuration(c_conf)
109 call dirac(self,f_conf)
116 bind(c,name=
'mpas_increment_random_f90')
118 integer(c_int),
intent(in) :: c_key_self
129 bind(c,name=
'mpas_increment_copy_f90')
131 integer(c_int),
intent(in) :: c_key_self
132 integer(c_int),
intent(in) :: c_key_rhs
146 bind(c,name=
'mpas_increment_self_add_f90')
148 integer(c_int),
intent(in) :: c_key_self
149 integer(c_int),
intent(in) :: c_key_rhs
156 call self%self_add(rhs)
163 bind(c,name=
'mpas_increment_self_schur_f90')
165 integer(c_int),
intent(in) :: c_key_self
166 integer(c_int),
intent(in) :: c_key_rhs
173 call self%self_schur(rhs)
180 bind(c,name=
'mpas_increment_self_sub_f90')
182 integer(c_int),
intent(in) :: c_key_self
183 integer(c_int),
intent(in) :: c_key_rhs
190 call self%self_sub(rhs)
197 bind(c,name=
'mpas_increment_self_mul_f90')
199 integer(c_int),
intent(in) :: c_key_self
200 real(c_double),
intent(in) :: c_zz
202 real(kind=kind_real) :: zz
207 call self%self_mult(zz)
214 bind(c,name=
'mpas_increment_axpy_inc_f90')
216 integer(c_int),
intent(in) :: c_key_self
217 real(c_double),
intent(in) :: c_zz
218 integer(c_int),
intent(in) :: c_key_rhs
222 real(kind=kind_real) :: zz
228 call self%axpy(zz,rhs)
235 bind(c,name=
'mpas_increment_axpy_state_f90')
237 integer(c_int),
intent(in) :: c_key_self
238 real(c_double),
intent(in) :: c_zz
239 integer(c_int),
intent(in) :: c_key_rhs
243 real(kind=kind_real) :: zz
249 call self%axpy(zz,rhs)
256 bind(c,name=
'mpas_increment_dot_prod_f90')
258 integer(c_int),
intent(in) :: c_key_inc1, c_key_inc2
259 real(c_double),
intent(inout) :: c_prod
260 real(kind=kind_real) :: zz
266 call inc1%dot_prod(inc2,zz)
275 bind(c,name=
'mpas_increment_diff_incr_f90')
277 integer(c_int),
intent(in) :: c_key_lhs
278 integer(c_int),
intent(in) :: c_key_x1
279 integer(c_int),
intent(in) :: c_key_x2
295 bind(c,name=
'mpas_increment_change_resol_f90')
297 integer(c_int),
intent(in) :: c_key_inc
298 integer(c_int),
intent(in) :: c_key_rhs
304 call inc%change_resol(rhs)
311 bind(c,name=
'mpas_increment_set_atlas_f90')
313 integer(c_int),
intent(in) :: c_key_self
314 integer(c_int),
intent(in) :: c_key_geom
315 type(c_ptr),
value,
intent(in) :: c_vars
316 type(c_ptr),
intent(in),
value :: c_afieldset
319 type(oops_variables) :: vars
320 type(atlas_fieldset) :: afieldset
324 vars = oops_variables(c_vars)
325 afieldset = atlas_fieldset(c_afieldset)
327 call set_atlas(self, geom, vars, afieldset)
334 bind(c,name=
'mpas_increment_to_atlas_f90')
336 integer(c_int),
intent(in) :: c_key_self
337 integer(c_int),
intent(in) :: c_key_geom
338 type(c_ptr),
value,
intent(in) :: c_vars
339 type(c_ptr),
intent(in),
value :: c_afieldset
342 type(oops_variables) :: vars
343 type(atlas_fieldset) :: afieldset
347 vars = oops_variables(c_vars)
348 afieldset = atlas_fieldset(c_afieldset)
350 call to_atlas(self, geom, vars, afieldset)
357 bind(c,name=
'mpas_increment_from_atlas_f90')
359 integer(c_int),
intent(in) :: c_key_self
360 integer(c_int),
intent(in) :: c_key_geom
361 type(c_ptr),
value,
intent(in) :: c_vars
362 type(c_ptr),
intent(in),
value :: c_afieldset
365 type(oops_variables) :: vars
366 type(atlas_fieldset) :: afieldset
370 vars = oops_variables(c_vars)
371 afieldset = atlas_fieldset(c_afieldset)
380 bind(c,name=
'mpas_increment_read_file_f90')
382 integer(c_int),
intent(in) :: c_key_inc
383 type(c_ptr),
value,
intent(in) :: c_conf
384 type(c_ptr),
value,
intent(in) :: c_dt
387 type(datetime) :: fdate
388 type(fckit_configuration) :: f_conf
391 call c_f_datetime(c_dt, fdate)
392 f_conf = fckit_configuration(c_conf)
393 call self%read_file(f_conf, fdate)
400 bind(c,name=
'mpas_increment_write_file_f90')
402 integer(c_int),
intent(in) :: c_key_inc
403 type(c_ptr),
value,
intent(in) :: c_conf
404 type(c_ptr),
value,
intent(in) :: c_dt
407 type(datetime) :: fdate
408 type(fckit_configuration) :: f_conf
411 call c_f_datetime(c_dt, fdate)
412 f_conf = fckit_configuration(c_conf)
413 call self%write_file(f_conf, fdate)
420 bind(c,name=
'mpas_increment_gpnorm_f90')
422 integer(c_int),
intent(in) :: c_key_inc
423 integer(c_int),
intent(in) :: kf
424 real(c_double),
intent(inout) :: pstat(3*kf)
427 real(kind=kind_real) :: zstat(3, kf)
428 integer :: jj, js, jf
432 call self%gpnorm(kf, zstat)
437 pstat(jj) = zstat(js,jf)
446 bind(c,name=
'mpas_increment_rms_f90')
448 integer(c_int),
intent(in) :: c_key_inc
449 real(c_double),
intent(inout) :: prms
452 real(kind=kind_real) :: zz
465 bind(c,name=
'mpas_increment_print_f90')
467 integer(c_int),
intent(in) :: c_key_self
479 bind(c,name=
'mpas_increment_sizes_f90')
481 integer(c_int),
intent(in) :: c_key_self
482 integer(c_int),
intent(inout) :: nc,nf
488 nc = self%geom%nCellsGlobal
495 bind(c,name=
'mpas_increment_serial_size_f90')
500 integer(c_int),
intent(in) :: c_key_self
501 integer(c_size_t),
intent(out) :: c_vsize
506 call self%serial_size(c_vsize)
513 bind(c,name=
'mpas_increment_serialize_f90')
518 integer(c_int),
intent(in) :: c_key_self
519 integer(c_size_t),
intent(in) :: c_vsize
520 real(c_double),
intent(out) :: c_vect_inc(c_vsize)
526 call self%serialize(c_vsize, c_vect_inc)
533 bind(c,name=
'mpas_increment_deserialize_f90')
538 integer(c_int),
intent(in) :: c_key_self
539 integer(c_size_t),
intent(in) :: c_vsize
540 real(c_double),
intent(in) :: c_vect_inc(c_vsize)
541 integer(c_size_t),
intent(inout):: c_index
548 call self%deserialize(c_vsize, c_vect_inc, c_index)
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 mpas_increment_axpy_state_c(c_key_self, c_zz, c_key_rhs)
subroutine mpas_increment_rms_c(c_key_inc, prms)
subroutine mpas_increment_gpnorm_c(c_key_inc, kf, pstat)
subroutine mpas_increment_serialize_c(c_key_self, c_vsize, c_vect_inc)
subroutine mpas_increment_set_atlas_c(c_key_self, c_key_geom, c_vars, c_afieldset)
subroutine mpas_increment_random_c(c_key_self)
subroutine mpas_increment_sizes_c(c_key_self, nc, nf)
subroutine mpas_increment_write_file_c(c_key_inc, c_conf, c_dt)
subroutine mpas_increment_self_sub_c(c_key_self, c_key_rhs)
subroutine mpas_increment_create_c(c_key_self, c_key_geom, c_vars)
subroutine mpas_increment_copy_c(c_key_self, c_key_rhs)
subroutine mpas_increment_diff_incr_c(c_key_lhs, c_key_x1, c_key_x2)
subroutine mpas_increment_from_atlas_c(c_key_self, c_key_geom, c_vars, c_afieldset)
subroutine mpas_increment_deserialize_c(c_key_self, c_vsize, c_vect_inc, c_index)
subroutine mpas_increment_to_atlas_c(c_key_self, c_key_geom, c_vars, c_afieldset)
subroutine mpas_increment_dot_prod_c(c_key_inc1, c_key_inc2, c_prod)
subroutine mpas_increment_dirac_c(c_key_self, c_conf)
subroutine mpas_increment_change_resol_c(c_key_inc, c_key_rhs)
subroutine mpas_increment_ones_c(c_key_self)
subroutine mpas_increment_axpy_inc_c(c_key_self, c_zz, c_key_rhs)
subroutine mpas_increment_delete_c(c_key_self)
subroutine mpas_increment_self_schur_c(c_key_self, c_key_rhs)
subroutine mpas_increment_self_add_c(c_key_self, c_key_rhs)
subroutine mpas_increment_read_file_c(c_key_inc, c_conf, c_dt)
subroutine mpas_increment_self_mul_c(c_key_self, c_zz)
subroutine mpas_increment_serial_size_c(c_key_self, c_vsize)
subroutine mpas_increment_print_c(c_key_self)
subroutine mpas_increment_zero_c(c_key_self)
subroutine, public set_atlas(self, geom, vars, afieldset)
subroutine, public to_atlas(self, geom, vars, afieldset)
subroutine, public diff_incr(lhs, x1, x2)
subroutine, public dirac(self, f_conf)
subroutine, public from_atlas(self, geom, vars, afieldset)
Fortran derived type to hold MPAS field.
Fortran derived type to hold geometry definition.