- Timestamp:
- 2016-10-18T15:32:04+02:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2016/dev_r6519_HPC_4/NEMOGCM/NEMO/LIM_SRC_2/limhdf_2.F90
r4990 r7037 70 70 IF( lk_mpp ) CALL mpp_sum( ierr ) 71 71 IF( ierr /= 0 ) CALL ctl_stop( 'STOP', 'lim_hdf_2 : unable to allocate standard arrays' ) 72 !$OMP PARALLEL DO schedule(static) private(jj, ji) 72 73 DO jj = 2, jpjm1 73 74 DO ji = fs_2 , fs_jpim1 ! vector opt. … … 83 84 zeps = 2._wp * epsi04 84 85 ! 86 !$OMP PARALLEL WORKSHARE 85 87 ztab0(:, : ) = ptab(:,:) ! Arrays initialization 88 !$OMP END PARALLEL WORKSHARE 86 89 zdiv0(:, 1 ) = 0._wp 87 90 zdiv0(:,jpj) = 0._wp 88 zflu (jpi,:) = 0._wp 91 zflu (jpi,:) = 0._wp 89 92 zflv (jpi,:) = 0._wp 90 93 zdiv0(1, :) = 0._wp … … 98 101 iter = iter + 1 ! incrementation of the sub-time step number 99 102 ! 103 !$OMP PARALLEL 104 !$OMP DO schedule(static) private(jj, ji) 100 105 DO jj = 1, jpjm1 ! diffusive fluxes in U- and V- direction 101 106 DO ji = 1 , fs_jpim1 ! vector opt. … … 105 110 END DO 106 111 ! 112 !$OMP DO schedule(static) private(jj, ji) 107 113 DO jj= 2, jpjm1 ! diffusive trend : divergence of the fluxes 108 114 DO ji = fs_2 , fs_jpim1 ! vector opt. … … 111 117 END DO 112 118 END DO 119 !$OMP END DO NOWAIT 120 !$OMP END PARALLEL 113 121 ! 114 IF( iter == 1 ) zdiv0(:,:) = zdiv(:,:) ! save the 1st evaluation of the diffusive trend in zdiv0 122 IF( iter == 1 ) THEN 123 !$OMP PARALLEL DO schedule(static) private(jj, ji) 124 DO jj= 2, jpjm1 ! diffusive trend : divergence of the fluxes 125 DO ji = fs_2 , fs_jpim1 ! vector opt. 126 zdiv0(ji,jj) = zdiv(ji,jj) ! save the 1st evaluation of the diffusive trend in zdiv0 127 END DO 128 END DO 129 END IF 115 130 ! 131 !$OMP PARALLEL DO schedule(static) private(jj,ji,zrlxint) 116 132 DO jj = 2, jpjm1 ! iterative evaluation 117 133 DO ji = fs_2 , fs_jpim1 ! vector opt. … … 127 143 zconv = 0._wp ! convergence test 128 144 145 !$OMP PARALLEL DO schedule(static) private(jj,ji) REDUCTION(MAX:zconv) 129 146 DO jj = 2, jpjm1 130 147 DO ji = 2, jpim1 … … 134 151 IF( lk_mpp ) CALL mpp_max( zconv ) ! max over the global domain 135 152 153 !$OMP PARALLEL WORKSHARE 136 154 ptab(:,:) = zrlx(:,:) 155 !$OMP END PARALLEL WORKSHARE 137 156 ! 138 157 END DO ! end of sub-time step loop 139 158 140 159 IF(ln_ctl) THEN 160 !$OMP PARALLEL WORKSHARE 141 161 zrlx(:,:) = ptab(:,:) - ztab0(:,:) 162 !$OMP END PARALLEL WORKSHARE 142 163 WRITE(charout,FMT="(' lim_hdf : zconv =',D23.16, ' iter =',I4,2X)") zconv, iter 143 164 CALL prt_ctl( tab2d_1=zrlx, clinfo1=charout )
Note: See TracChangeset
for help on using the changeset viewer.