Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
type(FEMDomainp_), | public, | allocatable | :: | FEMDomains(:) | |||
type(LinearSolver_), | public | :: | solver | ||||
integer(kind=int32), | public, | allocatable | :: | contactlist(:,:) | |||
real(kind=real64), | public, | allocatable | :: | YoungModulus(:) | |||
real(kind=real64), | public, | allocatable | :: | PoissonRatio(:) | |||
real(kind=real64), | public, | allocatable | :: | Density(:) | |||
real(kind=real64), | public, | allocatable | :: | YoungModulusList(:,:) | |||
real(kind=real64), | public, | allocatable | :: | PoissonRatioList(:,:) | |||
real(kind=real64), | public, | allocatable | :: | DensityList(:,:) | |||
real(kind=real64), | public, | allocatable | :: | Displacement(:) | |||
real(kind=real64), | public, | allocatable | :: | TractionForce(:,:) | |||
logical, | public | :: | initialized | = | .false. | ||
real(kind=real64), | public | :: | gravity(1:3) | = | [0.0d0, 0.0d0, -9.810d0] | ||
real(kind=real64), | public | :: | penalty | = | 100000.0d0 | ||
type(FEMDomain_), | public, | pointer | :: | FEMDomain1 | |||
type(FEMDomain_), | public, | pointer | :: | FEMDomain2 | |||
type(FEMIface_), | public, | pointer | :: | FEMIface | |||
real(kind=real64), | public, | allocatable | :: | NTSGap(:,:) | |||
real(kind=real64), | public, | allocatable | :: | NTSGzi(:,:) | |||
real(kind=real64), | public | :: | penaltypara | = | dble(1.0e+5) | ||
real(kind=real64), | public | :: | FrictionalCoefficient | = | 0.30d0 | ||
real(kind=real64), | public | :: | Cohesion | = | 0.0d0 | ||
real(kind=real64), | public | :: | Tolerance | = | dble(1.0e-10) | ||
real(kind=real64), | public, | allocatable | :: | Domain1Force(:,:) | |||
real(kind=real64), | public, | allocatable | :: | Domain2Force(:,:) | |||
real(kind=real64), | public, | allocatable | :: | KcontactEBE(:,:,:) | |||
real(kind=real64), | public, | allocatable | :: | KcontactGlo(:,:) | |||
real(kind=real64), | public, | allocatable | :: | FcontactEBE(:,:) | |||
real(kind=real64), | public, | allocatable | :: | FcontactGlo(:) | |||
real(kind=real64), | public, | allocatable | :: | DispVecEBE(:,:) | |||
real(kind=real64), | public, | allocatable | :: | DispVecGlo(:) | |||
real(kind=real64), | public, | allocatable | :: | NTSvariables(:,:) | |||
real(kind=real64), | public, | allocatable | :: | ContactMatPara(:,:) | |||
real(kind=real64), | public, | allocatable | :: | GloNodCoord(:,:) | |||
integer(kind=int32), | public, | allocatable | :: | u_nod_x(:) | |||
integer(kind=int32), | public, | allocatable | :: | u_nod_y(:) | |||
integer(kind=int32), | public, | allocatable | :: | u_nod_z(:) | |||
real(kind=real64), | public, | allocatable | :: | du_nod_dis_x(:) | |||
real(kind=real64), | public, | allocatable | :: | du_nod_dis_y(:) | |||
real(kind=real64), | public, | allocatable | :: | du_nod_dis_z(:) | |||
real(kind=real64), | public, | allocatable | :: | u_nod_dis_x(:) | |||
real(kind=real64), | public, | allocatable | :: | u_nod_dis_y(:) | |||
real(kind=real64), | public, | allocatable | :: | u_nod_dis_z(:) | |||
real(kind=real64), | public, | allocatable | :: | duvec(:) | |||
real(kind=real64), | public, | allocatable | :: | uvec(:) | |||
real(kind=real64), | public, | allocatable | :: | dfvec(:) | |||
real(kind=real64), | public, | allocatable | :: | fvec(:) | |||
integer(kind=int32), | public, | allocatable | :: | NTSMaterial(:) | |||
integer(kind=int32), | public, | allocatable | :: | StickOrSlip(:) | |||
integer(kind=int32), | public | :: | step | = | 0 | ||
integer(kind=int32), | public | :: | itr_contact | = | 0 | ||
integer(kind=int32), | public | :: | itr | = | 0 | ||
integer(kind=int32), | public | :: | BiCG_ItrMax | = | 10000 | ||
integer(kind=int32), | public | :: | NR_ItrMax | = | 100 | ||
integer(kind=int32), | public | :: | control | = | 1 | ||
integer(kind=int32), | public | :: | TimeStep | = | 100 | ||
integer(kind=int32), | public, | allocatable | :: | nts_elem_nod(:,:) | |||
integer(kind=int32), | public, | allocatable | :: | old_nts_elem_nod(:,:) | |||
integer(kind=int32), | public, | allocatable | :: | surface_nod(:) | |||
integer(kind=int32), | public, | allocatable | :: | sur_nod_inf(:,:) | |||
real(kind=real64), | public, | allocatable | :: | nod_coord(:,:) | |||
real(kind=real64), | public, | allocatable | :: | old_nod_coord(:,:) | |||
real(kind=real64), | public, | allocatable | :: | elem_nod(:,:) | |||
integer(kind=int32), | public, | allocatable | :: | nts_mat(:) | |||
integer(kind=int32), | public, | allocatable | :: | sur_inf_mat(:,:) | |||
integer(kind=int32), | public, | allocatable | :: | contact_mat(:,:) | |||
real(kind=real64), | public, | allocatable | :: | contact_mat_para(:,:) | |||
integer(kind=int32), | public, | allocatable | :: | active_nts(:) | |||
real(kind=real64), | public, | allocatable | :: | k_contact(:,:) | |||
real(kind=real64), | public, | allocatable | :: | fvec_contact(:) | |||
real(kind=real64), | public, | allocatable | :: | nts_amo(:,:) | |||
integer(kind=int32), | public, | allocatable | :: | stick_slip(:) | |||
integer(kind=int32), | public, | allocatable | :: | old_stick_slip(:) | |||
real(kind=real64), | public, | allocatable | :: | old_nts_amo(:,:) | |||
real(kind=real64), | public, | allocatable | :: | kmat(:,:) | |||
real(kind=real64), | public, | allocatable | :: | gvec(:) | |||
real(kind=real64), | public, | allocatable | :: | rvec(:) | |||
real(kind=real64), | public, | allocatable | :: | K_total(:,:) | |||
real(kind=real64), | public, | allocatable | :: | initial_duvec(:) | |||
real(kind=real64), | public, | allocatable | :: | dduvec(:) | |||
real(kind=real64), | public, | allocatable | :: | dduvec_nr(:) |
procedure, public :: Init => InitializeContactMechanics | |
procedure, public :: setup => runCM | |
procedure, public :: run => runCM | |
procedure, public :: solve => solveCM | |
procedure, public :: updateMesh => updateMeshContactMechanics | |
procedure, public :: fix => fixContactMechanics | |
procedure, public :: setDensity | |
procedure, public :: setYoungModulus | |
procedure, public :: setPoissonRatio | |
procedure, public :: properties => propertiesCM | |
procedure, public :: property => propertiesCM | |
procedure, public :: showProperty => showPropertyCM | |
procedure, public :: remove => removeContactMechanics | |
procedure, public :: Update => UpdateContactConfiguration | |
procedure, public :: Import => ImportContactMechanics | |
procedure, public :: deploy => deployContactMechanics | |
procedure, public :: ContactSearch | |
procedure, public :: getKcmat | |
procedure, public :: getKcmatStick | |
procedure, public :: getKcmatStickSlip | |
procedure, public :: setPenaltyParameter => setPenaltyParaCM | |
procedure, public :: updateContactStress => updateContactStressCM | |
procedure, public :: updateTimestep => updateTimestepContact | |
procedure, public :: getGap => getGapCM | |
procedure, public :: getForce => getForceCM | |
procedure, public :: exportForceAsTraction => exportForceAsTractionCM | |
procedure, public :: getDispBound => getDispBoundCM | |
procedure, public :: getTracBound => getTracBoundCM | |
procedure, public :: ls_add_du => ls_add_duCM | |
procedure, public :: ls_nts_generate => ls_nts_generateCM | |
procedure, public :: ls_nts_material => ls_nts_materialCM | |
procedure, public :: ls_get_stabilized_nts => ls_get_stabilized_ntsCM | |
procedure, public :: ls_check_active => ls_check_active_CM |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ContactMechanics_), | intent(inout) | :: | obj | |||
type(FEMDomain_), | intent(in), | optional | target | :: | femdomains(:) | |
type(FEMDomainp_), | intent(in), | optional | target | :: | femdomainsp(:) | |
integer(kind=int32), | intent(in), | optional | :: | ContactList(:,:) | ||
type(FEMDomain_), | intent(in), | optional | target | :: | femdomain1 | |
type(FEMDomain_), | intent(in), | optional | target | :: | femdomain2 | |
real(kind=real64), | intent(in), | optional | :: | AllYoungModulus | ||
real(kind=real64), | intent(in), | optional | :: | AllPoissonRatio | ||
real(kind=real64), | intent(in), | optional | :: | AllDensity |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ContactMechanics_), | intent(inout) | :: | Obj | |||
character(len=1), | intent(in) | :: | direction | |||
real(kind=real64), | intent(in) | :: | disp | |||
integer(kind=int32), | intent(in) | :: | DomainID | |||
real(kind=real64), | intent(in), | optional | :: | x_min | ||
real(kind=real64), | intent(in), | optional | :: | x_max | ||
real(kind=real64), | intent(in), | optional | :: | y_min | ||
real(kind=real64), | intent(in), | optional | :: | y_max | ||
real(kind=real64), | intent(in), | optional | :: | z_min | ||
real(kind=real64), | intent(in), | optional | :: | z_max | ||
integer(kind=int32), | intent(in), | optional | :: | NodeIDs(:) | ||
real(kind=real64), | intent(in), | optional | :: | reduction |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ContactMechanics_), | intent(inout), | target | :: | obj |
call f%write(A_ij)
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ContactMechanics_), | intent(inout), | target | :: | obj | ||
real(kind=real64), | intent(in), | optional | :: | penaltyparameter | ||
logical, | intent(in), | optional | :: | debug | ||
logical, | intent(in), | optional | :: | GaussPointProjection |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ContactMechanics_), | intent(inout) | :: | obj | |||
character(len=*), | intent(in), | optional | :: | config | ||
real(kind=real64), | intent(in), | optional | :: | penalty | ||
real(kind=real64), | intent(in), | optional | :: | gravity(3) |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ContactMechanics_), | intent(inout) | :: | obj | |||
logical, | intent(in), | optional | :: | WeakCoupling | ||
logical, | intent(in), | optional | :: | StrongCoupling |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ContactMechanics_), | intent(inout) | :: | obj |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ContactMechanics_), | intent(inout) | :: | obj | |||
class(FEMIface_), | intent(in), | target | :: | IfaceObj |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ContactMechanics_), | intent(inout) | :: | obj |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ContactMechanics_), | intent(inout) | :: | obj |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ContactMechanics_), | intent(inout) | :: | obj |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=real64), | intent(in) | :: | xs(:) | |||
real(kind=real64), | intent(in) | :: | xm(:,:) | |||
real(kind=real64), | intent(out) | :: | gap |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ContactMechanics_), | intent(inout) | :: | obj | |||
logical, | intent(in), | optional | :: | Stick | ||
logical, | intent(in), | optional | :: | StickSlip |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ContactMechanics_), | intent(inout) | :: | obj |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ContactMechanics_), | intent(inout) | :: | obj |
+- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +-
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | j | |||
integer, | intent(in) | :: | nod_max | |||
real(kind=real64), | intent(in) | :: | old_nod_coord(:,:) | |||
integer, | intent(in) | :: | nts_elem_nod(:,:) | |||
integer, | intent(in) | :: | active_nts(:) | |||
real(kind=real64), | intent(inout) | :: | nts_amo(:,:) | |||
real(kind=real64), | intent(inout) | :: | k_contact(:,:) | |||
integer, | intent(in) | :: | nts_mat(:) | |||
real(kind=real64), | intent(in) | :: | contact_mat_para(:,:) | |||
real(kind=real64), | intent(in) | :: | uvec(:) | |||
real(kind=real64), | intent(inout) | :: | fvec_contact(:) | |||
integer, | intent(inout) | :: | stick_slip(:) |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ContactMechanics_), | intent(inout) | :: | obj |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | j | |||
integer, | intent(in) | :: | nts_elem_nod(:,:) | |||
integer | :: | check_active_nts(:) | ||||
real(kind=real64), | intent(in) | :: | nod_coord(:,:) |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | j | |||
integer, | intent(in) | :: | nod_max | |||
real(kind=real64), | intent(in) | :: | nod_coord(:,:) | |||
integer, | intent(in) | :: | nts_elem_nod(:,:) | |||
integer, | intent(in) | :: | active_nts(:) | |||
integer, | intent(in) | :: | surface_nod(:) | |||
integer, | intent(in) | :: | sur_nod_inf(:,:) | |||
real(kind=real64), | intent(inout) | :: | nts_amo(:,:) | |||
real(kind=real64), | intent(inout) | :: | k_contact(:,:) | |||
real(kind=real64), | intent(in) | :: | uvec(:) | |||
real(kind=real64), | intent(in) | :: | duvec(:) | |||
real(kind=real64), | intent(inout) | :: | fvec_contact(:) | |||
integer, | intent(inout) | :: | stick_slip(:) | |||
real(kind=real64), | intent(in) | :: | contact_mat_para(:,:) | |||
integer, | intent(in) | :: | nts_mat(:) | |||
integer, | intent(in) | :: | itr_contact |
+- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +-
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | j | |||
integer, | intent(in) | :: | nod_max | |||
real(kind=real64), | intent(in) | :: | old_nod_coord(:,:) | |||
integer, | intent(in) | :: | nts_elem_nod(:,:) | |||
integer, | intent(in) | :: | active_nts(:) | |||
real(kind=real64), | intent(inout) | :: | nts_amo(:,:) | |||
real(kind=real64), | intent(inout) | :: | k_contact(:,:) | |||
real(kind=real64), | intent(in) | :: | uvec(:) | |||
real(kind=real64), | intent(in) | :: | duvec(:) | |||
real(kind=real64), | intent(inout) | :: | fvec_contact(:) | |||
integer, | intent(inout) | :: | stick_slip(:) | |||
real(kind=real64), | intent(in) | :: | contact_mat_para(:,:) | |||
integer, | intent(in) | :: | nts_mat(:) |
+- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +- +-
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | j | |||
integer, | intent(in) | :: | nod_max | |||
real(kind=real64), | intent(in) | :: | old_nod_coord(:,:) | |||
integer, | intent(in) | :: | nts_elem_nod(:,:) | |||
integer, | intent(in) | :: | active_nts(:) | |||
real(kind=real64), | intent(inout) | :: | nts_amo(:,:) | |||
real(kind=real64), | intent(inout) | :: | k_contact(:,:) | |||
real(kind=real64), | intent(in) | :: | uvec(:) | |||
real(kind=real64), | intent(in) | :: | duvec(:) | |||
real(kind=real64), | intent(inout) | :: | fvec_contact(:) | |||
integer, | intent(inout) | :: | stick_slip(:) | |||
real(kind=real64), | intent(in) | :: | contact_mat_para(:,:) | |||
integer, | intent(in) | :: | nts_mat(:) |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | u_nod_x(:) | |||
integer, | intent(in) | :: | u_nod_y(:) | |||
real(kind=real64), | intent(inout) | :: | rvec(:) |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | nts_ID | |||
integer, | intent(in) | :: | nts_elem_nod(:,:) | |||
real(kind=real64), | intent(in) | :: | nod_coord(:,:) | |||
integer, | intent(out) | :: | beta |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ContactMechanics_), | intent(inout) | :: | obj |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ContactMechanics_), | intent(inout) | :: | obj |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | nts_elem_nod(:,:) | |||
real(kind=real64), | intent(in) | :: | nts_amo(:,:) | |||
integer, | intent(inout), | allocatable | :: | old_nts_elem_nod(:,:) | ||
real(kind=real64), | intent(inout), | allocatable | :: | old_nts_amo(:,:) | ||
integer, | intent(in) | :: | surface_nod(:) | |||
integer, | intent(in) | :: | sur_nod_inf(:,:) | |||
integer, | intent(in) | :: | stick_slip(:) | |||
integer, | intent(inout), | allocatable | :: | old_stick_slip(:) |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(in) | :: | surface_nod(:) | |||
integer, | intent(in) | :: | sur_nod_inf(:,:) | |||
integer, | intent(in) | :: | shift | |||
integer, | intent(in) | :: | old_master | |||
integer, | intent(out) | :: | master1 | |||
integer, | intent(out) | :: | master2 |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
integer, | intent(inout) | :: | nts_elem_nod(:,:) | |||
real(kind=real64), | intent(inout) | :: | nts_amo(:,:) | |||
integer, | intent(in) | :: | old_nts_elem_nod(:,:) | |||
real(kind=real64), | intent(in) | :: | old_nts_amo(:,:) | |||
integer, | intent(inout) | :: | stick_slip(:) | |||
integer, | intent(in) | :: | old_stick_slip(:) |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ContactMechanics_), | intent(inout) | :: | obj |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ContactMechanics_), | intent(inout) | :: | obj | |||
real(kind=real64), | intent(in) | :: | para |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ContactMechanics_), | intent(inout) | :: | obj |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ContactMechanics_), | intent(inout) | :: | obj |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ContactMechanics_), | intent(inout) | :: | obj |
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ContactMechanics_), | intent(inout) | :: | obj |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ContactMechanics_), | intent(inout) | :: | obj | |||
integer, | intent(in), | optional | :: | timestep |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ContactMechanics_), | intent(inout) | :: | obj |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ContactMechanics_), | intent(inout) | :: | obj |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ContactMechanics_), | intent(inout) | :: | obj | |||
integer(kind=int32), | intent(in), | optional | :: | dim_num |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=8), | intent(inout) | :: | Kmat(:,:) | |||
real(kind=8), | intent(inout) | :: | rvec(:) | |||
integer, | intent(in) | :: | u_nod_x(:) | |||
real(kind=8), | intent(in) | :: | u_nod_dis_x(:) | |||
integer, | intent(in) | :: | u_nod_y(:) | |||
real(kind=8), | intent(in) | :: | u_nod_dis_y(:) |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
real(kind=8), | intent(inout) | :: | Kmat(:,:) | |||
real(kind=8), | intent(inout) | :: | Bvec(:) | |||
integer, | intent(in) | :: | u_nod_x(:) | |||
real(kind=8), | intent(in) | :: | u_nod_dis_x(:) | |||
integer, | intent(in) | :: | u_nod_y(:) | |||
real(kind=8), | intent(in) | :: | u_nod_dis_y(:) |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ContactMechanics_), | intent(in) | :: | Obj |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ContactMechanics_), | intent(inout) | :: | Obj | |||
real(kind=real64), | intent(in) | :: | YoungModulus | |||
integer(kind=int32), | intent(in), | optional | :: | DomainID |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ContactMechanics_), | intent(inout) | :: | Obj | |||
real(kind=real64), | intent(in) | :: | PoissonRatio | |||
integer(kind=int32), | intent(in), | optional | :: | DomainID |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ContactMechanics_), | intent(inout) | :: | Obj | |||
real(kind=real64), | intent(in) | :: | density | |||
integer(kind=int32), | intent(in), | optional | :: | DomainID |
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ContactMechanics_), | intent(inout) | :: | obj |
update displacement udate traction force
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
class(ContactMechanics_), | intent(inout), | target | :: | obj | ||
character(len=*), | intent(in) | :: | Algorithm |