9 use datetime_mod,
only: datetime, c_f_datetime
10 use fckit_configuration_module,
only: fckit_configuration
12 use kinds,
only: kind_real
13 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
89 integer(c_int),
intent(in) :: c_key_rhs
106 integer(c_int),
intent(in) :: c_key_self
107 real(c_double),
intent(in) :: c_zz
108 integer(c_int),
intent(in) :: c_key_rhs
111 real(kind=kind_real) :: zz
118 call self%axpy(zz,rhs)
126 integer(c_int),
intent(in) :: c_key_self
127 integer(c_int),
intent(in) :: c_key_rhs
135 call self%add_incr(rhs)
144 integer(c_int),
intent(in) :: c_key_fld
145 type(c_ptr),
intent(in) :: c_conf
146 type(c_ptr),
intent(inout) :: c_dt
149 type(datetime) :: fdate
152 call c_f_datetime(c_dt, fdate)
153 call fld%read(fckit_configuration(c_conf), fdate)
162 integer(c_int),
intent(in) :: c_key_fld
163 type(c_ptr),
intent(in) :: c_conf
164 type(c_ptr),
intent(in) :: c_dt
167 type(datetime) :: fdate
170 call c_f_datetime(c_dt, fdate)
171 call fld%write_rst(fckit_configuration(c_conf), fdate)
180 integer(c_int),
intent(in) :: c_key_fld
181 integer(c_int),
intent(in) :: kf
182 real(c_double),
intent(inout) :: pstat(3*kf)
185 real(kind=kind_real) :: zstat(3, kf)
186 integer :: jj, js, jf
190 call fld%gpnorm(kf, zstat)
195 pstat(jj) = zstat(js,jf)
205 integer(c_int),
intent(in) :: c_key_fld
206 real(c_double),
intent(inout) :: prms
209 real(kind=kind_real) :: zz
213 call fld%dot_prod(fld, zz)
222 integer(c_int),
intent(in) :: c_key_self
223 type(c_ptr),
value,
intent(in) :: c_uvars
224 type(c_ptr),
value,
intent(in) :: c_vvars
227 type(oops_variables) :: uvars, vvars
229 uvars = oops_variables(c_uvars)
230 vvars = oops_variables(c_vvars)
233 call self%rotate(coordinate=
"grid", uvars=uvars, vvars=vvars)
241 integer(c_int),
intent(in) :: c_key_self
242 type(c_ptr),
value,
intent(in) :: c_uvars
243 type(c_ptr),
value,
intent(in) :: c_vvars
246 type(oops_variables) :: uvars, vvars
248 uvars = oops_variables(c_uvars)
249 vvars = oops_variables(c_vvars)
252 call self%rotate(coordinate=
"north", uvars=uvars, vvars=vvars)
260 integer(c_int),
intent(in) :: c_key_fld
261 integer(kind=c_int),
intent(inout) :: nx, ny, nzo, nf
267 nx =
size(fld%geom%lon,1)
268 ny =
size(fld%geom%lon,2)
270 nf =
size(fld%fields)
278 integer(c_int),
intent(in) :: c_key_fld
279 integer(c_int),
intent(in) :: c_key_rhs
287 if (
size(fld%geom%lon,1)==
size(rhs%geom%lon,1) .and.
size(fld%geom%lat,2)==
size(rhs%geom%lat,2) .and. &
288 fld%geom%nzo==rhs%geom%nzo )
then
291 call fld%convert(rhs)
303 integer(c_int),
intent(in) :: c_key_self
304 integer(c_int),
intent(in) :: c_key_geom
305 integer(c_size_t),
intent(out) :: c_vec_size
314 call self%serial_size(geom, vec_size)
315 c_vec_size = vec_size
326 integer(c_int),
intent(in) :: c_key_self
327 integer(c_int),
intent(in) :: c_key_geom
328 integer(c_size_t),
intent(in) :: c_vec_size
329 real(c_double),
intent(out) :: c_vec(c_vec_size)
336 vec_size = c_vec_size
340 call self%serialize(geom, vec_size, c_vec)
351 integer(c_int),
intent(in) :: c_key_self
352 integer(c_int),
intent(in) :: c_key_geom
353 integer(c_size_t),
intent(in) :: c_vec_size
354 real(c_double),
intent(in) :: c_vec(c_vec_size)
355 integer(c_size_t),
intent(inout) :: c_index
359 integer :: vec_size, idx
361 vec_size = c_vec_size
366 call self%deserialize(geom,vec_size,c_vec, idx)
375 integer(c_int),
intent(in) :: c_key_self
376 type(c_ptr),
value,
intent(in) :: c_trvars
379 type(oops_variables) :: trvars
381 trvars = oops_variables(c_trvars)
384 call self%logexpon(transfunc=
"log", trvars=trvars)
392 integer(c_int),
intent(in) :: c_key_self
393 type(c_ptr),
value,
intent(in) :: c_trvars
396 type(oops_variables) :: trvars
398 trvars = oops_variables(c_trvars)
401 call self%logexpon(transfunc=
"expon", trvars=trvars)
C++ interfaces for soca_geom_mod::soca_geom.
type(registry_t), public soca_geom_registry
Linked list interface - defines registry_t type.
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.
C++ interfaces for soca_state_mod::soca_state.
subroutine soca_state_rotate2north_c(c_key_self, c_uvars, c_vvars)
C++ interface for soca_state_mod::soca_state::rotate()
subroutine soca_state_sizes_c(c_key_fld, nx, ny, nzo, nf)
C++ interface to get soca_state_mod::soca_state dimensions sizes.
subroutine soca_state_rotate2grid_c(c_key_self, c_uvars, c_vvars)
C++ interface for soca_state_mod::soca_state::rotate()
subroutine soca_state_serial_size_c(c_key_self, c_key_geom, c_vec_size)
C++ interface for soca_state_mod::soca_state version of soca_fields_mod::soca_fields::serial_size()
subroutine soca_state_copy_c(c_key_self, c_key_rhs)
C++ interface for soca_state_mod::soca_state version of soca_fields_mod::soca_fields::copy()
subroutine soca_state_write_file_c(c_key_fld, c_conf, c_dt)
C++ interface for soca_state_mod::soca_state version of soca_fields_mod::soca_fields::write_rst()
subroutine soca_state_expontrans_c(c_key_self, c_trvars)
C++ interface for soca_state_mod::soca_state::logexpon()
subroutine soca_state_deserialize_c(c_key_self, c_key_geom, c_vec_size, c_vec, c_index)
C++ interface for soca_state_mod::soca_state version of soca_fields_mod::soca_fields::deserialize()
subroutine soca_state_change_resol_c(c_key_fld, c_key_rhs)
C++ interface for soca_state_mod::soca_state::convert()
subroutine soca_state_axpy_c(c_key_self, c_zz, c_key_rhs)
C++ interface for soca_state_mod::soca_state version of soca_fields_mod::soca_fields::axpy()
subroutine soca_state_logtrans_c(c_key_self, c_trvars)
C++ interface for soca_state_mod::soca_state::logexpon()
subroutine soca_state_create_c(c_key_self, c_key_geom, c_vars)
C++ interface for soca_state_mod::soca_state version of soca_fields_mod::soca_fields::create()
subroutine soca_state_add_incr_c(c_key_self, c_key_rhs)
C++ interface for soca_state_mod::soca_state::add_incr()
subroutine soca_state_rms_c(c_key_fld, prms)
C++ interface for soca_state_mod::soca_state RMS.
subroutine soca_state_gpnorm_c(c_key_fld, kf, pstat)
C++ interface for soca_state_mod::soca_state version of soca_fields_mod::soca_fields::gpnorm()
subroutine soca_state_delete_c(c_key_self)
C++ interface for soca_state_mod::soca_state version of soca_fields_mod::soca_fields::delete()
subroutine soca_state_read_file_c(c_key_fld, c_conf, c_dt)
C++ interface for soca_state_mod::soca_state version of soca_fields_mod::soca_fields::read()
subroutine soca_state_serialize_c(c_key_self, c_key_geom, c_vec_size, c_vec)
C++ interface for soca_state_mod::soca_state version of soca_fields_mod::soca_fields::serialize()
subroutine soca_state_zero_c(c_key_self)
C++ interface for soca_state_mod::soca_state version of soca_fields_mod::soca_fields::zeros()
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.