Ignore:
Timestamp:
Nov 10, 2006, 3:50:16 PM (18 years ago)
Author:
Laurent Fairhead
Message:

Modifications version parallele
YM/LF

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ4/branches/V3_test/libf/phylmd/phyredem.F

    r704 r735  
    9595      real clwcon(klon2,klev),rnebcon(klon2,klev),ratqs(klon2,klev)
    9696      REAL run_off_lic_0(klon2)
     97      REAL masq(klon2)
    9798c
    9899      INTEGER nid, nvarid, idim1, idim2, idim3
     
    138139      REAL,SAVE,ALLOCATABLE :: ratqs_mpi(:,:)
    139140      REAL,SAVE,ALLOCATABLE :: run_off_lic_0_mpi(:)
     141      REAL,SAVE,ALLOCATABLE :: masq_mpi(:)
    140142     
    141143c$OMP MASTER
     
    173175      ALLOCATE( ratqs_mpi(klon_mpi,klev))
    174176      ALLOCATE( run_off_lic_0_mpi(klon_mpi))
     177      ALLOCATE( masq_mpi(klon_mpi))
    175178c$OMP END MASTER
    176179c$OMP BARRIER     
     
    211214      call GatherField_omp( clwcon_p,clwcon_mpi,klev)
    212215      call GatherField_omp( ratqs_p,ratqs_mpi,klev)
    213      
     216      call GatherField_omp( zmasq,masq_mpi,1)
     217
    214218c$OMP MASTER     
    215219      call GatherField( rlat_mpi,rlat,1)
     
    248252      call GatherField( clwcon_mpi,clwcon,klev)
    249253      call GatherField( ratqs_mpi,ratqs,klev)
    250 
     254      call GatherField( masq_mpi,masq,1)
     255     
    251256      DEALLOCATE( rlat_mpi, rlon_mpi)
    252257      DEALLOCATE( tsol_mpi)
     
    282287      DEALLOCATE( ratqs_mpi)
    283288      DEALLOCATE( run_off_lic_0_mpi)
     289      DEALLOCATE( masq_mpi)
    284290
    285291      if (phy_rank==0) then
     
    296302c
    297303      ierr = NF_DEF_DIM (nid, "index", length, idim1)
    298       ierr = NF_DEF_DIM (nid, "points_physiques", klon, idim2)
    299       ierr = NF_DEF_DIM (nid, "horizon_vertical", klon*klev, idim3)
     304      ierr = NF_DEF_DIM (nid, "points_physiques", klon2, idim2)
     305      ierr = NF_DEF_DIM (nid, "horizon_vertical", klon2*klev, idim3)
    300306c
    301307      ierr = NF_ENDDEF(nid)
     
    378384      ierr = NF_ENDDEF(nid)
    379385#ifdef NC_DOUBLE
    380       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,zmasq)
    381 #else
    382       ierr = NF_PUT_VAR_REAL (nid,nvarid,zmasq)
     386      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,masq)
     387#else
     388      ierr = NF_PUT_VAR_REAL (nid,nvarid,masq)
    383389#endif     
    384390c BP ajout des fraction de chaque sous-surface
     
    396402      ierr = NF_ENDDEF(nid)
    397403#ifdef NC_DOUBLE
    398       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,pctsrf(1 : klon, is_ter))
    399 #else
    400       ierr = NF_PUT_VAR_REAL (nid,nvarid,pctsrf(1 : klon, is_ter))
     404      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,pctsrf(1 : klon2, is_ter))
     405#else
     406      ierr = NF_PUT_VAR_REAL (nid,nvarid,pctsrf(1 : klon2, is_ter))
    401407#endif
    402408C
     
    413419      ierr = NF_ENDDEF(nid)
    414420#ifdef NC_DOUBLE
    415       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,pctsrf(1 : klon,is_lic))
    416 #else
    417       ierr = NF_PUT_VAR_REAL (nid,nvarid,pctsrf(1 : klon, is_lic))
     421      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,pctsrf(1 : klon2,is_lic))
     422#else
     423      ierr = NF_PUT_VAR_REAL (nid,nvarid,pctsrf(1 : klon2, is_lic))
    418424#endif
    419425C
     
    430436      ierr = NF_ENDDEF(nid)
    431437#ifdef NC_DOUBLE
    432       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,pctsrf(1 : klon, is_oce))
    433 #else
    434       ierr = NF_PUT_VAR_REAL (nid,nvarid,pctsrf(1 : klon, is_oce))
     438      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,pctsrf(1 : klon2, is_oce))
     439#else
     440      ierr = NF_PUT_VAR_REAL (nid,nvarid,pctsrf(1 : klon2, is_oce))
    435441#endif
    436442C
     
    447453      ierr = NF_ENDDEF(nid)
    448454#ifdef NC_DOUBLE
    449       ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,pctsrf(1 : klon, is_sic))
    450 #else
    451       ierr = NF_PUT_VAR_REAL (nid,nvarid,pctsrf(1 : klon, is_sic))
     455      ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,pctsrf(1 : klon2, is_sic))
     456#else
     457      ierr = NF_PUT_VAR_REAL (nid,nvarid,pctsrf(1 : klon2, is_sic))
    452458#endif
    453459C
     
    757763#endif
    758764c
     765       endif
     766c$OMP END MASTER
     767cc ----> necessaire pour eviter bug openMP sur SX6
     768c$OMP MASTER
     769      if (phy_rank==0) then
    759770      DO nsrf = 1, nbsrf
    760771        IF (nsrf.LE.99) THEN
Note: See TracChangeset for help on using the changeset viewer.