- Timestamp:
- 04/09/18 15:22:10 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
codes/icosagcm/devel/src/unstructured/transfer_unstructured.F90
r684 r688 4 4 SAVE 5 5 PRIVATE 6 7 #include "unstructured.h90" 6 8 7 9 INCLUDE 'mpif.h' … … 47 49 SUBROUTINE copy_in(lldata, ndata, llbuf, nbuf, cells, data, buf) 48 50 INTEGER :: ndata, lldata, nbuf, llbuf, cells(nbuf), i 49 REAL(C_DOUBLE):: data(lldata,ndata), buf(llbuf,nbuf)51 NUM :: data(lldata,ndata), buf(llbuf,nbuf) 50 52 !$OMP DO 51 53 DO i=1,nbuf … … 57 59 SUBROUTINE copy_out(lldata, ndata, llbuf, nbuf, cells, data, buf) 58 60 INTEGER :: ndata, lldata, nbuf, llbuf, cells(nbuf), i 59 REAL(C_DOUBLE):: data(lldata,ndata), buf(llbuf,nbuf)61 NUM :: data(lldata,ndata), buf(llbuf,nbuf) 60 62 !$OMP DO SCHEDULE(STATIC) 61 63 DO i=1,nbuf … … 67 69 SUBROUTINE update_halo(index, data) 68 70 INTEGER :: index ! transfer_XXX, cf data_unstructured.F90 69 REAL(C_DOUBLE):: data(:,:)71 NUM :: data(:,:) 70 72 TYPE(Halo_transfer), POINTER :: halo 71 REAL(C_DOUBLE), POINTER :: buf(:,:)73 NUM, POINTER :: buf(:,:) 72 74 INTEGER :: req(send_info(index)%ranks+recv_info(index)%ranks), & 73 75 status(MPI_STATUS_SIZE, send_info(index)%ranks+recv_info(index)%ranks) … … 85 87 num = halo%num(i) 86 88 ireq = ireq+1 87 call MPI_ISEND(buf(1,istart), llbuf*num, MPI_ REAL8, halo%rank(i), &89 call MPI_ISEND(buf(1,istart), llbuf*num, MPI_NUM, halo%rank(i), & 88 90 42, MPI_COMM_WORLD, req(ireq), ierr) 89 91 istart = istart+num … … 98 100 num = halo%num(i) 99 101 ireq = ireq+1 100 call MPI_IRECV(buf(1,istart), llbuf*num, MPI_ REAL8, halo%rank(i), &102 call MPI_IRECV(buf(1,istart), llbuf*num, MPI_NUM, halo%rank(i), & 101 103 42, MPI_COMM_WORLD, req(ireq), ierr) 102 104 istart = istart+num … … 111 113 SUBROUTINE update_halo_c(index, lldata, ndata, data) BIND(C, name='dynamico_update_halo') 112 114 INTEGER, VALUE :: index, lldata, ndata 113 REAL(C_DOUBLE):: data(lldata, ndata)115 NUM :: data(lldata, ndata) 114 116 CALL update_halo(index, data) 115 117 END SUBROUTINE update_halo_c
Note: See TracChangeset
for help on using the changeset viewer.