From: Zheng Gengbin <[email-masked]>
Date: Wed, 11 Jun 1997 09:25:53 +0800 (EAT)

I have a question here :
see this example ,
	
      PROGRAM adi
          PARAMETER (NN=100)
      REAL                  :: a,b,brhs,c
      REAL,DIMENSION(NN,NN) :: beta,psi,zeta,rhs,wspace
!HPF$ PROCESSORS procs(4)
!HPF$ TEMPLATE tplate(NN)
!HPF$ DISTRIBUTE tplate(BLOCK)
!HPF$ ALIGN beta(*,:)   WITH tplate(:)
!HPF$ ALIGN psi(*,:)    WITH tplate(:)
!HPF$ ALIGN zeta(*,:)   WITH tplate(:)
!HPF$ ALIGN rhs(*,:)    WITH tplate(:)
!HPF$ ALIGN wspace(*,:) WITH tplate(:)

        forall (i=j1:jN) psi(j1,i) = (rhs(j1,i) - a*psi(1,i))/b

end

	The lhs of the assign statement have a scalar index j1 , which
is not an forall index . 

the node program is :

         pcrc_irg0 = pcrc_new_range_loop (j1,jN,1,1,0,pcrc_range (pcrc_d&
     &ad_psi,1))
         call pcrc_loop_bounds (pcrc_irg0,pcrc_lil_i,pcrc_liu_i,pcrc_lis&
     &_i)
         pcrc_sdd0 = pcrc_new_array_section (1,pcrc_dad_psi)
         call pcrc_set_array_scalar (pcrc_sdd0,j1,pcrc_dad_psi,1)
         call pcrc_set_array_triplet (pcrc_sdd0,1,1*j1,1*jN,1,pcrc_dad_p&
     &si,2)
         call pcrc_coef (pcrc_dad_psi,2,j1,jN,1,1,0,0,pcrc_u00,pcrc_v00)

         pcrc_sdd1 = pcrc_new_array_section (1,pcrc_dad_rhs)
         call pcrc_set_array_scalar (pcrc_sdd1,j1,pcrc_dad_rhs,1)
         call pcrc_set_array_triplet (pcrc_sdd1,1,1*j1,1*jN,1,pcrc_dad_r&
     &hs,2)
         pcrc_tdd1 = pcrc_new_array_section (1,pcrc_dad_psi)
         call pcrc_set_array_scalar (pcrc_tdd1,j1,pcrc_dad_psi,1)
         call pcrc_set_array_triplet (pcrc_tdd1,1,1*j1,1*jN,1,pcrc_dad_p&
     &si,2)
         pcrc_tbs1 = pcrc_real_alloc (pcrc_size (pcrc_tdd1))
         call pcrc_reset_array_base (pcrc_tdd1,pcrc_real_stack(pcrc_tbs1&
     &))
         call pcrc_remap (pcrc_tdd1,pcrc_sdd1)

         pcrc_sdd3 = pcrc_new_array_section (1,pcrc_dad_psi)
         call pcrc_set_array_scalar (pcrc_sdd3,1,pcrc_dad_psi,1)
         call pcrc_set_array_triplet (pcrc_sdd3,1,1*j1,1*jN,1,pcrc_dad_p&
     &si,2)
         pcrc_tdd3 = pcrc_new_array_section (1,pcrc_dad_psi)
         call pcrc_set_array_scalar (pcrc_tdd3,j1,pcrc_dad_psi,1)
         call pcrc_set_array_triplet (pcrc_tdd3,1,1*j1,1*jN,1,pcrc_dad_p&
     &si,2)
         pcrc_tbs3 = pcrc_real_alloc (pcrc_size (pcrc_tdd3))
         call pcrc_reset_array_base (pcrc_tdd3,pcrc_real_stack(pcrc_tbs3&
     &))
         call pcrc_remap (pcrc_tdd3,pcrc_sdd3)
        if (pcrc_on (pcrc_group (pcrc_sdd0))) then
            do  i=0,(pcrc_liu_i-pcrc_lil_i)/pcrc_lis_i,1
               pcrc_sdx0 = pcrc_v00+pcrc_u00*i
               psi(pcrc_sdx0) = (pcrc_real_stack(pcrc_tbs1+pcrc_sdx0)-(a&
     &*pcrc_real_stack(pcrc_tbs3+pcrc_sdx0)))/b
            enddo
      endif

	I don't know this time the pcrc_sdx0 can be dealt with properly.
When I print the value of pcrc_sdx0 , I found some very large number pronted.

Gengbin