Changeset 3833


Ignore:
Timestamp:
Jun 18, 2015, 1:09:02 PM (10 years ago)
Author:
ymipsl
Message:

Create a library from dynamico.

YM

Location:
dynamico_lmdz/aquaplanet/ICOSAGCM
Files:
1 added
2 edited

Legend:

Unmodified
Added
Removed
  • dynamico_lmdz/aquaplanet/ICOSAGCM/bld.cfg

    r3810 r3833  
    2121bld::lib::ioipsl ioipsl
    2222bld::target libioipsl.a
     23bld::lib::src icosa
     24bld::target libicosa.a
    2325bld::target icosa_gcm.exe
    2426
  • 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
     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
    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
     6END PROGRAM icosa_gcm
Note: See TracChangeset for help on using the changeset viewer.