Ignore:
Timestamp:
08/01/15 15:05:27 (9 years ago)
Author:
dubos
Message:

Synced with aquaplanet branch HEAT@45 - tested with DCMIP4

File:
1 edited

Legend:

Unmodified
Added
Removed
  • codes/icosagcm/trunk/src/icosa_gcm.f90

    r327 r347  
    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 
     1PROGRAM icosa_gcm 
     2  USE icosa_init_mod, ONLY : icosa_init 
    153 
    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 
    305 
    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 
    386 
    39   CALL WriteField("Ai",geom%Ai) 
    40    
    41   IF (is_mpi_root) CALL write_apbp 
    42   CALL init_time 
     7END PROGRAM icosa_gcm 
    438 
    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 
     9SUBROUTINE initialize_external_physics 
     10END SUBROUTINE initialize_external_physics 
    5411 
    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 
     12SUBROUTINE external_physics 
     13END SUBROUTINE external_physics 
Note: See TracChangeset for help on using the changeset viewer.