optim3_plain=.TRUE.!-- celle là est particulièrement efficace
optim4_plain=.TRUE.
optim2_plain=.FALSE.!-- ces 2 optimisations là mettre MHD en l'air, et pourtant elles sont meilleures en précusion, ce qui ne saute pas aux yeux au niveau des résidus %%%%%%
optim4_plain=.FALSE.
optim3_plain=.FALSE.!-- cette optimisation met MHD en l'air uniquement en -O5, pas en -O2
ENDIF
Nsize=SIZE(Mat,dim=1)
mat2=Mat
CALLludcmp(mat2,Nsize,indx,d)!-- indx OUT
DOj=1,Nsize
col=0.0
col(j)=1.0
CALLluksb(mat2,Nsize,indx,col)!-- col IN OUT; indx IN
Mat1(:,j)=col(:)
ENDDO
CONTAINS
SUBROUTINEludcmp(mat3,Nsize,indx,d)
CHARACTER(LEN=*),PARAMETER::mod_name="ludcmp"
INTEGER,INTENT(IN)::Nsize
REAL(DP),DIMENSION(Nsize,Nsize),INTENT(INOUT)::mat3!-- Passer en :,: pose des pbs avec le -O5 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
INTEGER,DIMENSION(Nsize),INTENT(OUT)::indx!-- Passer en :,: pose des pbs avec le -O5 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
REAL(DP),DIMENSION(Nsize,Nsize),INTENT(IN)::mat2!-- Passer en :,: pose des pbs avec le -O5 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
INTEGER,DIMENSION(Nsize),INTENT(IN)::indx!-- Passer en :,: pose des pbs avec le -O5 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
REAL(DP),DIMENSION(Nsize),INTENT(INOUT)::col!-- Passer en :,: pose des pbs avec le -O5 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%