source: codes/icosagcm/trunk/src/icosa_gcm.f90 @ 141

Last change on this file since 141 was 131, checked in by ymipsl, 11 years ago

Some operations must be only done by the mpi master task.

YM

File size: 1.9 KB
RevLine 
[12]1PROGRAM ICOSA_GCM
[19]2  USE icosa
[12]3  USE timeloop_gcm_mod
4  USE disvert_mod
5  USE etat0_mod
[15]6  USE wind_mod
[26]7  USE mpipara
[97]8  USE vertical_interp_mod
[12]9  IMPLICIT NONE
10 
11  TYPE(t_field),POINTER :: sum_ne(:)
[26]12  TYPE(t_field),POINTER :: sum_ne_glo(:)
[12]13  REAL(rstd),POINTER :: pt_sum_ne(:)
14 
15  INTEGER :: ind,i,j,k,n
16  REAL(rstd) :: tot_sum=0
[15]17  REAL(rstd) :: vect(3,6)
18  REAL(rstd) :: centr(3),dist
[12]19 
[26]20  CALL init_mpipara
[32]21  CALL init_earth_const 
[15]22  CALL init_grid_param
[12]23  CALL compute_metric
24  CALL compute_domain
[15]25  CALL init_transfert
[82]26  CALL init_writefield
[26]27!  CALL allocate_field(sum_ne,field_T,type_real)
28!  CALL allocate_field_glo(sum_ne_glo,field_T,type_real)
29
30! DO ind=1,ndomain
31!   CALL swap_dimensions(ind)
32!   pt_sum_ne=sum_ne(ind)
33!   DO j=jj_begin,jj_end
34!     DO i=ii_begin,ii_end   
35!       n=(j-1)*iim+i
36!       pt_sum_ne(n)=domloc_glo_ind(ind)
37!     ENDDO
38!   ENDDO
39! ENDDO
40
41! CALL WriteField("domain",sum_ne)
42! CALL WriteField_mpi("domain",sum_ne)
43! CALL transfert_request(sum_ne,req_i1)
44! CALL WriteField_mpi("domain",sum_ne)
45! CALL close_files
46! CALL finalize_mpipara
47! STOP
48 
[12]49  CALL compute_geometry
50  CALL init_disvert 
[97]51  CALL init_vertical_interp
52
[12]53  CALL allocate_field(sum_ne,field_T,type_real)
54 
55
56  DO ind=1,ndomain
57     
58    pt_sum_ne=sum_ne(ind)
59     
60    CALL swap_dimensions(ind)
61    CALL swap_geometry(ind)
62   
63    DO j=jj_begin,jj_end
64      DO i=ii_begin,ii_end
65        n=(j-1)*iim+i
66        pt_sum_ne(n)=0
67        DO k=1,6
68          pt_sum_ne(n)=pt_sum_ne(n)+ne(n,k)
69        ENDDO
70        IF (domain(ind)%own(i,j)) tot_sum=tot_sum+Ai(n)
71      ENDDO
72    ENDDO
73  ENDDO
74
75
76 
[131]77  IF (is_mpi_root) PRINT *," Diff surf",1-tot_sum/(4*Pi*radius*radius)
[12]78
79 
[15]80  CALL WriteField("Ai",geom%Ai)
[12]81!  CALL WriteField("sum_ne",sum_ne)
[131]82  IF (is_mpi_root) CALL write_apbp
[97]83  CALL init_time
[12]84  CALL timeloop
[26]85
86  CALL close_files
[82]87  CALL close_time_counter
[26]88  CALL finalize_mpipara
[12]89 
90END PROGRAM ICOSA_gcm 
Note: See TracBrowser for help on using the repository browser.