Ignore:
Timestamp:
05/13/13 14:30:31 (11 years ago)
Author:
ymipsl
Message:

Implementation of mixte parallelism MPI/OpenMP into src directory

YM

File:
1 edited

Legend:

Unmodified
Added
Removed
  • codes/icosagcm/trunk/src/geometry.f90

    r146 r151  
    9191  IMPLICIT NONE 
    9292    INTEGER,INTENT(IN) :: ind 
     93!$OMP MASTER 
    9394    Ai=geom%Ai(ind) 
    9495    xyz_i=geom%xyz_i(ind) 
     
    111112    bi=geom%bi(ind) 
    112113    fv=geom%fv(ind) 
    113      
     114!$OMP END MASTER 
     115!$OMP BARRIER     
    114116  END SUBROUTINE swap_geometry 
    115117   
     
    213215          ENDDO 
    214216        ENDDO 
    215 !        i=ii_begin ; j=jj_begin ; n=(j-1)*iim+i ; xyz_i(n,:)=domain(ind)%xyz(:,i,j)  
    216 !        i=ii_begin ; j=jj_end   ; n=(j-1)*iim+i ; xyz_i(n,:)=domain(ind)%xyz(:,i,j) 
    217 !        i=ii_end   ; j=jj_begin ; n=(j-1)*iim+i ;   xyz_i(n,:)=domain(ind)%xyz(:,i,j) 
    218 !        PRINT *,"Pb ?? : "  
    219 !        PRINT *, xyz_i(n,:), domain(ind)%xyz(:,i,j), norm(xyz_i(n,:)- domain(ind)%xyz(:,i,j)) 
    220 !        i=ii_end   ; j=jj_end   ; n=(j-1)*iim+i ; xyz_i(n,:)=domain(ind)%xyz(:,i,j) 
    221217         
    222218      ENDDO 
    223219 
    224220      IF (check) THEN 
    225 !        sum=sum/(ndomain*ii_nb*jj_nb) 
    226221        PRINT *,"it = ",it,"  diff centroid circumcenter ",sum 
    227222      ENDIF  
     
    287282            ne(n,k+1)=d%ne(k,i,j) 
    288283          ENDDO 
    289                    
    290 !          xyz_i(n,:)=d%xyz(:,i,j)  
    291 !          xyz_v(n+z_up,:)=d%vertex(:,vup-1,i,j)  
    292 !          xyz_v(n+z_down,:)=d%vertex(:,vdown-1,i,j)  
    293284 
    294285          vect(:,1)=xyz_v(n+z_rup,:) 
     
    309300          bi(n)=0.  
    310301         
    311 !          CALL dist_cart(d%xyz(:,i,j),d%neighbour(:,right-1,i,j),de(n+u_right)) 
    312 !          CALL dist_cart(d%xyz(:,i,j),d%neighbour(:,lup-1,i,j),de(n+u_lup)) 
    313 !          CALL dist_cart(d%xyz(:,i,j),d%neighbour(:,ldown-1,i,j),de(n+u_ldown)) 
    314  
    315302          CALL dist_cart(xyz_i(n,:),xyz_i(n+t_right,:),de(n+u_right)) 
    316303          CALL dist_cart(xyz_i(n,:),xyz_i(n+t_lup,:),de(n+u_lup)) 
    317304          CALL dist_cart(xyz_i(n,:),xyz_i(n+t_ldown,:),de(n+u_ldown)) 
    318305           
    319 !          CALL div_arc_bis(d%xyz(:,i,j),d%neighbour(:,right-1,i,j),0.5,xyz_e(n+u_right,:)) 
    320 !          CALL div_arc_bis(d%xyz(:,i,j),d%neighbour(:,lup-1,i,j),0.5,xyz_e(n+u_lup,:)) 
    321 !          CALL div_arc_bis(d%xyz(:,i,j),d%neighbour(:,ldown-1,i,j),0.5,xyz_e(n+u_ldown,:)) 
    322  
    323306          CALL div_arc_bis(xyz_i(n,:),xyz_i(n+t_right,:),0.5,xyz_e(n+u_right,:)) 
    324307          CALL div_arc_bis(xyz_i(n,:),xyz_i(n+t_lup,:),0.5,xyz_e(n+u_lup,:)) 
    325308          CALL div_arc_bis(xyz_i(n,:),xyz_i(n+t_ldown,:),0.5,xyz_e(n+u_ldown,:)) 
    326           
    327 !          CALL dist_cart(d%vertex(:,vrdown-1,i,j),d%vertex(:,vrup-1,i,j),le(n+u_right)) 
    328 !          CALL dist_cart(d%vertex(:,vup-1,i,j),d%vertex(:,vlup-1,i,j),le(n+u_lup)) 
    329 !          CALL dist_cart(d%vertex(:,vldown-1,i,j),d%vertex(:,vdown-1,i,j),le(n+u_ldown)) 
    330309 
    331310          CALL dist_cart(xyz_v(n+z_rdown,:), xyz_v(n+z_rup,:),le(n+u_right)) 
     
    335314          Ai(n)=0 
    336315          DO k=0,5 
    337 !            CALL surf_triangle(d%xyz(:,i,j),d%neighbour(:,k,i,j),d%neighbour(:,MOD((k+1+6),6),i,j),surf_v(k+1)) 
    338 !            CALL surf_triangle(d%xyz(:,i,j),d%vertex(:,MOD((k-1+6),6),i,j),d%vertex(:,k,i,j),surf(k+1)) 
    339316            CALL surf_triangle(xyz_i(n,:),xyz_i(n+t_pos(k+1),:),xyz_i(n+t_pos(MOD((k+1+6),6)+1),:),surf_v(k+1)) 
    340317            CALL surf_triangle(xyz_i(n,:),xyz_v(n+z_pos(MOD((k-1+6),6)+1),:),xyz_v(n+z_pos(k+1),:),surf(k+1)) 
     
    414391           
    415392          DO k=0,5 
    416 !            CALL surf_triangle(d%xyz(:,i,j),d%vertex(:,k,i,j),d%neighbour(:,k,i,j),S1) 
    417 !            CALL surf_triangle(d%xyz(:,i,j),d%vertex(:,k,i,j),d%neighbour(:,MOD(k+1+6,6),i,j),S2) 
    418393            CALL surf_triangle(xyz_i(n,:), xyz_v(n+z_pos(k+1),:), xyz_i(n+t_pos(k+1),:),S1) 
    419394            CALL surf_triangle(xyz_i(n,:), xyz_v(n+z_pos(k+1),:), xyz_i(n+t_pos(MOD(k+1+6,6)+1),:),S2) 
     
    516491    CALL transfert_request(geom%centroid,req_i1) 
    517492    CALL surf_triangle(d%xyz(:,ii_begin,jj_begin),d%xyz(:,ii_begin,jj_end),d%xyz(:,ii_end,jj_begin),S) 
    518 !    PRINT *,"Surf triangle : ",S*20/(4*Pi) 
    519    
     493  
    520494  END SUBROUTINE set_geometry 
    521495   
Note: See TracChangeset for help on using the changeset viewer.