Changeset 148 for codes/icosagcm/trunk/src/transfert_mpi.f90
- Timestamp:
- 03/18/13 15:44:08 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
codes/icosagcm/trunk/src/transfert_mpi.f90
r146 r148 37 37 TYPE(t_request),POINTER :: req_e1_vect(:) 38 38 39 TYPE(t_request),POINTER :: req_i0(:) 40 TYPE(t_request),POINTER :: req_e0_scal(:) 41 TYPE(t_request),POINTER :: req_e0_vect(:) 42 39 43 40 44 CONTAINS … … 69 73 70 74 DO i=ii_begin,ii_end 71 CALL request_add_point(ind,i,jj_begin,req_i1)75 ! CALL request_add_point(ind,i,jj_begin,req_i1) 72 76 ENDDO 73 77 74 78 DO j=jj_begin,jj_end 75 CALL request_add_point(ind,ii_end,j,req_i1)79 ! CALL request_add_point(ind,ii_end,j,req_i1) 76 80 ENDDO 77 81 78 82 DO i=ii_begin,ii_end 79 CALL request_add_point(ind,i,jj_end,req_i1)83 ! CALL request_add_point(ind,i,jj_end,req_i1) 80 84 ENDDO 81 85 82 86 DO j=jj_begin,jj_end 83 CALL request_add_point(ind,ii_begin,j,req_i1)87 ! CALL request_add_point(ind,ii_begin,j,req_i1) 84 88 ENDDO 85 89 … … 87 91 88 92 CALL finalize_request(req_i1) 89 93 94 95 CALL create_request(field_t,req_i0) 96 97 DO ind=1,ndomain 98 CALL swap_dimensions(ind) 99 100 DO i=ii_begin,ii_end 101 CALL request_add_point(ind,i,jj_begin,req_i0) 102 ENDDO 103 104 DO j=jj_begin,jj_end 105 CALL request_add_point(ind,ii_end,j,req_i0) 106 ENDDO 107 108 DO i=ii_begin,ii_end 109 CALL request_add_point(ind,i,jj_end,req_i0) 110 ENDDO 111 112 DO j=jj_begin,jj_end 113 CALL request_add_point(ind,ii_begin,j,req_i0) 114 ENDDO 115 116 ENDDO 117 118 CALL finalize_request(req_i0) 119 120 90 121 CALL create_request(field_u,req_e1_scal) 91 122 DO ind=1,ndomain … … 112 143 113 144 DO i=ii_begin+1,ii_end-1 114 CALL request_add_point(ind,i,jj_begin,req_e1_scal,right)115 CALL request_add_point(ind,i,jj_end,req_e1_scal,right)145 ! CALL request_add_point(ind,i,jj_begin,req_e1_scal,right) 146 ! CALL request_add_point(ind,i,jj_end,req_e1_scal,right) 116 147 ENDDO 117 148 118 149 DO j=jj_begin+1,jj_end-1 119 CALL request_add_point(ind,ii_begin,j,req_e1_scal,rup)120 CALL request_add_point(ind,ii_end,j,req_e1_scal,rup)150 ! CALL request_add_point(ind,ii_begin,j,req_e1_scal,rup) 151 ! CALL request_add_point(ind,ii_end,j,req_e1_scal,rup) 121 152 ENDDO 122 153 123 CALL request_add_point(ind,ii_begin+1,jj_begin,req_e1_scal,left)124 CALL request_add_point(ind,ii_begin,jj_begin+1,req_e1_scal,ldown)125 CALL request_add_point(ind,ii_begin+1,jj_end,req_e1_scal,left)126 CALL request_add_point(ind,ii_end,jj_begin+1,req_e1_scal,ldown)154 ! CALL request_add_point(ind,ii_begin+1,jj_begin,req_e1_scal,left) 155 ! CALL request_add_point(ind,ii_begin,jj_begin+1,req_e1_scal,ldown) 156 ! CALL request_add_point(ind,ii_begin+1,jj_end,req_e1_scal,left) 157 ! CALL request_add_point(ind,ii_end,jj_begin+1,req_e1_scal,ldown) 127 158 128 159 ENDDO 129 160 130 161 CALL finalize_request(req_e1_scal) 162 163 164 CALL create_request(field_u,req_e0_scal) 165 DO ind=1,ndomain 166 CALL swap_dimensions(ind) 167 168 169 DO i=ii_begin+1,ii_end-1 170 CALL request_add_point(ind,i,jj_begin,req_e0_scal,right) 171 CALL request_add_point(ind,i,jj_end,req_e0_scal,right) 172 ENDDO 173 174 DO j=jj_begin+1,jj_end-1 175 CALL request_add_point(ind,ii_begin,j,req_e0_scal,rup) 176 CALL request_add_point(ind,ii_end,j,req_e0_scal,rup) 177 ENDDO 178 179 CALL request_add_point(ind,ii_begin+1,jj_begin,req_e0_scal,left) 180 CALL request_add_point(ind,ii_begin,jj_begin+1,req_e0_scal,ldown) 181 CALL request_add_point(ind,ii_begin+1,jj_end,req_e0_scal,left) 182 CALL request_add_point(ind,ii_end,jj_begin+1,req_e0_scal,ldown) 183 184 ENDDO 185 186 CALL finalize_request(req_e0_scal) 187 188 131 189 132 190 CALL create_request(field_u,req_e1_vect,.TRUE.) … … 154 212 155 213 DO i=ii_begin+1,ii_end-1 156 CALL request_add_point(ind,i,jj_begin,req_e1_vect,right)157 CALL request_add_point(ind,i,jj_end,req_e1_vect,right)214 ! CALL request_add_point(ind,i,jj_begin,req_e1_vect,right) 215 ! CALL request_add_point(ind,i,jj_end,req_e1_vect,right) 158 216 ENDDO 159 217 160 218 DO j=jj_begin+1,jj_end-1 161 CALL request_add_point(ind,ii_begin,j,req_e1_vect,rup)162 CALL request_add_point(ind,ii_end,j,req_e1_vect,rup)219 ! CALL request_add_point(ind,ii_begin,j,req_e1_vect,rup) 220 ! CALL request_add_point(ind,ii_end,j,req_e1_vect,rup) 163 221 ENDDO 164 222 165 CALL request_add_point(ind,ii_begin+1,jj_begin,req_e1_vect,left) 166 CALL request_add_point(ind,ii_begin,jj_begin+1,req_e1_vect,ldown) 167 CALL request_add_point(ind,ii_begin+1,jj_end,req_e1_vect,left) 168 CALL request_add_point(ind,ii_end,jj_begin+1,req_e1_vect,ldown) 169 223 ! CALL request_add_point(ind,ii_begin+1,jj_begin,req_e1_vect,left) 224 ! CALL request_add_point(ind,ii_begin,jj_begin+1,req_e1_vect,ldown) 225 ! CALL request_add_point(ind,ii_begin+1,jj_end,req_e1_vect,left) 226 ! CALL request_add_point(ind,ii_end,jj_begin+1,req_e1_vect,ldown) 170 227 171 228 ENDDO 172 229 173 230 CALL finalize_request(req_e1_vect) 231 232 233 CALL create_request(field_u,req_e0_vect,.TRUE.) 234 DO ind=1,ndomain 235 CALL swap_dimensions(ind) 236 237 DO i=ii_begin+1,ii_end-1 238 CALL request_add_point(ind,i,jj_begin,req_e0_vect,right) 239 CALL request_add_point(ind,i,jj_end,req_e0_vect,right) 240 ENDDO 241 242 DO j=jj_begin+1,jj_end-1 243 CALL request_add_point(ind,ii_begin,j,req_e0_vect,rup) 244 CALL request_add_point(ind,ii_end,j,req_e0_vect,rup) 245 ENDDO 246 247 CALL request_add_point(ind,ii_begin+1,jj_begin,req_e0_vect,left) 248 CALL request_add_point(ind,ii_begin,jj_begin+1,req_e0_vect,ldown) 249 CALL request_add_point(ind,ii_begin+1,jj_end,req_e0_vect,left) 250 CALL request_add_point(ind,ii_end,jj_begin+1,req_e0_vect,ldown) 251 252 ENDDO 253 254 CALL finalize_request(req_e0_vect) 255 174 256 175 257 END SUBROUTINE init_transfert … … 533 615 USE mpi_mod 534 616 USE mpipara 617 USE trace 535 618 IMPLICIT NONE 536 619 TYPE(t_field),POINTER :: field(:) … … 553 636 INTEGER :: dim3,dim4 554 637 638 CALL trace_start("transfert_mpi") 639 555 640 IF (field(1)%data_type==type_real) THEN 556 641 IF (field(1)%ndim==2) THEN … … 747 832 748 833 ENDIF 834 835 CALL trace_end("transfert_mpi") 749 836 750 837 END SUBROUTINE transfert_request_mpi
Note: See TracChangeset
for help on using the changeset viewer.