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

Last change on this file since 146 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
Line 
1PROGRAM ICOSA_GCM
2  USE icosa
3  USE timeloop_gcm_mod
4  USE disvert_mod
5  USE etat0_mod
6  USE wind_mod
7  USE mpipara
8  USE vertical_interp_mod
9  IMPLICIT NONE
10 
11  TYPE(t_field),POINTER :: sum_ne(:)
12  TYPE(t_field),POINTER :: sum_ne_glo(:)
13  REAL(rstd),POINTER :: pt_sum_ne(:)
14 
15  INTEGER :: ind,i,j,k,n
16  REAL(rstd) :: tot_sum=0
17  REAL(rstd) :: vect(3,6)
18  REAL(rstd) :: centr(3),dist
19 
20  CALL init_mpipara
21  CALL init_earth_const 
22  CALL init_grid_param
23  CALL compute_metric
24  CALL compute_domain
25  CALL init_transfert
26  CALL init_writefield
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 
49  CALL compute_geometry
50  CALL init_disvert 
51  CALL init_vertical_interp
52
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 
77  IF (is_mpi_root) PRINT *," Diff surf",1-tot_sum/(4*Pi*radius*radius)
78
79 
80  CALL WriteField("Ai",geom%Ai)
81!  CALL WriteField("sum_ne",sum_ne)
82  IF (is_mpi_root) CALL write_apbp
83  CALL init_time
84  CALL timeloop
85
86  CALL close_files
87  CALL close_time_counter
88  CALL finalize_mpipara
89 
90END PROGRAM ICOSA_gcm 
Note: See TracBrowser for help on using the repository browser.