PROGRAM ICOSA_GCM USE icosa USE timeloop_gcm_mod USE disvert_mod USE etat0_mod USE wind_mod USE mpipara IMPLICIT NONE TYPE(t_field),POINTER :: sum_ne(:) TYPE(t_field),POINTER :: sum_ne_glo(:) REAL(rstd),POINTER :: pt_sum_ne(:) INTEGER :: ind,i,j,k,n REAL(rstd) :: tot_sum=0 REAL(rstd) :: vect(3,6) REAL(rstd) :: centr(3),dist CALL init_mpipara CALL init_earth_const CALL init_grid_param CALL compute_metric CALL compute_domain CALL init_transfert ! CALL allocate_field(sum_ne,field_T,type_real) ! CALL allocate_field_glo(sum_ne_glo,field_T,type_real) ! ! DO ind=1,ndomain ! CALL swap_dimensions(ind) ! pt_sum_ne=sum_ne(ind) ! DO j=jj_begin,jj_end ! DO i=ii_begin,ii_end ! n=(j-1)*iim+i ! pt_sum_ne(n)=domloc_glo_ind(ind) ! ENDDO ! ENDDO ! ENDDO ! CALL WriteField("domain",sum_ne) ! CALL WriteField_mpi("domain",sum_ne) ! CALL transfert_request(sum_ne,req_i1) ! CALL WriteField_mpi("domain",sum_ne) ! CALL close_files ! CALL finalize_mpipara ! STOP CALL compute_geometry CALL init_disvert CALL allocate_field(sum_ne,field_T,type_real) DO ind=1,ndomain pt_sum_ne=sum_ne(ind) CALL swap_dimensions(ind) CALL swap_geometry(ind) DO j=jj_begin,jj_end DO i=ii_begin,ii_end n=(j-1)*iim+i pt_sum_ne(n)=0 DO k=1,6 pt_sum_ne(n)=pt_sum_ne(n)+ne(n,k) ENDDO IF (domain(ind)%own(i,j)) tot_sum=tot_sum+Ai(n) ENDDO ENDDO ENDDO PRINT *," Diff surf",1-tot_sum/(4*Pi*radius*radius) CALL WriteField("Ai",geom%Ai) ! CALL WriteField("sum_ne",sum_ne) CALL write_apbp CALL timeloop CALL close_files CALL finalize_mpipara END PROGRAM ICOSA_gcm