Changeset 4384


Ignore:
Timestamp:
Jan 13, 2023, 4:28:37 PM (16 months ago)
Author:
Sebastien Nguyen
Message:

Modifications to qminimum_loc to allow consistent results in debug with OpenMP(and MPI). Removed some isoverif outputs from phyetat0_mod

Location:
LMDZ6/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk/arch/arch-X64_JEANZAY.env

    r3615 r4384  
    1 module purge
    2 module load intel-all/19.0.4
    3 module load hdf5/1.10.5-mpi
    4 module load netcdf/4.7.2-mpi
    5 module load netcdf-fortran/4.5.2-mpi
    61
    7 module load gcc/6.5.0
     2##############################################################
     3# Gestion des modules
     4##############################################################
     5
     6hostname=jean-zay2
     7echo lmdz_env $hostname 0:3 ${hostname:0:3}
     8
     9case ${hostname:0:5} in
     10
     11        jean-) ARCH=X64_JEANZAY
     12                module purge
     13                compilo=19.0.4 # available 2013.0, 2017.2
     14                module load intel-compilers/$compilo
     15                #module load intel-mpi/$compilo
     16                module load intel-mkl/$compilo
     17                module load hdf5/1.10.5-mpi
     18                module load netcdf/4.7.2-mpi
     19                module load netcdf-fortran/4.5.2-mpi
     20                module load subversion/1.9.7
     21                module load nco
     22                module load cdo
     23                # Imputation de la consommation sur le groupe (projet) actif par defaut,
     24                #   idrproj indique le groupe (projet) actif par defaut
     25                #   idrproj -d newproj   redefinit "newproj" en tant que  projet actif,
     26                #        alors $STORE, $WORK etc vont designer les espaces de "newproj")
     27                groupe=`idrproj | grep active | awk '{ print $1}'`
     28                groupe="nfl"
     29                submit="sbatch -A ${groupe}@cpu "
     30                run="srun --label -n "
     31                # Espaces suivants definis par defaut en fonction du groupe actif,
     32                #  par exemple : SCRATCHD=$SCRATCH is /gpfsstore/rech/$groupe/$login
     33                #    * On peut aussi ne pas installer les scripts a la racine de STORE,
     34                #        mais dans STORED=$STORE/your_folder
     35                STORED=$STORE
     36                SCRATCHD=$SCRATCH
     37                LMDZD=$WORK
     38                nb_mpi_max=2000
     39                nb_omp_max=20
     40                #LMDZ_Init sur le $STORE du $groupe
     41                LMDZ_Init=$STORE/LMDZ_Init ;;
     42        *) ARCH=
     43                submit=". "
     44                run="mpirun -np "
     45                SCRATCHD=~/TMP/SCRATCH
     46                STORED=~/TMP/
     47                LMDZD=~/TMP
     48                nb_mpi_max=2
     49                nb_omp_max=2
     50                LMDZ_Init=~/LMDZ/LMDZ_Init
     51esac
     52
     53
     54echo LMDZ_Init dans lmdz_env $LMDZ_Init
  • LMDZ6/trunk/libf/dyn3dmem/qminimum_loc.F

    r4143 r4384  
    5555c
    5656
     57c$OMP BARRIER
     58
    5759      !write(lunout,*) 'qminimum 52: entree'
    5860      IF(first) THEN
     
    6668      ije=ij_end
    6769
    68       zx_defau_diag(ijb:ije,:,:)=0.0
    69       q_follow(ijb:ije,:,1:2)=q(ijb:ije,:,1:2) 
     70      DO k = 1, llm
     71c$OMP DO SCHEDULE(STATIC)
     72        DO i = ijb, ije
     73          zx_defau_diag(i,k,1)=0.0
     74          zx_defau_diag(i,k,2)=0.0
     75          q_follow(i,k,1)=q(i,k,1)
     76          q_follow(i,k,2)=q(i,k,2)
     77        ENDDO
     78c$OMP END DO NOWAIT
     79      ENDDO
    7080
    7181      !write(lunout,*) 'qminimum 57'
    72 c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)       
    7382      DO 1000 k = 1, llm
     83c$OMP DO SCHEDULE(STATIC)       
    7484      DO 1040 i = ijb, ije
    7585            if (seuil_liq - q(i,k,iq_liq) .gt. 0.d0 ) then
     
    8292            endif
    8393 1040 CONTINUE
     94c$OMP END DO NOWAIT
    8495 1000 CONTINUE
    85 c$OMP END DO NOWAIT
    86 c$OMP BARRIER
    87 c --->  SYNCHRO OPENMP ICI
    88 
    8996
    9097c
     
    113120c$OMP END DO NOWAIT
    114121      ENDDO
    115 c$OMP BARRIER
    116122
    117123c
     
    130136         ENDIF
    131137      ENDDO
    132 c$OMP END DO
     138c$OMP END DO NOWAIT
    133139!      pompe = SSUM(ije-ijb+1,zx_pump(ijb),1)
    134140
     
    162168        endif !if (zx_pump(i).gt.0.0) then
    163169      enddo !DO i = ijb, ije 
    164 c$OMP END DO
     170c$OMP END DO NOWAIT
    165171
    166172      ! 2) transfert de vap vers les couches plus hautes
     
    243249          endif !if (zx_defau_diag(i,k,iq_vap).gt.0.0) then
    244250        enddo !DO i = 1, ip1jmp1       
    245 c$OMP END DO
     251c$OMP END DO NOWAIT
    246252        enddo !do k=2,llm
    247253
     
    272278          endif !if (zx_defau_diag(i,k,iq_vap).gt.0.0) then
    273279        enddo !DO i = ijb, ije
    274 c$OMP END DO        
     280c$OMP END DO NOWAIT       
    275281       enddo !do k=2,llm 
    276282
     
    279285      endif !if (niso > 0) then
    280286      !write(*,*) 'qminimum 188'
     287c$OMP BARRIER
     288
    281289c
    282290      RETURN
  • LMDZ6/trunk/libf/phylmdiso/phyetat0_mod.F90

    r4374 r4384  
    632632  ! Initialize module pbl_surface_mod
    633633
    634 #ifdef ISOVERIF
    635         write(*,*) 'phyetat0 572: snow(994,:)=',snow(994,2)
    636         write(*,*) 'xtsnow(:,994,2)=',xtsnow(:,994,2)
    637 #endif
     634! 994 est trop grand quand OpenMP est activé : on sort du tableau
     635!#ifdef ISOVERIF
     636!        write(*,*) 'phyetat0 572: snow(994,:)=',snow(994,2)
     637!        write(*,*) 'xtsnow(:,994,2)=',xtsnow(:,994,2)
     638!#endif
    638639
    639640  CALL pbl_surface_init(fder, snow, qsurf, tsoil)
Note: See TracChangeset for help on using the changeset viewer.