Changeset 3902


Ignore:
Timestamp:
Feb 2, 2016, 10:36:48 AM (9 years ago)
Author:
ymipsl
Message:

Add global index array in order to be able of correctly restart when changing data distribution between 2 jobs (not same number of mpi process or openmp threads)

YM

File:
1 edited

Legend:

Unmodified
Added
Removed
  • dynamico_lmdz/aquaplanet/ICOSA_LMDZ/src/interface_icosa_lmdz.f90

    r3863 r3902  
    177177  USE xios_mod
    178178  USE time_mod , init_time_icosa=> init_time
     179  USE omp_para
    179180
    180181! from LMDZ
     
    204205  REAL(rstd),ALLOCATABLE :: bounds_latfi(:,:)
    205206  REAL(rstd),ALLOCATABLE :: bounds_lonfi(:,:)
     207  REAL(rstd),ALLOCATABLE :: ind_cell_glo(:)
     208
    206209  REAL(rstd) :: pseudoalt(llm)
    207210
     
    221224  INTEGER,ALLOCATABLE           :: conv_flg(:) ! conv_flg(it)=0 : convection desactivated for tracer number it
    222225  INTEGER,ALLOCATABLE           :: pbl_flg(:)  ! pbl_flg(it)=0  : boundary layer diffusion desactivaded for tracer number it
    223   CHARACTER(len=8),ALLOCATABLE :: solsym(:)  ! tracer name from inca
    224 
     226  CHARACTER(len=8),ALLOCATABLE  :: solsym(:)  ! tracer name from inca
     227  TYPE(t_field),POINTER,SAVE    :: f_ind_cell_glo(:)
     228 
    225229  INTEGER :: iflag_phys   
    226 
    227230
    228231    CALL init_distrib_icosa_lmdz
     
    233236    ALLOCATE(bounds_latfi(klon_omp,6))
    234237    ALLOCATE(bounds_lonfi(klon_omp,6))
     238    ALLOCATE(ind_cell_glo(klon_omp))
    235239
    236240    CALL transfer_icosa_to_lmdz(geom%lat_i,latfi)
     
    240244    CALL transfer_icosa_to_lmdz(geom%Ai,airefi)
    241245
    242     CALL init_geometry(lonfi, latfi, bounds_lonfi, bounds_latfi, airefi)
     246    CALL allocate_field(f_ind_cell_glo,field_t,type_real)
     247   
     248    DO ind=1,ndomain
     249      IF (.NOT. assigned_domain(ind)  .OR. .NOT. is_omp_level_master ) CYCLE
     250      CALL swap_dimensions(ind)
     251      CALL swap_geometry(ind)
     252      DO j=jj_begin,jj_end
     253        DO i=ii_begin,ii_end
     254          ij=(j-1)*iim+i
     255          f_ind_cell_glo(ind)%rval2d(ij)=domain(ind)%assign_cell_glo(i,j)
     256        ENDDO
     257      ENDDO
     258    ENDDO
     259
     260!$OMP BARRIER
     261     
     262    CALL transfer_icosa_to_lmdz(f_ind_cell_glo,ind_cell_glo)
     263    CALL deallocate_field(f_ind_cell_glo)
     264     
     265             
     266    CALL init_geometry(lonfi, latfi, bounds_lonfi, bounds_latfi, airefi, INT(ind_cell_glo))
    243267
    244268    pseudoalt(:)=0
Note: See TracChangeset for help on using the changeset viewer.