Ignore:
Timestamp:
07/25/18 13:57:35 (6 years ago)
Author:
ymipsl
Message:

Adding halo transfer for scalar field ad vorticity point.
=> Use request "req_z1_scal" with transfer function

YM

File:
1 edited

Legend:

Unmodified
Added
Removed
  • codes/icosagcm/trunk/src/parallel/transfert_mpi.f90

    r667 r711  
    4949  TYPE(t_request),SAVE,POINTER :: req_e1_scal(:) 
    5050  TYPE(t_request),SAVE,POINTER :: req_e1_vect(:) 
     51  TYPE(t_request),SAVE,POINTER :: req_z1_scal(:) 
    5152   
    5253  TYPE(t_request),SAVE,POINTER :: req_i0(:) 
     
    267268    CALL finalize_request(req_e0_vect) 
    268269 
     270    CALL create_request(field_z,req_z1_scal) 
     271    DO ind=1,ndomain 
     272      CALL swap_dimensions(ind) 
     273      DO i=ii_begin,ii_end 
     274        CALL request_add_point(ind,i,jj_begin-1,req_z1_scal,vrup) 
     275        CALL request_add_point(ind,i+1,jj_begin-1,req_z1_scal,vup) 
     276      ENDDO 
     277 
     278      DO j=jj_begin,jj_end 
     279        CALL request_add_point(ind,ii_end+1,j,req_z1_scal,vlup) 
     280      ENDDO     
     281      DO j=jj_begin,jj_end 
     282        CALL request_add_point(ind,ii_end+1,j-1,req_z1_scal,vup) 
     283      ENDDO     
     284     
     285      DO i=ii_begin,ii_end 
     286        CALL request_add_point(ind,i,jj_end+1,req_z1_scal,vdown) 
     287        CALL request_add_point(ind,i-1,jj_end+1,req_z1_scal,vrdown) 
     288      ENDDO     
     289 
     290      DO j=jj_begin,jj_end 
     291        CALL request_add_point(ind,ii_begin-1,j,req_z1_scal,vrup) 
     292      ENDDO    
     293      DO j=jj_begin,jj_end 
     294        CALL request_add_point(ind,ii_begin-1,j,req_z1_scal,vrdown) 
     295      ENDDO    
     296 
     297    ENDDO 
     298 
     299    CALL finalize_request(req_z1_scal) 
    269300 
    270301  END SUBROUTINE init_transfert 
     
    420451        IF (.NOT. PRESENT(pos)) STOP 'argument request_add_point non conforme' 
    421452 
    422         src_domain=domain(ind)%assign_domain(i,j) 
     453        src_domain=domain(ind)%vertex_assign_domain(pos-1,i,j) 
    423454        src_iim=domain_glo(src_domain)%iim 
    424         src_i=domain(ind)%assign_i(i,j) 
    425         src_j=domain(ind)%assign_j(i,j) 
     455        src_i=domain(ind)%vertex_assign_i(pos-1,i,j) 
     456        src_j=domain(ind)%vertex_assign_j(pos-1,i,j) 
    426457        src_n=(src_j-1)*src_iim+src_i 
    427458        src_delta=domain(ind)%delta(i,j) 
    428          
    429         src_pos=MOD(pos-1+src_delta+6,6)+1 
     459        src_pos=domain(ind)%vertex_assign_pos(pos-1,i,j)+1 
     460 
    430461         
    431462        req%target_ind(req%size)=(j-1)*d%iim+i+d%z_pos(pos) 
Note: See TracChangeset for help on using the changeset viewer.