Note: constructors like "(/1,2/)" ARE allowed in f90? b(2,3) 1 3 5 2 4 6 isum=sum(b)= 21 isum = sum("b(:,1:3:2)")= 14 isum = sum("b(:,1:3:2)")= 14 CAUTION: "dim=", etc., markers= NOT allowed in intrinsics s2 = sum(b,2)= 9 12 s3 = sum(b,1)= 3 7 11 CAUTION: "mask=" marker= STILL not allowed either. s3 = sum(b,1,"b.gt.3") = 0 4 11 s3 = sum(b,1,"b.gt.3") = 0 4 11 s2 = sum(b,2,b.gt.3) = 5 10 isum = sum(b,b.gt.3) = 15 isum = sum(b,mask=b.gt.3) = 15 CAUTION: If "sum(array[dim[,mask]])", use zero (0) for [dim] for whole array when there is a mask. imax = maxval(b)= 6 s3 = maxval(b,1)= 2 4 6 s2 = maxval(b,2)= 5 6 imin = minval(b)= 1 s2 = product(b,2)= 15 48 idot = dot_product(b(1,:),b(2,: 44 CAUTION: cf77v60 spelling with "_" different from cmfortran. CAUTION: Array syntax not allowed in actual arguments. c=matmul(b(:,1:2),b(:,2:3))= 15 23 22 34 ct = transpose(b)= 1 2 3 4 5 6 CAUTION: Arg order "cshift(array,shift[,dim])", not cmfortran. a = cshift(a,1,2)= 3 5 1 4 6 2 a = cshift(b,-1,2)= 5 1 3 6 2 4 a = cshift(b,(/1,2/),2)= 3 5 1 6 2 4 CAUTION: array sections not allowed in print u = laplace-shift(u)= 57; av-di 0.494E-02 2.000 2.000 2.000 2.000 2.000 2.000 2.000 1.000 2.000 0.355 0.187 0.186 0.186 0.186 0.266 1.000 2.000 0.187 0.003 0.001 0.001 0.002 0.094 1.000 2.000 0.186 0.001 0.000 0.000 0.001 0.093 1.000 2.000 0.186 0.001 0.000 0.000 0.001 0.093 1.000 2.000 0.187 0.003 0.001 0.001 0.002 0.094 1.000 2.000 0.355 0.187 0.186 0.186 0.186 0.266 1.000 2.000 2.000 2.000 2.000 2.000 2.000 2.000 1.000 CAUTION: Arg order "eoshift(array,shift[,boundary[,dim]])", not cmf. a = eoshift(b,-1,0,1)= 0 0 0 1 3 5 a = eoshift(b,(/-1,0/),(/7,8/),2)= 7 1 3 2 4 6 a = eoshift(b,2,2)= 5 0 0 6 0 0 as = 2 3 4 5 cs = spread(as,1,3)= 2 3 4 5 2 3 4 5 2 3 4 5 at = 2 3 4 cs = spread(at,2,4)= 2 2 2 2 3 3 3 3 4 4 4 4 F90 random_number DOES work with f90, unlike cf77 uniform random variate = 0.580114 uniform random variate = 0.950513 uniform random variate = 0.786371