@@ -18,8 +18,10 @@ module wenoof_weights_js
1818use wenoof_alpha_rec_m
1919use wenoof_alpha_rec_z
2020use wenoof_base_object
21+ use wenoof_beta_factory
2122use wenoof_beta_object
2223use wenoof_beta_rec_js
24+ use wenoof_kappa_factory
2325use wenoof_kappa_object
2426use wenoof_kappa_rec_js
2527use wenoof_weights_object
@@ -61,7 +63,9 @@ subroutine create(self, constructor)
6163 ! < Create reconstructor.
6264 class(weights_js), intent (inout ) :: self ! < Weights.
6365 class(base_object_constructor), intent (in ) :: constructor ! < Constructor.
64- type (alpha_factory) :: factory ! < Objects factory.
66+ type (alpha_factory) :: a_factory ! < Alpha factory.
67+ type (beta_factory) :: b_factory ! < Beta factory.
68+ type (kappa_factory) :: k_factory ! < Kappa factory.
6569
6670 call self% destroy
6771 call self% create_(constructor= constructor)
@@ -73,30 +77,29 @@ subroutine create(self, constructor)
7377 beta_constructor= >constructor% beta_constructor, &
7478 kappa_constructor= >constructor% kappa_constructor)
7579
76- select type (alpha_constructor)
77- type is (alpha_rec_js_constructor)
78- ! allocate(alpha_rec_js :: self%alpha)
79- ! call self%alpha%create(constructor=alpha_constructor)
80- call factory% create(constructor= alpha_constructor, object= self% alpha)
81- type is (alpha_rec_m_constructor)
82- ! @TODO implement this
83- error stop ' alpha_rec_m to be implemented'
84- type is (alpha_rec_z_constructor)
85- ! @TODO implement this
86- error stop ' alpha_rec_z to be implemented'
87- endselect
88-
89- select type (beta_constructor)
90- type is (beta_rec_js_constructor)
91- allocate (beta_rec_js :: self% beta)
92- call self% beta% create(constructor= beta_constructor)
93- endselect
94-
95- select type (kappa_constructor)
96- type is (kappa_rec_js_constructor)
97- allocate (kappa_rec_js :: self% kappa)
98- call self% kappa% create(constructor= kappa_constructor)
99- endselect
80+ call a_factory% create(constructor= alpha_constructor, object= self% alpha)
81+ ! select type(alpha_constructor)
82+ ! type is(alpha_rec_js_constructor)
83+ ! call factory%create(constructor=alpha_constructor, object=self%alpha)
84+ ! type is(alpha_rec_m_constructor)
85+ ! call factory%create(constructor=alpha_constructor, object=self%alpha)
86+ ! type is(alpha_rec_z_constructor)
87+ ! call factory%create(constructor=alpha_constructor, object=self%alpha)
88+ ! endselect
89+
90+ call b_factory% create(constructor= beta_constructor, object= self% beta)
91+ ! select type(beta_constructor)
92+ ! type is(beta_rec_js_constructor)
93+ ! allocate(beta_rec_js :: self%beta)
94+ ! call self%beta%create(constructor=beta_constructor)
95+ ! endselect
96+
97+ call k_factory% create(constructor= kappa_constructor, object= self% kappa)
98+ ! select type(kappa_constructor)
99+ ! type is(kappa_rec_js_constructor)
100+ ! allocate(kappa_rec_js :: self%kappa)
101+ ! call self%kappa%create(constructor=kappa_constructor)
102+ ! endselect
100103 endassociate
101104 endselect
102105 endsubroutine create
0 commit comments