Changeset 1705


Ignore:
Timestamp:
Jan 8, 2013, 4:38:44 PM (11 years ago)
Author:
Ehouarn Millour
Message:

Added arch files for ADA (IDRIS IBMx3750) and made the following code modifications:
phylmd/printflag.F : removed "print" of unset variable (radpas0)
dyn3dmem/integrd_loc.F : removed unecessary "include mpif.h"
dyn3dmem/leapfrog_loc.F : removed unecessary "include mpif.h" and allocate saved variables at first call
dyn3dmem/mod_filtreg_p.F : added matmul() alternatives to call to BLAS routine SGEMM (which was incorectly set as DGEMM; which would fail if running with -r4)
filtrez/filtreg.F: changed calls to DGEMM into calls to SGEMM, so that code works with either -r4 or -r8 (the later being used in conjunction with "BLAS SGEMV=DGEMV SGEMM=DGEMM" preprocessing statements)
EM

Location:
LMDZ5/trunk
Files:
2 added
5 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/trunk/libf/dyn3dmem/integrd_loc.F

    r1673 r1705  
    3838#include "serre.h"
    3939#include "iniprint.h"
    40       include 'mpif.h'
     40!      include 'mpif.h'
    4141
    4242c   Arguments:
  • LMDZ5/trunk/libf/dyn3dmem/leapfrog_loc.F

    r1682 r1705  
    7878#include "iniprint.h"
    7979#include "academic.h"
    80       include "mpif.h"
     80!      include "mpif.h"
    8181     
    8282      INTEGER         longcles
     
    237237
    238238c Allocate variables depending on dynamic variable nqtot
    239 !c$OMP MASTER
     239!$OMP MASTER
     240      if (firstcall) then
    240241!     
    241242!      ALLOCATE(p(ijb_u:ije_u,llmp1))
     
    266267!      ALLOCATE(vcont(ijb_v:ije_v,llm),ucont(ijb_u:ije_u,llm))
    267268!      ALLOCATE(vnat(ijb_v:ije_v,llm),unat(ijb_u:ije_u,llm))
    268 !c$OMP END MASTER     
    269 !c$OMP BARRIER
     269      endif
     270!$OMP END MASTER     
     271!$OMP BARRIER
    270272
    271273!                CALL dynredem1_loc("restart.nc",0.0,
  • LMDZ5/trunk/libf/dyn3dmem/mod_filtreg_p.F

    r1632 r1705  
    210210               IF( ifiltre.EQ.-2 )   THEN
    211211                  DO j = jdfil,jffil
    212                      CALL DGEMM("N", "N", iim, nbniv_loc, iim, 1.0,
     212#ifdef BLAS
     213                     CALL SGEMM("N", "N", iim, nbniv_loc, iim, 1.0,
    213214     &                    matrinvn(1,1,j), iim,
    214215     &                    champ_loc(1,j,1), iip1*(jje-jjb+1), 0.0,
    215216     &                    champ_fft(1,j,1), iip1*(jje-jjb+1))
     217#else
     218                     champ_fft(:,j,:)=
     219     &                    matmul(matrinvn(:,:,j),champ_loc(:iim,j,:))
     220#endif
    216221                  ENDDO
    217222                 
    218223               ELSE IF ( griscal )     THEN
    219224                  DO j = jdfil,jffil
    220                      CALL DGEMM("N", "N", iim, nbniv_loc, iim, 1.0,
     225#ifdef BLAS
     226                     CALL SGEMM("N", "N", iim, nbniv_loc, iim, 1.0,
    221227     &                    matriceun(1,1,j), iim,
    222228     &                    champ_loc(1,j,1), iip1*(jje-jjb+1), 0.0,
    223229     &                    champ_fft(1,j,1), iip1*(jje-jjb+1))
     230#else
     231                     champ_fft(:,j,:)=
     232     &                    matmul(matriceun(:,:,j),champ_loc(:iim,j,:))
     233#endif
    224234                  ENDDO
    225235                 
    226236               ELSE
    227237                  DO j = jdfil,jffil
    228                      CALL DGEMM("N", "N", iim, nbniv_loc, iim, 1.0,
     238#ifdef BLAS
     239                     CALL SGEMM("N", "N", iim, nbniv_loc, iim, 1.0,
    229240     &                    matricevn(1,1,j), iim,
    230241     &                    champ_loc(1,j,1), iip1*(jje-jjb+1), 0.0,
    231242     &                    champ_fft(1,j,1), iip1*(jje-jjb+1))
     243#else
     244                     champ_fft(:,j,:)=
     245     &                    matmul(matricevn(:,:,j),champ_loc(:iim,j,:))
     246#endif
    232247                  ENDDO
    233248                 
     
    238253               IF( ifiltre.EQ.-2 )   THEN
    239254                  DO j = jdfil,jffil
    240                      CALL DGEMM("N", "N", iim, nbniv_loc, iim, 1.0,
     255#ifdef BLAS
     256                     CALL SGEMM("N", "N", iim, nbniv_loc, iim, 1.0,
    241257     &                    matrinvs(1,1,j-jfiltsu+1), iim,
    242258     &                    champ_loc(1,j,1), iip1*(jje-jjb+1), 0.0,
    243259     &                    champ_fft(1,j,1), iip1*(jje-jjb+1))
     260#else
     261                     champ_fft(:,j,:)=
     262     &                    matmul(matrinvs(:,:,j-jfiltsu+1),
     263     &                           champ_loc(:iim,j,:))
     264#endif
    244265                  ENDDO
    245266                 
     
    247268                 
    248269                  DO j = jdfil,jffil
    249                      CALL DGEMM("N", "N", iim, nbniv_loc, iim, 1.0,
     270#ifdef BLAS
     271                     CALL SGEMM("N", "N", iim, nbniv_loc, iim, 1.0,
    250272     &                    matriceus(1,1,j-jfiltsu+1), iim,
    251273     &                    champ_loc(1,j,1), iip1*(jje-jjb+1), 0.0,
    252274     &                    champ_fft(1,j,1), iip1*(jje-jjb+1))
     275#else
     276                     champ_fft(:,j,:)=
     277     &                    matmul(matriceus(:,:,j-jfiltsu+1),
     278     &                           champ_loc(:iim,j,:))
     279#endif
    253280                  ENDDO
    254281                 
     
    256283                 
    257284                  DO j = jdfil,jffil
    258                      CALL DGEMM("N", "N", iim, nbniv_loc, iim, 1.0,
     285#ifdef BLAS
     286                     CALL SGEMM("N", "N", iim, nbniv_loc, iim, 1.0,
    259287     &                    matricevs(1,1,j-jfiltsv+1), iim,
    260288     &                    champ_loc(1,j,1), iip1*(jje-jjb+1), 0.0,
    261289     &                    champ_fft(1,j,1), iip1*(jje-jjb+1))
     290#else
     291                     champ_fft(:,j,:)=
     292     &                    matmul(matricevs(:,:,j-jfiltsv+1),
     293     &                           champ_loc(:iim,j,:))
     294#endif
    262295                  ENDDO
    263296                 
     
    269302               
    270303c     !-------------------------------------!
    271 c     ! Dés-agregation des niveau verticaux !
     304c     ! Dés-agregation des niveau verticaux !
    272305c     ! uniquement necessaire pour une      !
    273306c     ! execution OpenMP                    !
     
    402435      END SUBROUTINE filtreg_p
    403436      END MODULE mod_filtreg_p
     437
  • LMDZ5/trunk/libf/filtrez/filtreg.F

    r1279 r1705  
    185185               DO j = jdfil,jffil
    186186#ifdef BLAS
    187                   CALL DGEMM("N", "N", iim, nbniv, iim, 1.0,
     187                  CALL SGEMM("N", "N", iim, nbniv, iim, 1.0,
    188188     &                 matrinvn(1,1,j),
    189189     &                 iim, champ(1,j,1), iip1*nlat, 0.0,
     
    199199               DO j = jdfil,jffil
    200200#ifdef BLAS
    201                   CALL DGEMM("N", "N", iim, nbniv, iim, 1.0,
     201                  CALL SGEMM("N", "N", iim, nbniv, iim, 1.0,
    202202     &                 matriceun(1,1,j),
    203203     &                 iim, champ(1,j,1), iip1*nlat, 0.0,
     
    213213               DO j = jdfil,jffil
    214214#ifdef BLAS
    215                   CALL DGEMM("N", "N", iim, nbniv, iim, 1.0,
     215                  CALL SGEMM("N", "N", iim, nbniv, iim, 1.0,
    216216     &                 matricevn(1,1,j),
    217217     &                 iim, champ(1,j,1), iip1*nlat, 0.0,
     
    231231               DO j = jdfil,jffil
    232232#ifdef BLAS
    233                   CALL DGEMM("N", "N", iim, nbniv, iim, 1.0,
     233                  CALL SGEMM("N", "N", iim, nbniv, iim, 1.0,
    234234     &                 matrinvs(1,1,j-jfiltsu+1),
    235235     &                 iim, champ(1,j,1), iip1*nlat, 0.0,
     
    247247               DO j = jdfil,jffil
    248248#ifdef BLAS
    249                   CALL DGEMM("N", "N", iim, nbniv, iim, 1.0,
     249                  CALL SGEMM("N", "N", iim, nbniv, iim, 1.0,
    250250     &                 matriceus(1,1,j-jfiltsu+1),
    251251     &                 iim, champ(1,j,1), iip1*nlat, 0.0,
     
    262262               DO j = jdfil,jffil
    263263#ifdef BLAS
    264                   CALL DGEMM("N", "N", iim, nbniv, iim, 1.0,
     264                  CALL SGEMM("N", "N", iim, nbniv, iim, 1.0,
    265265     &                 matricevs(1,1,j-jfiltsv+1),
    266266     &                 iim, champ(1,j,1), iip1*nlat, 0.0,
  • LMDZ5/trunk/libf/phylmd/printflag.F

    r1403 r1705  
    8787!        radpas0  = NINT( 86400./tabcntr0(1)/INT( tabcntr0(6) ) )
    8888        PRINT 100
    89         PRINT 22, radpas0, radpas
     89!        PRINT 22, radpas0, radpas
    9090        PRINT 100
    9191       ENDIF
Note: See TracChangeset for help on using the changeset viewer.