11 use fckit_configuration_module,
only: fckit_configuration
25 #define LISTED_TYPE ufo_seaicelinear
28 #include "oops/util/linkedList_i.f"
37 #include "oops/util/linkedList_c.f"
42 integer(c_int),
intent(inout) :: c_key_self
43 type(c_ptr),
value,
intent(in) :: c_conf
46 type(fckit_configuration) :: f_conf
49 f_conf = fckit_configuration(c_conf)
57 integer(c_int),
intent(inout) :: c_key_self
69 bind(c,name=
'ufo_seaicelinear_settraj_f90')
70 integer(c_int),
intent(in) :: c_key_self
71 integer(c_int),
intent(in) :: c_key_geovals
72 type(c_ptr),
value,
intent(in) :: c_obsspace
82 self%ncat = geoval%nval
89 bind(c,name=
'ufo_seaicelinear_alloc_ad_f90')
90 integer(c_int),
intent(in) :: c_key_self
91 integer(c_int),
intent(in) :: c_key_geovals
92 type(c_ptr),
value,
intent(in) :: c_obsspace
93 integer(c_int),
intent(in) :: c_nobs
94 real(c_double),
intent(in) :: c_hofx(c_nobs)
99 character(max_string) :: err_msg
105 if (geovals%nlocs /=
size(c_hofx,1))
then
106 write(err_msg,*)
' error: nlocs inconsistent!'
107 call abor1_ftn(err_msg)
110 if (.not. geovals%linit ) geovals%linit=.true.
115 if (.not.(
allocated(geoval%vals)))
then
116 if (self%ncat < 1)
then
117 write(err_msg,*)
' unknown number of categories'
118 call abor1_ftn(err_msg)
120 allocate(geoval%vals(self%ncat,
size(c_hofx,1)))