PROGRAM minval_example IMPLICIT NONE ! integer, parameter :: rp = 8 ! type phy real(rp), dimension(:,:), pointer :: v,c,p,T,H,Mach,S end type phy type(phy), save :: phys ! real(rp), dimension(:,:,:), pointer :: U ! real(rp), dimension(:), allocatable :: bp, bm !! real(rp), dimension(5,2,3) :: vect1,vect2 ! real(rp) :: a ! ,b integer :: nx, i read (5,*) nx allocate (phys%p(nx,3), phys%v(nx,3), phys%c(nx,3), phys%T(nx,3), phys%H(nx,3), phys%Mach(nx,3), phys%S(nx,3) ) allocate (bp(2:nx), bm(2:nx), U(3,nx,3) ) ! a = minval(vect1(4,1,1:3)-b*vect2(4,2,1:3) ) do i=2,nx ! size(W,2) a = max(maxval(U(1,i-1,:)*phys%c(i-1,:)),maxval(U(1,i,:)*phys%c(i,:))) bp(i) = maxval (phys%v(i ,:) + a / U(1,i ,:) ) bm(i) = minval (phys%v(i-1,:) - a / U(1,i-1,:) ) end do write (6,*) bp(3), bm(6), a deallocate(bp, bm, phys%p, phys%v, phys%c, phys%T, phys%H, phys%Mach, phys%S, U) STOP END PROGRAM minval_example