Changeset 2429


Ignore:
Timestamp:
Jan 27, 2016, 1:43:09 PM (8 years ago)
Author:
Laurent Fairhead
Message:

Correction on the calculation of the surface of the grid at the poles (problem was introduced
in r2222).
Due to the different distribution of OMP tasks in the dynamics and the physics, had to
introduce 2 new logical variables, is_pole_north_phy and is_pole_south_phy, and so decided
to rename the old is_north_pole/is_south_pole to is_north_pole_dyn/is_south_pole_dyn to
stay coherent and, hopefully, clear things up a bit.
LF

Location:
LMDZ5/trunk/libf
Files:
13 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/trunk/libf/dynphy_lonlat/calfis_loc.F

    • Property svn:keywords set to Id
    r2418 r2429  
    417417      kend=klon
    418418     
    419       if (is_north_pole) kstart=2
    420       if (is_south_pole) kend=klon-1
     419      if (is_north_pole_dyn) kstart=2
     420      if (is_south_pole_dyn) kend=klon-1
    421421     
    422422c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)     
     
    446446      jjb=jj_begin_dyn-1
    447447      jje=jj_end_dyn+1
    448       if (is_north_pole) jjb=1
    449       if (is_south_pole) jje=jjm
     448      if (is_north_pole_dyn) jjb=1
     449      if (is_south_pole_dyn) jje=jjm
    450450
    451451c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
     
    497497c        V = 1 / pi  *  integrale [ v * sin(long) * d long ]
    498498
    499       if (is_north_pole) then
     499      if (is_north_pole_dyn) then
    500500c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)     
    501501        DO l=1,llm
     
    525525c        V = 1 / pi  *  integrale [ v * sin(long) * d long ]
    526526
    527       if (is_south_pole) then
     527      if (is_south_pole_dyn) then
    528528c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)     
    529529        DO l=1,llm
     
    915915        pdvfi(:,jj_begin,l)=0
    916916               
    917         if (.not. is_south_pole) then
     917        if (.not. is_south_pole_dyn) then
    918918          pdhfi(:,jj_end:jj_end+1,l)=0
    919919          pdqfi(:,jj_end:jj_end+1,l,:)=0
     
    928928        pdpsfi(:,jj_begin)=0   
    929929       
    930        if (.not. is_south_pole) then
     930       if (.not. is_south_pole_dyn) then
    931931         pdpsfi(:,jj_end:jj_end+1)=0
    932932       endif
     
    944944      kend=klon
    945945
    946       if (is_north_pole) kstart=2
    947       if (is_south_pole)  kend=klon-1
     946      if (is_north_pole_dyn) kstart=2
     947      if (is_south_pole_dyn)  kend=klon-1
    948948
    949949!CDIR ON_ADB(index_i)
     
    957957         enddo         
    958958
    959         if (is_north_pole) then
     959        if (is_north_pole_dyn) then
    960960            DO i=1,iip1
    961961              pdpsfi(i,1)    = zdpsrf(1)
     
    963963        endif
    964964       
    965         if (is_south_pole) then
     965        if (is_south_pole_dyn) then
    966966            DO i=1,iip1
    967967              pdpsfi(i,jjp1) = zdpsrf(klon)
     
    978978      kend=klon
    979979
    980       if (is_north_pole) kstart=2
    981       if (is_south_pole)  kend=klon-1
     980      if (is_north_pole_dyn) kstart=2
     981      if (is_south_pole_dyn)  kend=klon-1
    982982
    983983c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
     
    994994         enddo         
    995995
    996         if (is_north_pole) then
     996        if (is_north_pole_dyn) then
    997997            DO i=1,iip1
    998998              pdhfi(i,1,l)    = cpp *  zdtfi(1,l)      / ppk(i, 1  ,l)
     
    10001000        endif
    10011001       
    1002         if (is_south_pole) then
     1002        if (is_south_pole_dyn) then
    10031003            DO i=1,iip1
    10041004              pdhfi(i,jjp1,l) = cpp *  zdtfi(klon,l)/ ppk(i,jjp1,l)
     
    10221022!           enddo
    10231023!           
    1024 !           if (is_north_pole) then
     1024!           if (is_north_pole_dyn) then
    10251025!             do i=1,iip1
    10261026!               pdqfi(i,1,l,iq)    = zdqfi(1,l,iq)             
     
    10281028!           endif
    10291029!           
    1030 !           if (is_south_pole) then
     1030!           if (is_south_pole_dyn) then
    10311031!             do i=1,iip1
    10321032!               pdqfi(i,jjp1,l,iq) = zdqfi(klon,l,iq)
     
    10631063            ENDDO
    10641064           
    1065             IF (is_north_pole) then
     1065            IF (is_north_pole_dyn) then
    10661066              DO i=1,iip1
    10671067                pdqfi(i,1,l,iiq)    = zdqfi(1,l,iq)
     
    10691069            ENDIF
    10701070           
    1071             IF (is_south_pole) then
     1071            IF (is_south_pole_dyn) then
    10721072              DO i=1,iip1
    10731073                pdqfi(i,jjp1,l,iiq) = zdqfi(klon,l,iq)
     
    11021102         enddo
    11031103         
    1104          if (is_north_pole) then
     1104         if (is_north_pole_dyn) then
    11051105           DO i=1,iip1
    11061106            pdufi(i,1,l)    = 0.
     
    11081108         endif
    11091109         
    1110          if (is_south_pole) then
     1110         if (is_south_pole_dyn) then
    11111111           DO i=1,iip1
    11121112            pdufi(i,jjp1,l) = 0.
     
    11231123      kend=klon
    11241124
    1125       if (is_north_pole) kstart=2
    1126       if (is_south_pole)  kend=klon-1-iim
     1125      if (is_north_pole_dyn) kstart=2
     1126      if (is_south_pole_dyn)  kend=klon-1-iim
    11271127     
    11281128c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)     
     
    11481148c      v = U * cos(long) + V * SIN(long)
    11491149
    1150       if (is_north_pole) then
     1150      if (is_north_pole_dyn) then
    11511151
    11521152c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)     
     
    11681168      endif   
    11691169     
    1170       if (is_south_pole) then
     1170      if (is_south_pole_dyn) then
    11711171
    11721172c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)     
  • LMDZ5/trunk/libf/dynphy_lonlat/calfis_p.F

    r2418 r2429  
    393393      kend=klon
    394394     
    395       if (is_north_pole) kstart=2
    396       if (is_south_pole) kend=klon-1
     395      if (is_north_pole_dyn) kstart=2
     396      if (is_south_pole_dyn) kend=klon-1
    397397     
    398398c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)     
     
    422422      jjb=jj_begin_dyn-1
    423423      jje=jj_end_dyn+1
    424       if (is_north_pole) jjb=1
    425       if (is_south_pole) jje=jjm
     424      if (is_north_pole_dyn) jjb=1
     425      if (is_south_pole_dyn) jje=jjm
    426426
    427427c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
     
    474474c        V = 1 / pi  *  integrale [ v * sin(long) * d long ]
    475475
    476       if (is_north_pole) then
     476      if (is_north_pole_dyn) then
    477477c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)     
    478478        DO l=1,llm
     
    502502c        V = 1 / pi  *  integrale [ v * sin(long) * d long ]
    503503
    504       if (is_south_pole) then
     504      if (is_south_pole_dyn) then
    505505c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)     
    506506        DO l=1,llm
     
    878878         pdvfi(:,jj_begin,l)=0
    879879         
    880          if (.not. is_south_pole) then
     880         if (.not. is_south_pole_dyn) then
    881881           pdhfi(:,jj_end,l)=0
    882882           pdqfi(:,jj_end,l,:)=0
     
    890890c$OMP MASTER
    891891       pdpsfi(:,jj_begin)=0   
    892        if (.not. is_south_pole) then
     892       if (.not. is_south_pole_dyn) then
    893893         pdpsfi(:,jj_end)=0
    894894       endif
     
    908908      kend=klon
    909909
    910       if (is_north_pole) kstart=2
    911       if (is_south_pole)  kend=klon-1
     910      if (is_north_pole_dyn) kstart=2
     911      if (is_south_pole_dyn)  kend=klon-1
    912912
    913913c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)
     
    924924         enddo         
    925925
    926         if (is_north_pole) then
     926        if (is_north_pole_dyn) then
    927927            DO i=1,iip1
    928928              pdhfi(i,1,l)    = cpp *  zdtfi(1,l)      / ppk(i, 1  ,l)
     
    930930        endif
    931931       
    932         if (is_south_pole) then
     932        if (is_south_pole_dyn) then
    933933            DO i=1,iip1
    934934              pdhfi(i,jjp1,l) = cpp *  zdtfi(klon,l)/ ppk(i,jjp1,l)
     
    952952!           enddo
    953953!           
    954 !           if (is_north_pole) then
     954!           if (is_north_pole_dyn) then
    955955!             do i=1,iip1
    956956!               pdqfi(i,1,l,iq)    = zdqfi(1,l,iq)             
     
    958958!           endif
    959959!           
    960 !           if (is_south_pole) then
     960!           if (is_south_pole_dyn) then
    961961!             do i=1,iip1
    962962!               pdqfi(i,jjp1,l,iq) = zdqfi(klon,l,iq)
     
    993993            ENDDO
    994994           
    995             IF (is_north_pole) then
     995            IF (is_north_pole_dyn) then
    996996              DO i=1,iip1
    997997                pdqfi(i,1,l,iiq)    = zdqfi(1,l,iq)
     
    999999            ENDIF
    10001000           
    1001             IF (is_south_pole) then
     1001            IF (is_south_pole_dyn) then
    10021002              DO i=1,iip1
    10031003                pdqfi(i,jjp1,l,iiq) = zdqfi(klon,l,iq)
     
    10321032         enddo
    10331033         
    1034          if (is_north_pole) then
     1034         if (is_north_pole_dyn) then
    10351035           DO i=1,iip1
    10361036            pdufi(i,1,l)    = 0.
     
    10381038         endif
    10391039         
    1040          if (is_south_pole) then
     1040         if (is_south_pole_dyn) then
    10411041           DO i=1,iip1
    10421042            pdufi(i,jjp1,l) = 0.
     
    10531053      kend=klon
    10541054
    1055       if (is_north_pole) kstart=2
    1056       if (is_south_pole)  kend=klon-1-iim
     1055      if (is_north_pole_dyn) kstart=2
     1056      if (is_south_pole_dyn)  kend=klon-1-iim
    10571057     
    10581058c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)     
     
    10781078c      v = U * cos(long) + V * SIN(long)
    10791079
    1080       if (is_north_pole) then
     1080      if (is_north_pole_dyn) then
    10811081
    10821082c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)     
     
    10981098      endif   
    10991099     
    1100       if (is_south_pole) then
     1100      if (is_south_pole_dyn) then
    11011101
    11021102c$OMP DO SCHEDULE(STATIC,OMP_CHUNK)     
  • LMDZ5/trunk/libf/dynphy_lonlat/mod_interface_dyn_phys.F90

    r2351 r2429  
    2222   
    2323    k=1
    24     IF (is_north_pole) THEN
     24    IF (is_north_pole_dyn) THEN
    2525      index_i(k)=1
    2626      index_j(k)=1
     
    2828    ELSE
    2929      DO i=ii_begin,iim
    30         index_i(k)=i
    31         index_j(k)=jj_begin
    32         k=k+1
    33        ENDDO
     30        index_i(k)=i
     31        index_j(k)=jj_begin
     32        k=k+1
     33      ENDDO
    3434    ENDIF
    3535   
    3636    DO j=jj_begin+1,jj_end-1
    3737      DO i=1,iim
    38         index_i(k)=i
    39         index_j(k)=j
    40         k=k+1
     38        index_i(k)=i
     39        index_j(k)=j
     40        k=k+1
    4141      ENDDO
    4242    ENDDO
    4343   
    44     IF (is_south_pole) THEN
     44    IF (is_south_pole_dyn) THEN
    4545      index_i(k)=1
    4646      index_j(k)=jj_end
    4747    ELSE
    4848      DO i=1,ii_end
    49         index_i(k)=i
    50         index_j(k)=jj_end
    51         k=k+1
     49        index_i(k)=i
     50        index_j(k)=jj_end
     51        k=k+1
    5252       ENDDO
    5353    ENDIF
  • LMDZ5/trunk/libf/phy_common/mod_phys_lmdz_mpi_data.F90

    • Property svn:keywords changed from Author Date Id Revision to Id
    r2352 r2429  
    11!
    2 !$Header$
     2!$Id$
    33!
    44MODULE mod_phys_lmdz_mpi_data
     
    4141 
    4242 
    43   LOGICAL,SAVE :: is_north_pole
    44   LOGICAL,SAVE :: is_south_pole
     43!  LOGICAL,SAVE :: is_north_pole
     44!  LOGICAL,SAVE :: is_south_pole
     45  LOGICAL,SAVE :: is_north_pole_dyn
     46  LOGICAL,SAVE :: is_south_pole_dyn
    4547  INTEGER,SAVE :: COMM_LMDZ_PHY
    4648  INTEGER,SAVE :: MPI_REAL_LMDZ   ! MPI_REAL8
     
    109111   
    110112    IF (mpi_rank == 0) THEN
    111       is_north_pole = .TRUE.
    112     ELSE
    113       is_north_pole = .FALSE.
     113      is_north_pole_dyn = .TRUE.
     114    ELSE
     115      is_north_pole_dyn = .FALSE.
    114116    ENDIF
    115117   
    116118    IF (mpi_rank == mpi_size-1) THEN
    117       is_south_pole = .TRUE.
    118     ELSE
    119       is_south_pole = .FALSE.
     119      is_south_pole_dyn = .TRUE.
     120    ELSE
     121      is_south_pole_dyn = .FALSE.
    120122    ENDIF
    121123   
     
    217219    WRITE(lunout,*) 'mpi_master =', mpi_master
    218220    WRITE(lunout,*) 'is_mpi_root =', is_mpi_root
    219     WRITE(lunout,*) 'is_north_pole =', is_north_pole
    220     WRITE(lunout,*) 'is_south_pole =', is_south_pole
     221    WRITE(lunout,*) 'is_north_pole =', is_north_pole_dyn
     222    WRITE(lunout,*) 'is_south_pole =', is_south_pole_dyn
    221223    WRITE(lunout,*) 'COMM_LMDZ_PHY =', COMM_LMDZ_PHY
    222224 
  • LMDZ5/trunk/libf/phy_common/mod_phys_lmdz_mpi_transfert.F90

    • Property svn:keywords changed from Author Date Id Revision to Id
    r2351 r2429  
    11!
    2 !$Header$
     2!$Id$
    33!
    44MODULE mod_phys_lmdz_mpi_transfert
     
    16931693   
    16941694    offset=ii_begin
    1695     IF (is_north_pole) Offset=nbp_lon
     1695    IF (is_north_pole_dyn) Offset=nbp_lon
    16961696   
    16971697   
     
    17031703   
    17041704   
    1705     IF (is_north_pole) THEN
     1705    IF (is_north_pole_dyn) THEN
    17061706      DO i=1,dimsize
    17071707        DO ij=1,nbp_lon
     
    17111711    ENDIF
    17121712   
    1713     IF (is_south_pole) THEN
     1713    IF (is_south_pole_dyn) THEN
    17141714      DO i=1,dimsize
    17151715        DO ij=nbp_lon*(jj_nb-1)+1,nbp_lon*jj_nb
     
    17371737   
    17381738    offset=ii_begin
    1739     IF (is_north_pole) Offset=nbp_lon
     1739    IF (is_north_pole_dyn) Offset=nbp_lon
    17401740   
    17411741   
     
    17471747   
    17481748   
    1749     IF (is_north_pole) THEN
     1749    IF (is_north_pole_dyn) THEN
    17501750      DO i=1,dimsize
    17511751        DO ij=1,nbp_lon
     
    17551755    ENDIF
    17561756   
    1757     IF (is_south_pole) THEN
     1757    IF (is_south_pole_dyn) THEN
    17581758      DO i=1,dimsize
    17591759        DO ij=nbp_lon*(jj_nb-1)+1,nbp_lon*jj_nb
     
    17821782   
    17831783    offset=ii_begin
    1784     IF (is_north_pole) Offset=nbp_lon
     1784    IF (is_north_pole_dyn) Offset=nbp_lon
    17851785   
    17861786   
     
    17921792   
    17931793   
    1794     IF (is_north_pole) THEN
     1794    IF (is_north_pole_dyn) THEN
    17951795      DO i=1,dimsize
    17961796        DO ij=1,nbp_lon
     
    18001800    ENDIF
    18011801   
    1802     IF (is_south_pole) THEN
     1802    IF (is_south_pole_dyn) THEN
    18031803      DO i=1,dimsize
    18041804        DO ij=nbp_lon*(jj_nb-1)+1,nbp_lon*jj_nb
     
    18241824
    18251825    offset=ii_begin
    1826     IF (is_north_pole) offset=nbp_lon
     1826    IF (is_north_pole_dyn) offset=nbp_lon
    18271827
    18281828    DO i=1,dimsize
     
    18321832    ENDDO
    18331833
    1834     IF (is_north_pole) THEN
     1834    IF (is_north_pole_dyn) THEN
    18351835      DO i=1,dimsize
    18361836        VarOut(1,i)=VarIn(1,i)
     
    18541854
    18551855    offset=ii_begin
    1856     IF (is_north_pole) offset=nbp_lon
     1856    IF (is_north_pole_dyn) offset=nbp_lon
    18571857
    18581858    DO i=1,dimsize
     
    18621862    ENDDO
    18631863
    1864     IF (is_north_pole) THEN
     1864    IF (is_north_pole_dyn) THEN
    18651865      DO i=1,dimsize
    18661866         VarOut(1,i)=VarIn(1,i)
     
    18831883
    18841884    offset=ii_begin
    1885     IF (is_north_pole) offset=nbp_lon
     1885    IF (is_north_pole_dyn) offset=nbp_lon
    18861886
    18871887    DO i=1,dimsize
     
    18911891    ENDDO
    18921892
    1893     IF (is_north_pole) THEN
     1893    IF (is_north_pole_dyn) THEN
    18941894      DO i=1,dimsize
    18951895        VarOut(1,i)=VarIn(1,i)
  • LMDZ5/trunk/libf/phy_common/mod_phys_lmdz_omp_data.F90

    r2326 r2429  
    88  LOGICAL,SAVE :: is_omp_root
    99  LOGICAL,SAVE :: is_using_omp
     10  LOGICAL,SAVE :: is_north_pole_phy, is_south_pole_phy
    1011 
    1112  INTEGER,SAVE,DIMENSION(:),ALLOCATABLE :: klon_omp_para_nb
     
    1718  INTEGER,SAVE :: klon_omp_end
    1819!$OMP  THREADPRIVATE(omp_rank,klon_omp,is_omp_root,klon_omp_begin,klon_omp_end)
     20!$OMP  THREADPRIVATE(is_north_pole_phy, is_south_pole_phy)
    1921
    2022CONTAINS
    2123 
    2224  SUBROUTINE Init_phys_lmdz_omp_data(klon_mpi)
    23     USE dimphy
     25    USE dimphy
     26    USE mod_phys_lmdz_mpi_data, ONLY : is_north_pole_dyn, is_south_pole_dyn
    2427    IMPLICIT NONE
    2528    INTEGER, INTENT(in) :: klon_mpi
     
    4346        omp_size=OMP_GET_NUM_THREADS()
    4447!$OMP END MASTER
     48!$OMP BARRIER
    4549        omp_rank=OMP_GET_THREAD_NUM()   
    4650#else   
     
    6266
    6367!$OMP MASTER
     68
    6469    ALLOCATE(klon_omp_para_nb(0:omp_size-1))
    6570    ALLOCATE(klon_omp_para_begin(0:omp_size-1))
     
    8085!$OMP END MASTER
    8186!$OMP BARRIER
     87
     88   if ((is_north_pole_dyn) .AND. (omp_rank == 0 )) then
     89      is_north_pole_phy = .TRUE.
     90    else
     91      is_north_pole_phy = .FALSE.
     92    endif
     93    if ((is_south_pole_dyn) .AND. (omp_rank == omp_size-1)) then
     94      is_south_pole_phy = .TRUE.
     95    else
     96      is_south_pole_phy = .FALSE.
     97    endif
    8298   
    8399    klon_omp=klon_omp_para_nb(omp_rank)
  • LMDZ5/trunk/libf/phy_common/mod_phys_lmdz_para.F90

    • Property svn:keywords changed from Author Date Id Revision to Id
    r2351 r2429  
    11!
    2 !$Header$
     2! $Id$
    33!
    44MODULE mod_phys_lmdz_para
     
    1111  LOGICAL,SAVE :: is_parallel
    1212  LOGICAL,SAVE :: is_master
     13
    1314 
    1415!$OMP THREADPRIVATE(klon_loc,is_master)
     
    4142       is_parallel=.FALSE.
    4243     ENDIF
     44
     45
    4346     
    4447  END SUBROUTINE Init_phys_lmdz_para
  • LMDZ5/trunk/libf/phylmd/atm2geo.F90

    • Property svn:keywords changed from Author Date Id Revision to Id
    r2346 r2429  
    11!
    2 ! $Header$
     2! $Id$
    33!
    44SUBROUTINE atm2geo ( im, jm, pte, ptn, plon, plat, pxx, pyy, pzz )
     
    3232 
    3333! Value at North Pole 
    34   IF (is_north_pole) THEN
     34  IF (is_north_pole_dyn) THEN
    3535     pxx(:, 1) = - pte (1, 1)
    3636     pyy(:, 1) = - ptn (1, 1)
     
    3939
    4040! Value at South Pole
    41   IF (is_south_pole) THEN
     41  IF (is_south_pole_dyn) THEN
    4242     pxx(:,jm) = pxx(1,jm)
    4343     pyy(:,jm) = pyy(1,jm)
  • LMDZ5/trunk/libf/phylmd/cpl_mod.F90

    r2399 r2429  
    11151115   
    11161116      IF (is_parallel) THEN
    1117          IF (.NOT. is_north_pole) THEN
     1117         IF (.NOT. is_north_pole_dyn) THEN
    11181118#ifdef CPP_MPI
    11191119            CALL MPI_RECV(Up,1,MPI_REAL_LMDZ,mpi_rank-1,1234,COMM_LMDZ_PHY,status,error)
     
    11221122         ENDIF
    11231123       
    1124          IF (.NOT. is_south_pole) THEN
     1124         IF (.NOT. is_south_pole_dyn) THEN
    11251125#ifdef CPP_MPI
    11261126            CALL MPI_SEND(tmp_calv(1,jj_nb),1,MPI_REAL_LMDZ,mpi_rank+1,1234,COMM_LMDZ_PHY,error)
     
    11291129         ENDIF
    11301130         
    1131          IF (.NOT. is_north_pole .AND. ii_begin /=1) THEN
     1131         IF (.NOT. is_north_pole_dyn .AND. ii_begin /=1) THEN
    11321132            Up=Up+tmp_calv(nbp_lon,1)
    11331133            tmp_calv(:,1)=Up
    11341134         ENDIF
    11351135         
    1136          IF (.NOT. is_south_pole .AND. ii_end /= nbp_lon) THEN
     1136         IF (.NOT. is_south_pole_dyn .AND. ii_end /= nbp_lon) THEN
    11371137            Down=Down+tmp_calv(1,jj_nb)
    11381138            tmp_calv(:,jj_nb)=Down       
     
    12221222
    12231223    IF (is_sequential) THEN
    1224        IF (is_north_pole) tmp_lon(:,1)     = tmp_lon(:,2)
    1225        IF (is_south_pole) tmp_lon(:,nbp_lat) = tmp_lon(:,nbp_lat-1)
     1224       IF (is_north_pole_dyn) tmp_lon(:,1)     = tmp_lon(:,2)
     1225       IF (is_south_pole_dyn) tmp_lon(:,nbp_lat) = tmp_lon(:,nbp_lat-1)
    12261226    ENDIF
    12271227     
     
    13891389    CALL Grid1Dto2D_mpi(temp_mpi,champ_out)
    13901390   
    1391     IF (is_north_pole) champ_out(:,1)=temp_mpi(1)
    1392     IF (is_south_pole) champ_out(:,jj_nb)=temp_mpi(klon)
     1391    IF (is_north_pole_dyn) champ_out(:,1)=temp_mpi(1)
     1392    IF (is_south_pole_dyn) champ_out(:,jj_nb)=temp_mpi(klon)
    13931393!$OMP END MASTER
    13941394   
  • LMDZ5/trunk/libf/phylmd/geo2atm.F90

    r2346 r2429  
    3737
    3838  ! Value at North Pole
    39   IF (is_north_pole) THEN
     39  IF (is_north_pole_dyn) THEN
    4040     pu(:, 1) = -px (1,1)
    4141     pv(:, 1) = -py (1,1)
     
    4444 
    4545  ! Value at South Pole     
    46   IF (is_south_pole) THEN
     46  IF (is_south_pole_dyn) THEN
    4747     pu(:,jm) = -px (1,jm)
    4848     pv(:,jm) = -py (1,jm)
  • LMDZ5/trunk/libf/phylmd/iophy.F90

    r2350 r2429  
    4444                                jj_nb, jj_begin, jj_end, ii_begin, ii_end, &
    4545                                mpi_size, mpi_rank, klon_mpi, &
    46                                 is_sequential, is_south_pole
     46                                is_sequential, is_south_pole_dyn
    4747  USE mod_grid_phy_lmdz, only: nbp_lon, nbp_lat, klon_glo
    4848  USE print_control_mod, ONLY: prt_level,lunout
     
    144144      write(lunout,*) "init_iophy_new: mpirank=",mpi_rank," data_ibegin=",data_ibegin," data_iend=",data_iend
    145145      write(lunout,*) "init_iophy_new: mpirank=",mpi_rank," data_ibegin=",data_ibegin," data_iend=",data_iend
    146       write(lunout,*) "init_iophy_new: mpirank=",mpi_rank," is_south_pole=",is_south_pole
     146      write(lunout,*) "init_iophy_new: mpirank=",mpi_rank," is_south_pole=",is_south_pole_dyn
    147147    endif
    148148
     
    151151                            1, nbp_lon, ii_begin, ii_end, jj_begin, jj_end,             &
    152152                            klon_mpi+2*(nbp_lon-1), data_ibegin, data_iend,             &
    153                             io_lat, io_lon,is_south_pole,mpi_rank)
     153                            io_lat, io_lon,is_south_pole_dyn,mpi_rank)
    154154#endif
    155155!$OMP END MASTER
  • LMDZ5/trunk/libf/phylmd/oasis.F90

    r2371 r2429  
    342342   
    343343    istart=ii_begin
    344     IF (is_south_pole) THEN
     344    IF (is_south_pole_dyn) THEN
    345345       iend=(jj_end-jj_begin)*nbp_lon+nbp_lon
    346346    ELSE
     
    408408
    409409    istart=ii_begin
    410     IF (is_south_pole) THEN
     410    IF (is_south_pole_dyn) THEN
    411411       iend=(jj_end-jj_begin)*nbp_lon+nbp_lon
    412412    ELSE
     
    417417       wstart=istart
    418418       wend=iend
    419        IF (is_north_pole) wstart=istart+nbp_lon-1
    420        IF (is_south_pole) wend=iend-nbp_lon+1
     419       IF (is_north_pole_dyn) wstart=istart+nbp_lon-1
     420       IF (is_south_pole_dyn) wend=iend-nbp_lon+1
    421421       
    422422       DO i = 1, maxsend
  • LMDZ5/trunk/libf/phylmd/phys_output_write_mod.F90

    r2393 r2429  
    11!
    2 ! $Header$
     2! $Id$
    33!
    44MODULE phys_output_write_mod
     
    2525
    2626    USE dimphy, only: klon, klev, klevp1, nslay
     27    USE mod_phys_lmdz_para, ONLY: is_north_pole_phy,is_south_pole_phy
    2728    USE mod_grid_phy_lmdz, ONLY : nbp_lon, nbp_lat
    2829    USE time_phylmdz_mod, only: day_step_phy, start_time, itau_phy
     
    348349!!! Champs 1D !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    349350       CALL histwrite_phy(o_phis, pphis)
    350        CALL histwrite_phy(o_aire, cell_area)
     351
     352       zx_tmp_fi2d = cell_area
     353       if (is_north_pole_phy) then
     354         zx_tmp_fi2d(1) = cell_area(1)/nbp_lon
     355       endif
     356       if (is_south_pole_phy) then
     357         zx_tmp_fi2d(klon) = cell_area(klon)/nbp_lon
     358       endif
     359       CALL histwrite_phy(o_aire, zx_tmp_fi2d)
    351360
    352361       IF (vars_defined) THEN
Note: See TracChangeset for help on using the changeset viewer.