C+ C NAME: C ArrR4Copy2 C PURPOSE: C Copy two same-size real*4 arrays C CALLING SEQUENCE: subroutine ArrR4Copy2(N,A1,A2,C1,C2) C CALLS: C BadR4 C SEE ALSO: C Array_Info C- integer N real A1(*) real A2(*) real C1(*) real C2(*) !$omp parallel private(bad,iA,iC,I,I1,I2,I3) bad = BadR4() iA = loc(A1) iC = loc(C1) if (iA .ne. iC) then ! Source .ne. Destination call ArrayLoc2(iA,iC,abs(N),4,I1,I2,I3)! Set direction of DO-loop if (N .lt. 0) then !$omp do schedule(static) do I=I1,I2,I3 if (A1(I) .ne. bad) C1(I) = A1(I) end do !$omp end do nowait else !$omp do schedule(static) do I=I1,I2,I3 C1(I) = A1(I) end do !$omp end do nowait end if end if iA = loc(A2) iC = loc(C2) if (iA .ne. iC) then ! Source .ne. Destination call ArrayLoc2(iA,iC,abs(N),4,I1,I2,I3)! Set direction of DO-loop if (N .lt. 0) then !$omp do schedule(static) do I=I1,I2,I3 if (A2(I) .ne. bad) C2(I) = A2(I) end do !$omp end do nowait else !$omp do schedule(static) do I=I1,I2,I3 C2(I) = A2(I) end do !$omp end do nowait end if end if !$omp end parallel return end