Changeset 3833
- Timestamp:
- Jun 18, 2015, 1:09:02 PM (10 years ago)
- Location:
- dynamico_lmdz/aquaplanet/ICOSAGCM
- Files:
-
- 1 added
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
dynamico_lmdz/aquaplanet/ICOSAGCM/bld.cfg
r3810 r3833 21 21 bld::lib::ioipsl ioipsl 22 22 bld::target libioipsl.a 23 bld::lib::src icosa 24 bld::target libicosa.a 23 25 bld::target icosa_gcm.exe 24 26 -
dynamico_lmdz/aquaplanet/ICOSAGCM/src/icosa_gcm.f90
r3810 r3833 1 PROGRAM 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 omp_para 9 USE vertical_interp_mod 10 USE trace 11 USE output_field_mod 12 USE xios_mod 13 USE write_field 14 USE physics_mod 1 PROGRAM icosa_gcm 2 USE icosa_init_mod, ONLY : icosa_init 15 3 16 ! USE getin_mod 17 IMPLICIT NONE 18 19 CALL init_mpipara 20 CALL trace_off 21 CALL xios_init 22 CALL init_earth_const 23 CALL init_grid_param(is_mpi_master) 24 CALL init_omp_para(is_mpi_master) 25 CALL compute_metric 26 CALL compute_domain 27 CALL init_transfert 28 CALL init_writefield 29 CALL init_trace 4 CALL icosa_init 30 5 31 !$OMP PARALLEL 32 CALL switch_omp_no_distrib_level 33 CALL compute_geometry 34 CALL check_total_area 35 36 CALL init_disvert 37 CALL init_vertical_interp 38 39 CALL WriteField("Ai",geom%Ai) 40 41 IF (is_mpi_root) CALL write_apbp 42 CALL init_time 43 44 CALL output_field_init 45 CALL init_timeloop 46 !$OMP END PARALLEL 47 48 CALL init_physics 49 50 !$OMP PARALLEL 51 CALL timeloop 52 CALL switch_omp_no_distrib_level 53 !$OMP END PARALLEL 54 55 CALL output_field_finalize 56 CALL close_files 57 CALL close_time_counter 58 CALL finalize_mpipara 59 60 CONTAINS 61 62 SUBROUTINE check_total_area 63 IMPLICIT NONE 64 TYPE(t_field),POINTER,SAVE :: sum_ne(:) 65 TYPE(t_field),POINTER,SAVE :: sum_ne_glo(:) 66 REAL(rstd),POINTER :: pt_sum_ne(:) 67 68 INTEGER :: ind,i,j,k,n 69 REAL(rstd) :: vect(3,6) 70 REAL(rstd) :: centr(3),dist 71 REAL(rstd) :: tot_sum=0 72 CALL allocate_field(sum_ne,field_T,type_real) 73 74 !$OMP BARRIER 75 !$OMP MASTER 76 DO ind=1,ndomain 77 78 pt_sum_ne=sum_ne(ind) 79 80 CALL swap_dimensions(ind) 81 CALL swap_geometry(ind) 82 83 DO j=jj_begin,jj_end 84 DO i=ii_begin,ii_end 85 n=(j-1)*iim+i 86 pt_sum_ne(n)=0 87 DO k=1,6 88 pt_sum_ne(n)=pt_sum_ne(n)+ne(n,k) 89 ENDDO 90 IF (domain(ind)%own(i,j)) tot_sum=tot_sum+Ai(n) 91 ENDDO 92 ENDDO 93 ENDDO 94 95 IF (is_mpi_root) PRINT *," Diff surf",1-tot_sum/(4*Pi*radius*radius) 96 !$OMP END MASTER 97 98 END SUBROUTINE check_total_area 99 END PROGRAM ICOSA_gcm 6 END PROGRAM icosa_gcm
Note: See TracChangeset
for help on using the changeset viewer.