1 !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv 2 ! 3 ! Subroutine: CFUPDATEOLD 4 ! Purpose: Update old arrays to store current time step information 5 ! before the new arrays are updated 6 ! 7 ! Author: Jay Boyalakuntla Date: 12-Jun-04 8 ! Reviewer: Date: 9 ! 10 !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 11 12 SUBROUTINE CFUPDATEOLD 13 14 !----------------------------------------------- 15 ! Modules 16 !----------------------------------------------- 17 USE discretelement, only: max_pip, des_pos_old, des_pos_new, des_vel_old, des_vel_new, omega_old, omega_new 18 USE functions, ONLY: IS_NONEXISTENT, IS_GHOST 19 USE run 20 IMPLICIT NONE 21 !----------------------------------------------- 22 ! Local variables 23 !----------------------------------------------- 24 ! Loop counters (no. particles) 25 INTEGER LL 26 !----------------------------------------------- 27 28 !!$omp parallel do if(max_pip .ge. 10000) default(shared) & 29 !!$omp private(ll) & 30 !!$omp schedule (guided,50) 31 DO LL = 1, MAX_PIP 32 IF(IS_NONEXISTENT(LL) .or. IS_GHOST(ll)) CYCLE 33 34 DES_POS_OLD(LL,:) = DES_POS_NEW(LL,:) 35 DES_VEL_OLD(LL,:) = DES_VEL_NEW(LL,:) 36 OMEGA_OLD(LL,:) = OMEGA_NEW(LL,:) 37 38 ENDDO 39 !!$omp end parallel do 40 41 RETURN 42 END SUBROUTINE CFUPDATEOLD 43