From 2bb1562ee79fc9dd8a51ab6403e276cca946abea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A9rang=C3=A8re=20Lamy?= <julien.mahmoud-lamy@inrae.fr> Date: Tue, 30 Aug 2022 11:51:10 +0200 Subject: [PATCH] add project on polymorphic type instead of multiple types --- test_vect_type/a.f90 | 141 +++++++++++++++++++++++++++++++++++ test_vect_type/progGeneral | Bin 0 -> 17848 bytes test_vect_type/test | Bin 0 -> 17728 bytes test_vect_type/test.f90 | 42 +++++++++++ test_vect_type/test.o | Bin 0 -> 3672 bytes test_vect_type/test_prog.f90 | 26 +++++++ test_vect_type/toto.f90 | 41 ++++++++++ test_vect_type/toto.mod | Bin 0 -> 300 bytes test_vect_type/try | Bin 0 -> 16968 bytes test_vect_type/vector.mod | Bin 0 -> 1786 bytes 10 files changed, 250 insertions(+) create mode 100644 test_vect_type/a.f90 create mode 100755 test_vect_type/progGeneral create mode 100755 test_vect_type/test create mode 100644 test_vect_type/test.f90 create mode 100644 test_vect_type/test.o create mode 100644 test_vect_type/test_prog.f90 create mode 100644 test_vect_type/toto.f90 create mode 100644 test_vect_type/toto.mod create mode 100755 test_vect_type/try create mode 100644 test_vect_type/vector.mod diff --git a/test_vect_type/a.f90 b/test_vect_type/a.f90 new file mode 100644 index 0000000..a35529c --- /dev/null +++ b/test_vect_type/a.f90 @@ -0,0 +1,141 @@ +module alpha + +type general + + integer :: int_ + real :: float_ + character :: char_ + class(*), allocatable :: unknown_ + + contains + + procedure :: SINT => set_integer + procedure :: SFLOAT => set_real + procedure :: SCHAR => set_character + procedure :: SUNKNOWN => set_unknown + procedure :: PUNKNOWN => print_unknown + +end type general + +contains + +subroutine set_integer(self, int_) + class(general), intent(inout) :: self + integer, intent(inout) :: int_ + self%int_ = int_ +end subroutine set_integer + +subroutine set_real(self, float_) + class(general), intent(inout) :: self + real, intent(inout) :: float_ + self%float_ = float_ +end subroutine set_real + +subroutine set_character(self, char_) + class(general), intent(inout) :: self + character, intent(inout) :: char_ + self%char_ = char_ +end subroutine set_character + +subroutine set_unknown(self, unknown_) + class(general), intent(inout) :: self + class(*), intent(inout), pointer :: unknown_ + self%unknown_ = unknown_ +end subroutine set_unknown + +subroutine print_unknown(self) + class(general), intent(inout) :: self + class(*), intent(inout), pointer :: unknown_ + + SELECT TYPE(unknown_) + TYPE IS(INTEGER) + unknown_ => self%unknown_ + print*,unknown_ + TYPE IS(REAL) + unknown_ => self%unknown_ + print*,unknown_ + END SELECT + + !ptr => self%unknown_ + !ptrr => self%unknown_ + + !ptr <= self%unknown_ + !ptrr <= self%unknown_ + + !SELECT TYPE(self%unknown_) + !SELECT TYPE(ptr) + !SELECT TYPE(ptrr) + ! TYPE IS(INTEGER) + ! !print*,self%unknown_ + ! !print*,ptr + ! print*,ptrr + ! TYPE IS(REAL) + ! !print*,self%unknown_ + ! !print*,ptr + ! print*,ptrr + ! !TYPE IS(CHARACTER*1) + ! ! print*,self%unknown_ + !END SELECT +end subroutine print_unknown + +end module alpha + +!_______________________ + +program a + +use alpha + +implicit none + +type(general) :: test +integer :: int_1, int_2 +real :: float_1, float_2 +character :: char_1, char_2 + +integer, target :: int_3 +real, target :: float_3 + + class(*),pointer :: unknown_1, unknown_2, ptr + +int_1 = 10 +int_2 = 20 +float_1 = 15.0 +float_2 = 25.0 +char_1 = 'a' +char_2 = 'b' + +test = general(int_=int_1, float_=float_1, char_=char_1) + +unknown_1 => int_3 +unknown_2 => float_3 + +print*,test%int_, test%float_, test%char_ + +call test % SINT(int_2) +call test % SFLOAT(float_2) +call test % SCHAR(char_2) + +print*,test%int_, test%float_, test%char_ + +call test % SUNKNOWN(unknown_1) + +print*,test%unknown_ + + + + +end program a + + + + + + + + + + + + + diff --git a/test_vect_type/progGeneral b/test_vect_type/progGeneral new file mode 100755 index 0000000000000000000000000000000000000000..98d4edd79a5300fba6eed985c8e77ac5baec0eac GIT binary patch literal 17848 zcmeHPeQ;dWb-$~XumF2kHkc^p!wcBKCh=M}wkv}jc5SWwL}gnTiI{?UthB3-BJC=x zU67dKn2|-aS(GR(Fm9(Lo`$w={|IV_Ivxm(j2X$aG!-4nc%V%LC5Z%-iZ9zxVEa4w z-m`o6X?H>=?M$bmEAO6re&^$!d)|Hb-S_rge<Reeqs-+JT-@TTLUM~063~L$ud;>^ z0Z}V1#P=2Aa&aEua(n_>?4%uKO2D*I>$yS6?x>bK>1A4vDMv_@>`Ilx=PL<QQKfjY ztDvgpopk9UrN@-zx%PZYE*!LyI)cK~w4>aNenpDK=$1lySlb=Zl<g=TWVdgP(%-kW zkP4kIrkqd834NZ^awn}*ZUj@(rPBC|WQ6KZ`iPrLlL{70+3sf8QJkN*aN76k_DbcY zQRjmx<)6yhuFjTC8`gG3)^v5oQhjUsYB#Ofw87sS_pg`zz8E@Wx^s84xOCCr-B(my z+467wPuJgZ-K(4b?(e^~lH#Tq$RFuYA$>EQG~`LH`t<;6Lg>>#ycqpyw**RjeGT}M zA~M2!MexmNsF?nq5_k$eis@fj!hg7g9~w?Re4OP3fMWh1ErGvL0$)_3-5-|FzqW+_ z$0hXFm(ULYzX~>U3dT))TRf3Wgkv;XHVWHr?~cdp-efqDv~6M6H|??`(L}Vpvo{${ zH0|2n6^})m!Yy4<B`YprpEfz}ZHp%CL^RxG-<#-6!fvj#GnS0DL(8eqn^ce;L92#g zyw{E<67hrq<yva(2q(g=2zIWwXwr`NBs=4=Uc->vFd-<06YaeM>1n0BY!VcISG-kp zN4r~l`bD?mY`e8DY`1mB!d;#BAwZi9bn?2xoiWjth(^WEhWc&W?e+e38*<h4NcGMg zd-gW%4eqvUaaia~bK_4@;`xuTa(On=`Bx@<IF@v-*5LE-cOS*+ST5Q$mRi<{8Qv|v z4xWlj{^h6jj*otS0r|dP%X!}Ad2&jh(8u+B%=i(FpLXCrpKL}{>v@><$F!c$fq&r= zrN7F7&uIU(4*W;eN<ZMh|3KrG1Aj&1jSk%Ug7Q-t&{Pq@e60iLeofw}6lu=mxsZ_4 z2F`On;Zp`~&i~T}&N(9eSp(;}l<*#n<6z+k=1ZS}^QDob2Mt_a$F<3jfs-#TBL=RQ z1X6U^z%O8B&?5$Zp@APY@P!6GYT$b5Af?9*++*mE8MxQLPZ>C0BMtF<bv^_08JN$& zd<Nz-@V}CQ_q|tqYz@3!X=N%-tQEo<97~pEC#`|!Do@JxvKy}loL#vE-`?c`)QImO z+00ZHW#xL}=@LFODfw%Or=`TqnB=b_o-XAxqmo}nJS{0^j!1q9@pMU_8Ik-2#M9DZ z=Ah)uh^I^YOpoM0_JgM-#>`!ke~);&#LqNJ{!QZP(moTA{OiQiC4HtQXWupgUKZ;A zx__@vzj&vWe%%^)W45uWVYuR#(6@#c#U<Ig8YH{)FX88d5o>tsVgzIjS5TbR=5xuV zNZq55QR>dmPI;FfB*!N;h5l<K9Nzc}k=37B=~?T<J2zS<&bckuxb@;^$&2A&zjjcW zooe$guglw0d<VBa2C+zex!D@ndOcOG^e>VNt<2UPV5V22ThkGIjaQ_=yY{2)T>E4{ zb1#I=un9H?n{Kflc>9!e@k}jXEB!Z=mZ3-15|bGu%zG?wndSZ4F)JM!voiP$jJckI z33bu(TF+W({Cn|fiJX{nKSc*$it2z*OwW8uZbQfCdK-neQHQ7c^h?2KO1b);a&>ef zG(;*Bp~q!g891Mi%f`YsX03_PX{oU}b=v#=G4HXl!7=aPn-pIrblMtjL>Gx#pt}2$ zmTSy%O<L%P<vNG1uCg*!&^l_RFFs{u9+64P8Bwpc0M<^@r=;~MWsTEjthOPe+d><2 z#Whw&)UO_ENY72G_la{>`XjhT6V0cs^ukHijEwoHmAP2+6g%mZpRzVTn_PgL$m|WE z=QHIvdLxB7AuG~GaMLavmcv$N|6$6LwA#Gi$kVGx9V9e5&<ArUoB}+l61!`X6Pwzr zgGCb?RB(T2oy7ou8Th15Hk#ftNn;)&BxKwWp-+g)`^32A3Z1eB(7;<q5IpMMCkAOy zB3h(c#(}hfJ9wPV`={s&eYd>3pDi3r<JRyaePlQsI*1W!rQf3#)BiYq=09n0D;YI_ z<DCwTSOfQu2=Ad+WOu=40#z8sDeuH!5>BYQGvCe2s_6v(UBpL<)%dI;;5KVwkmeoe zA$NoObai}iKWZ0h?J6rhNRts8H;{48kyU98OR?%q`lmRFf|!Gq0&FLykA0lYs;Fc; zB$)`v+XbmL5s-I<y6z*LjO;@?^bit@fpO7i7#NxTLr}rMo|ulpA?nAeejDoP)7Ase z(Sg4`ct>#m{*yFY+=A;uwUxeq+DfOUpgd*W5SsQrjI(N1a+&67D|3OB`JGBDjeq+p zt;|hTU}0k+>V3%3UZ0h2^bMZz4!#86u!4n5viH!BazG;#;XExV6dHY+CrSpCY&fUp z;BfGtlI0j7a;iD-5xS9nR_mj2sSlm80~^>F$yN?CmUgHc$n>xQ<ro=%YdzaoN_Psu z7&<RQE&JkIn0OJc&OZjxbJe#OPZ;7A2peAZB0t<chR~=CL}?jPH41N1u|Qk(zhIV? zxmZRA@AuA82Da-cNn4KLAg(+8I8UZuAh}G7@`Nd4rO9U+ky*-`GR3(Ir+==DrnI*M zTk<N^I-SZwW)y0iB{-2u1%&fe=5)1TtJA7`Off4(l~^;C7<T6{>}IVr9re&TmC0G} zu_Z%|l_M(MIi0-xeQ#CS``*QY^3p1qCFv@bKJfM!7An?6#Z}i}G@?v|KB1MvMCfgL zo(yjlLs)shW9S?)-_XqLc<5|+Jancd6Z!;aHZD?-lFH)2Ixya2p|eAS7G1kC6;FSO z2L93?6G;#D5SV_XPsyH8vQZ^FsANM*_5%fuNKUqa2~7G-SF}sn(hg}p*eF#V*(c2_ zZdbB9l<Y1A-l{m+0w%3C%&MvxHHqDdnQIi9lmb+b>+1O6GpJz_8&shU9wBeaR83*p zi=4qo=$yfnAzECPbAt83hww5XMY=(XMOUf6vN~MxGb{>`vZFv$csn7OkU<=jwZ|bj z4>fC8MTU|4Dfw3HQ?$m!y6gIt<Yr>JWv=LIExN`K$*bJ(#)VqckQb4YU6QRBzmj~? zBB0{c6|#!!UGv-4Fs^&*6gq&|Abm_Jo<jAnmEsr_XQ4Qz71t}pq*6Q%#k5i!wT5?{ zf#Rq-^W|k>dg>GD_9XgdnW@<&6GDgJpsW>1&Fde`NzHQE(!})6xuQxfT4;!LYTmtC zC3Ib0M5$R1cI0_^<-mobDt-Sa@&wK_&*CgWXQ8rIT5POF^gqF=B&Iz8roWCp9S0|# zKiM`y>($`b8iu!C<P#!zYkm6VU~_%?!(dY|{YkSmyrvxREe)$brF)j?8{bElPJHT4 zE?@VmUT-&~-)l&}Q<wf#FnjUOt$~v+YxBRR-lY4P+xOF@EqG_pKH1jh_bxv~P2$|X z;$yngAu8{Ka(6ybJpVPHf&bSTpx;|QPoXvUf2RcLx1=!r66L!$p6ZJDqJ6E=XvBwK zm*R<jUsq>$XHtayZJX&w9;4Kup{!Q{G~dvN%5wSL6BOc9&~>T%h92<r+`a2Rvf0N$ zx6Ed<FMu|HJ_Ne)-E8&^&{j;?3*qG9Gudnn=+Dn)vrV9GEOC;cUjls?v<~!1(8qA6 z@Dk|1fPMhlfXQhKQbg+kDz5wX3Rhp1>(Ye_Dn}qE{4#uwBMv+efTIO+UA_X<4fu?` zlg&;N?y1`0slLg3;k}gy#f{5uxc0ggR}oD1ci__jdo#ympTwsg{qdKh67*C(Shju9 zc@4wvhsp;k+?SUl0wH`5{V_g!Fq5uBJUPA4fZKhIE2lFC(H+ReZ##8@N{9MD`5Hi; zsO_8|Te^^aEQjqkA;<imm*1I}uYmkpkY8cSZ_CT;ARmJKHn(B#ZgP_bwI6}}1XlF& zr!DSppR%um{1D_*kVnb?4o}s0%IZDU-*$&QzTxtaXVpU$b)K3B&$B$W0}FO~0x?f* z&{GritlH-BZSz!b^Hgo~RLb8KUx1%V-1JnCpZPMMf%y!~XJ9@9^BI`Wz<dVgGw^>p z1N{CLzpqs)Sf8(yq!4fS|B6=EVpSn5`28+^pNrq$Vl{qmi{I1Y_p<msEG#i)aZ;ZK za_<t!y9ISGLk5+XE4wc$l6!CXQqA){!ZOYCdu+6Rro!?MKg-4?Pit)yUh7WD-ts%H zc*jo5`CX_X9UuK*N=3hJCYCBT_pQyuz8e+9cahvby04)^k9nx**V9Cw4v_IFdVq(* zaUa(0^E+GIzPzU}^l*D7`v-Mtir+URKcfBN*A~fhT)2&ry!>SuesCKh`P^}!ApQpn zzqjplxk(@I9h%;%X`80^X!@Y0k81j7njX`1T+^2|{iUYP_C7CP8Th=KO3&vj)Ze*% z`}Mw6%`K@|GUeOs-{7xVvo0mMbqChh_-i)!*R57~p<OY~jk|u{4`9maJyCwIy%2Yc zX+F?~z>W7tbMNIB;1#)XZ@_q~^gO}mM<KpIy^&yosJk)rc)Xb+w>V$$xGuym$c_I( z9A{gR<L4F&g|8^SNX!<+J^2^bjRxGpo10e*81ci2&qP$+Ef(kY1DH}b-Vk4PrHQcq zMY(y(l)CYBgXgD0d}(feEyOPo#m*ZyW)Gfc3iUBN1WZKL-QtVFDvI;0nYY3Gfl>0V z{LLYc3S^$%hxLdW^QBc_$gsrka^RE}(sy2$ehawEh=<yvvI8Gik^Imm1M)NF@ZT@> z=jQn^@M7_QPy0EiCs6s!1=ycTKh?q)Km}!$BH{^97skVgPXT;ADV3j}Nc|<E{A#6d zeiw`9AEd(EaWw_pRpj`dk@^?S89xhT0_Wyo8E}`FJAS%wp(?{}CFl8d4D*GLu5JO@ zQ10t$_*qO>JNXa_`*5^`o?R8&9}$x{Muom^^L6%s#(Di9pUuJ7Q)qVyjUs(~*J}UY zhrUnOP0~kx%I2QGKa~DWO;vxk1pb=DJ%ZOQeAv!toYyz<StDFk%Q)xy59#=My~Ee# z{lI;5)kQz>#l}3NmmgxNg#SM(;pa)<RYi{1i4uNhfnQZ5o`o0>i_5C#%n#KXcU}iq z5{~h}>p?zWZURonk=J|jxhmRg(fEiyfucHwgv93t^eFHuV}4+bKhb`8eYrvleq6#& z8IB|QX$-IjMSli;%D>O2_*yMKTf)yJI6%e5`Nk6XO~C26IOp4&OX&BMzy~Dm5jX3+ z>C+Dn@Ds`2WD397wTk>M9Xr`=x6(cxY;(cR8N0nJ-h$mXkz_p4Yll;PqBY*#(-lod zBmUZ&P3wv)(XN(G?1D*z`|W5fndrw}mT-5}j-<M~`(a{mHZ*C&OkP#}bg?T~zZ-jq zlF{Cze?!f6n}ptcgN-oYH(m!XJN5>5h3wGoI@)VwW9yk6vNUMb?G^UUhCSPY4fdWL zJ8lUz*-gQ14Ixr2XfRR;$gNAluDfk_a990y$iiJc9btRd9<*WKlMJ_LU}rQIO@zCQ zZ9lm!MET81fq=0~M{n<G?M=z#I9#{Jd-|QO3pZ1#O+#?0_XE);pgCKHoZ@`+z1WpR zkvZCxyN{d=|C%jUj&2pUp*Lgwn!R6pu+1sb8M9Np(TLpU<OrNLjuqb=W=F!wu-YV5 zEcuT8TaHl8{Z@_^ZR}3V4W&qL-0ld+BD7DfU<5>>ZF=~~VUZgJh7u(@6}vkYzc<Fm zhmJW7IwN4-HzxO{IihUo?d1+S{N{RRddlxhbNI<07(I0DTbhD6EpmsKLZzK*g?2eH z?~^MK>#c0S%yAf{qhfm2Tki@?)$X^vC3dvQZEnKf+uw~-3pANfw1aCjoDx04AB!iW z{`OeP-;(OYM%B)UhJxGb*CfO3LdrVAy&b|I>5svmqRE7k+!Iao;`h=5#)d2r?Fy5D zuJv>!g<l>iKdS!rIM`&g58pJOK`Ac#>5q2k8LT4$C(J2RHI*p~u9FqD1qU*&aCc`b zDwH!nj<)b)PVL4#sV^YEA))6PxMX2%rV8KhG3E8A7E4{O6TKQAdWOLEd|$|P1t}Q? zmzRRF37l!q_m50{1=?zFwF%XM!B3fSZlCWnnR5HQ9^~g6>|-}7^o)h=`8f>JQA!R9 zJ<gyi+w0}LxD^;K;W>N0Z)M8QaiAiLcE_x^6E%89!tL{O5vI=gS&!-6u%~A(%=3LP z(?;DA#ZNjMzlOzqsL(NCd%j<0%FltE`Q!c{()Qc5Lw>Hr)TcX4_VnzD+h_Z410xmv zxQG@ps%Xm3+cYX;<vP(cKBm1-+cBLql~H%N7Y{q^`F@@$$IEV*XZo1Kp6@4^RyZDP zar^A=2M&9F?#PthtuPB6E3^Cs80tSCKjG6-O`p^(6Ad#f{t7kI{z<LC)H%&K+gJCW z`S$s_1k)*UZWPWNL(ijvyD)hU5ytz3`Tr$w>NC&upJC%Q?D;vz@vo4#{CHDbo@e{l zAfOQG9Hzqe7h~G~u!3{nzFbXJ-T|Sp%l7=-g#X_NJ}^AKxm_Ly<lk(cpRerGH>5`( zHw)V{Jqw{}F9KS-Mo~+%Onh9?^ixps#qsm~gQe}c9X6x3%tH4&glYAhi0!|eLsW(B zO`03KhHjsBxJm~=*CB#99-cqw`83CFn2RH|iW_naSZ<ef>Gr>vJ?|U8&|%<U#eV_Y C-y917 literal 0 HcmV?d00001 diff --git a/test_vect_type/test b/test_vect_type/test new file mode 100755 index 0000000000000000000000000000000000000000..5949588062bf0a1fc1563ded8c5910811fd42f9d GIT binary patch literal 17728 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 literal 0 HcmV?d00001 diff --git a/test_vect_type/test.f90 b/test_vect_type/test.f90 new file mode 100644 index 0000000..53b966f --- /dev/null +++ b/test_vect_type/test.f90 @@ -0,0 +1,42 @@ +MODULE VECTOR + + IMPLICIT NONE + + TYPE STD_VECTOR + CLASS(*), DIMENSION(:), POINTER :: v_ptr + INTEGER :: v_size_in_array + INTEGER :: v_size_in_memory + integer, dimension(:), allocatable, target :: ptr_int + + CONTAINS + + PROCEDURE :: ALLOC => ALLOCATE_STD_VECTOR + !PROCEDURE :: MODIF => MODIF_STD_VECTOR + !PROCEDURE :: DEALLOC => DEALLOCATE_STD_VECTOR + END TYPE STD_VECTOR + + CONTAINS + + SUBROUTINE ALLOCATE_STD_VECTOR(self, array) + + CLASS(STD_VECTOR), intent(inout) :: self + CLASS(*), intent(in), dimension(:) :: array + + SELECT TYPE(ARRAY) + TYPE IS(INTEGER) + print*,"hello" + ALLOCATE(self%ptr_int, SOURCE=array) + self%v_ptr => ptr_int + SELECT TYPE(self%v_ptr) + TYPE IS(INTEGER) + print*,self%v_ptr + !self%v_ptr = self%v_ptr * 1 + !print*,self%v_ptr + END SELECT + + CLASS DEFAULT + print*,"error, no type" + END SELECT + END SUBROUTINE ALLOCATE_STD_VECTOR + +END MODULE VECTOR diff --git a/test_vect_type/test.o b/test_vect_type/test.o new file mode 100644 index 0000000000000000000000000000000000000000..93eadf953d7493b361fe60a19cb38717677df517 GIT binary patch literal 3672 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 literal 0 HcmV?d00001 diff --git a/test_vect_type/test_prog.f90 b/test_vect_type/test_prog.f90 new file mode 100644 index 0000000..e9e0891 --- /dev/null +++ b/test_vect_type/test_prog.f90 @@ -0,0 +1,26 @@ +program test + +use VECTOR + +implicit none + +integer, dimension(:), allocatable, TARGET :: tester +class(*), dimension(:), pointer :: tester_ptr +type(STD_VECTOR) :: v_tester + +allocate(tester(10)) + +tester_ptr => tester + +!tester(:) = [(i, i=1,10,2)] +tester(:) = (/1,2,3,4,5,6,7,8,9,10/) +!print*,tester + +!v_tester.alloc(tester) +!call alloc(v_tester, tester) +call v_tester%alloc(tester_ptr) + +tester <= v_tester%v_ptr +print*,tester + +end program test diff --git a/test_vect_type/toto.f90 b/test_vect_type/toto.f90 new file mode 100644 index 0000000..63d9426 --- /dev/null +++ b/test_vect_type/toto.f90 @@ -0,0 +1,41 @@ +module toto + + implicit none + + interface totos + + PROCEDURE toto1, toto2 + + end interface totos + + contains + + subroutine toto1(titi) + + integer, intent(inout) :: titi + print*,titi + + end subroutine toto1 + + subroutine toto2(titi) + + real, intent(inout) :: titi + print*,titi + + end subroutine toto2 + +end module toto + +program try + + use toto + + implicit none + + integer :: alpha + real :: beta + + call totos(alpha) + call totos(beta) + +end program try diff --git a/test_vect_type/toto.mod b/test_vect_type/toto.mod new file mode 100644 index 0000000000000000000000000000000000000000..7d8f0f6796e3e49dbd4fc2f08b565b6cc5edca02 GIT binary patch literal 300 zcmV+{0n`2;iwFP!000001HIBsPlGTR2k?78#dB*pXv*7Oj%?J02*p&Y@n{@NNSq`L z{rt9+R-DT`xER{B4-Nc($<xhEDJqe0*tgsF*BU<R?$ESvfc+T5OIJVl^%izryNAB* z+w0wuB0@a4#6WiAA+=SLV4ZQmFsv8?2;G^Tkv+5v1|JA1%2ehIB){e5BfrXc#dzh) zJ5jD}fyNamP?JA-F+8?bu%R|g`bF1YqR<HZV~NgUsT4mjhG;A)Tjx^<+{=|HWtDOE zyD8R|nM0uoDlnMf|50;oS)4@86sGB$0i#B&JP(P;l9g&$##O+{KEX6Cl|}JneyZUc yCLkISwm#pj#dpK}ZwA4V+yRE-e7e54V?!uJ?&44gUB4&<9{L2*jlyJ&0{{R5wvUbg literal 0 HcmV?d00001 diff --git a/test_vect_type/try b/test_vect_type/try new file mode 100755 index 0000000000000000000000000000000000000000..f1745c1e9dbf3650dd10a2657b8d3ddc0f8c94cf GIT binary patch literal 16968 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 literal 0 HcmV?d00001 diff --git a/test_vect_type/vector.mod b/test_vect_type/vector.mod new file mode 100644 index 0000000000000000000000000000000000000000..7d7f6134ab727e52ac16e371678360f5a4edc132 GIT binary patch literal 1786 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 literal 0 HcmV?d00001 -- GitLab