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

Last change on this file since 150 was 149, checked in by sdubey, 11 years ago
Added few new routines to read NC files and compute diagnostics to r145.
Few routines of dry physics including radiation module, surface process and convective adjustment in new routine phyparam.f90. dynetat to read start files for dynamics. check_conserve routine to compute conservation of quatities like mass, energy etc.etat0_heldsz.f90 for held-suarez test case initial conditions. new Key time_style=lmd or dcmip to use day_step, ndays like in LMDZ
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
28!  CALL allocate_field(sum_ne,field_T,type_real)
29!  CALL allocate_field_glo(sum_ne_glo,field_T,type_real)
30
31! DO ind=1,ndomain
32!   CALL swap_dimensions(ind)
33!   pt_sum_ne=sum_ne(ind)
34!   DO j=jj_begin,jj_end
35!     DO i=ii_begin,ii_end   
36!       n=(j-1)*iim+i
37!       pt_sum_ne(n)=domloc_glo_ind(ind)
38!     ENDDO
39!   ENDDO
40! ENDDO
41
42! CALL WriteField("domain",sum_ne)
43! CALL WriteField_mpi("domain",sum_ne)
44! CALL transfert_request(sum_ne,req_i1)
45! CALL WriteField_mpi("domain",sum_ne)
46! CALL close_files
47! CALL finalize_mpipara
48! STOP
49 
50  CALL compute_geometry
51  CALL init_disvert 
52  CALL init_vertical_interp
53
54  CALL allocate_field(sum_ne,field_T,type_real)
55 
56
57  DO ind=1,ndomain
58     
59    pt_sum_ne=sum_ne(ind)
60     
61    CALL swap_dimensions(ind)
62    CALL swap_geometry(ind)
63   
64    DO j=jj_begin,jj_end
65      DO i=ii_begin,ii_end
66        n=(j-1)*iim+i
67        pt_sum_ne(n)=0
68        DO k=1,6
69          pt_sum_ne(n)=pt_sum_ne(n)+ne(n,k)
70        ENDDO
71        IF (domain(ind)%own(i,j)) tot_sum=tot_sum+Ai(n)
72      ENDDO
73    ENDDO
74  ENDDO
75
76
77 
78  IF (is_mpi_root) PRINT *," Diff surf",1-tot_sum/(4*Pi*radius*radius)
79
80 
81  CALL WriteField("Ai",geom%Ai)
82!  CALL WriteField("sum_ne",sum_ne)
83  IF (is_mpi_root) CALL write_apbp
84  CALL init_time
85  CALL timeloop
86
87  CALL close_files
88  CALL close_time_counter
89  CALL finalize_mpipara
90 
91END PROGRAM ICOSA_gcm 
Note: See TracBrowser for help on using the repository browser.