Ignore:
Timestamp:
04/09/18 15:22:10 (6 years ago)
Author:
dubos
Message:

devel/unstructured : select double or single precision for physical quantities

File:
1 edited

Legend:

Unmodified
Added
Removed
  • codes/icosagcm/devel/src/unstructured/transfer_unstructured.F90

    r684 r688  
    44  SAVE 
    55  PRIVATE 
     6 
     7#include "unstructured.h90" 
    68 
    79  INCLUDE 'mpif.h' 
     
    4749  SUBROUTINE copy_in(lldata, ndata, llbuf, nbuf, cells, data, buf) 
    4850    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) 
    5052    !$OMP DO 
    5153    DO i=1,nbuf 
     
    5759  SUBROUTINE copy_out(lldata, ndata, llbuf, nbuf, cells, data, buf) 
    5860    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) 
    6062    !$OMP DO SCHEDULE(STATIC) 
    6163    DO i=1,nbuf 
     
    6769  SUBROUTINE update_halo(index, data) 
    6870    INTEGER :: index ! transfer_XXX, cf data_unstructured.F90 
    69     REAL(C_DOUBLE) :: data(:,:)     
     71    NUM :: data(:,:)     
    7072    TYPE(Halo_transfer), POINTER :: halo 
    71     REAL(C_DOUBLE), POINTER :: buf(:,:) 
     73    NUM, POINTER :: buf(:,:) 
    7274    INTEGER :: req(send_info(index)%ranks+recv_info(index)%ranks), & 
    7375         status(MPI_STATUS_SIZE, send_info(index)%ranks+recv_info(index)%ranks) 
     
    8587       num = halo%num(i) 
    8688       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), & 
    8890            42, MPI_COMM_WORLD, req(ireq), ierr) 
    8991       istart = istart+num 
     
    98100       num = halo%num(i) 
    99101       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), & 
    101103            42, MPI_COMM_WORLD, req(ireq), ierr) 
    102104       istart = istart+num 
     
    111113  SUBROUTINE update_halo_c(index, lldata, ndata, data) BIND(C, name='dynamico_update_halo') 
    112114    INTEGER, VALUE :: index, lldata, ndata 
    113     REAL(C_DOUBLE) :: data(lldata, ndata) 
     115    NUM :: data(lldata, ndata) 
    114116    CALL update_halo(index, data) 
    115117  END SUBROUTINE update_halo_c 
Note: See TracChangeset for help on using the changeset viewer.