509 |
do l=1,llm |
do l=1,llm |
510 |
do ij=iip2,ip1jm |
do ij=iip2,ip1jm |
511 |
zdq=qd(ij,l)-qg(ij,l) |
zdq=qd(ij,l)-qg(ij,l) |
|
c if((qd(ij,l)-q(ij,l))*(q(ij,l)-qg(ij,l)).lt.0.) then |
|
|
c print*,'probleme au point ij=',ij,' l=',l |
|
|
c print*,qd(ij,l),q(ij,l),qg(ij,l) |
|
|
c qd(ij,l)=q(ij,l) |
|
|
c qg(ij,l)=q(ij,l) |
|
|
c endif |
|
512 |
if(abs(zdq).gt.prec) then |
if(abs(zdq).gt.prec) then |
513 |
zsigd(ij,l)=(q(ij,l)-qg(ij,l))/zdq |
zsigd(ij,l)=(q(ij,l)-qg(ij,l))/zdq |
514 |
zsigg(ij,l)=1.-zsigd(ij,l) |
zsigg(ij,l)=1.-zsigd(ij,l) |
|
c if(.not.(zsigd(ij,l).ge.0..and.zsigd(ij,l).le.1. .and. |
|
|
c s zsigg(ij,l).ge.0..or.zsigg(ij,l).le.1.) ) then |
|
|
c print*,'probleme au point ij=',ij,' l=',l |
|
|
c print*,'sigg=',zsigg(ij,l),' sigd=',zsigd(ij,l) |
|
|
c print*,'q d,c,g ',qd(ij,l),q(ij,l),qg(ij,l),zdq |
|
|
c stop |
|
|
c endif |
|
515 |
else |
else |
516 |
zsigd(ij,l)=0.5 |
zsigd(ij,l)=0.5 |
517 |
zsigg(ij,l)=0.5 |
zsigg(ij,l)=0.5 |
560 |
s +(zsig-zsigp)*(zq+zz*(zqm-zq)) ) |
s +(zsig-zsigp)*(zq+zz*(zqm-zq)) ) |
561 |
endif |
endif |
562 |
endif |
endif |
|
c if(zsig.lt.0.) then |
|
|
c print*,'au point ij=',ij,' l=',l,' sig=',zsig |
|
|
c stop |
|
|
c endif |
|
563 |
enddo |
enddo |
564 |
enddo |
enddo |
565 |
|
|
602 |
endif |
endif |
603 |
enddo |
enddo |
604 |
niju=iju |
niju=iju |
|
c print*,'niju,nl',niju,nl(l) |
|
605 |
|
|
606 |
c traitement des mailles |
c traitement des mailles |
607 |
do iju=1,niju |
do iju=1,niju |
748 |
do l=1,llm |
do l=1,llm |
749 |
do ij=1,ip1jmp1 |
do ij=1,ip1jmp1 |
750 |
zdq=qn(ij,l)-qs(ij,l) |
zdq=qn(ij,l)-qs(ij,l) |
|
c if((qn(ij,l)-q(ij,l))*(q(ij,l)-qs(ij,l)).lt.0.) then |
|
|
c print*,'probleme au point ij=',ij,' l=',l,' advnqx' |
|
|
c print*,qn(ij,l),q(ij,l),qs(ij,l) |
|
|
c qn(ij,l)=q(ij,l) |
|
|
c qs(ij,l)=q(ij,l) |
|
|
c endif |
|
751 |
if(abs(zdq).gt.prec) then |
if(abs(zdq).gt.prec) then |
752 |
zsign(ij)=(q(ij,l)-qs(ij,l))/zdq |
zsign(ij)=(q(ij,l)-qs(ij,l))/zdq |
753 |
zsigs(ij)=1.-zsign(ij) |
zsigs(ij)=1.-zsign(ij) |
|
c if(.not.(zsign(ij).ge.0..and.zsign(ij).le.1. .and. |
|
|
c s zsigs(ij).ge.0..or.zsigs(ij).le.1.) ) then |
|
|
c print*,'probleme au point ij=',ij,' l=',l |
|
|
c print*,'sigs=',zsigs(ij),' sign=',zsign(ij) |
|
|
c stop |
|
|
c endif |
|
754 |
else |
else |
755 |
zsign(ij)=0.5 |
zsign(ij)=0.5 |
756 |
zsigs(ij)=0.5 |
zsigs(ij)=0.5 |
863 |
do l=1,llm |
do l=1,llm |
864 |
do ij=1,ip1jmp1 |
do ij=1,ip1jmp1 |
865 |
zdq=qb(ij,l)-qh(ij,l) |
zdq=qb(ij,l)-qh(ij,l) |
|
c if((qh(ij,l)-q(ij,l))*(q(ij,l)-qb(ij,l)).lt.0.) then |
|
|
c print*,'probleme au point ij=',ij,' l=',l |
|
|
c print*,qh(ij,l),q(ij,l),qb(ij,l) |
|
|
c qh(ij,l)=q(ij,l) |
|
|
c qb(ij,l)=q(ij,l) |
|
|
c endif |
|
|
|
|
866 |
if(abs(zdq).gt.prec) then |
if(abs(zdq).gt.prec) then |
867 |
zsigb(ij,l)=(q(ij,l)-qh(ij,l))/zdq |
zsigb(ij,l)=(q(ij,l)-qh(ij,l))/zdq |
868 |
zsigh(ij,l)=1.-zsigb(ij,l) |
zsigh(ij,l)=1.-zsigb(ij,l) |
874 |
enddo |
enddo |
875 |
enddo |
enddo |
876 |
|
|
|
c print*,'ok1' |
|
877 |
c calcul de la pente maximum dans la maille en valeur absolue |
c calcul de la pente maximum dans la maille en valeur absolue |
878 |
do l=2,llm |
do l=2,llm |
879 |
do ij=1,ip1jmp1 |
do ij=1,ip1jmp1 |
917 |
masse(ij,l)=new_m |
masse(ij,l)=new_m |
918 |
enddo |
enddo |
919 |
enddo |
enddo |
920 |
c print*,'ok3' |
|
|
RETURN |
|
921 |
END |
END |