New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 3918 for trunk – NEMO

Changeset 3918 for trunk


Ignore:
Timestamp:
2013-06-13T12:50:37+02:00 (11 years ago)
Author:
smasson
Message:

trunk: better fortran and error in the conv of agrif, see ticket #1111 and #1112

Location:
trunk/NEMOGCM/NEMO
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMOGCM/NEMO/NST_SRC/agrif_lim2_interp.F90

    r3916 r3918  
    334334      !!  we are in inside a new parent ice time step 
    335335     !!----------------------------------------------------------------------- 
    336       REAL(wp), DIMENSION(jpi,jpj,7) :: ztab3d  
     336      REAL(wp), DIMENSION(jpi,jpj,7) :: ztab  
    337337      INTEGER :: ji,jj,jn 
    338338      !!----------------------------------------------------------------------- 
     
    345345         adv_ice_sn(:,:,:,1) =  adv_ice_sn(:,:,:,2) 
    346346         ! interpolation of boundaries 
    347          ztab3d(:,:,:) = 0. 
     347         ztab(:,:,:) = 0. 
    348348         Agrif_SpecialValue=-9999. 
    349349         Agrif_UseSpecialValue = .TRUE. 
    350          CALL Agrif_Bc_variable( ztab3d, adv_ice_id ,procname=interp_adv_ice,calledweight=1. ) 
     350         CALL Agrif_Bc_variable( ztab, adv_ice_id ,procname=interp_adv_ice,calledweight=1. ) 
    351351         Agrif_SpecialValue=0. 
    352352         Agrif_UseSpecialValue = .FALSE. 
     
    356356            DO jj = 1, jpj 
    357357               DO ji=1,2 
    358                   adv_ice_oe(ji  ,jj,jn,2) = ztab3d(ji       ,jj,jn)  
    359                   adv_ice_oe(ji+2,jj,jn,2) = ztab3d(nlci-2+ji,jj,jn) 
     358                  adv_ice_oe(ji  ,jj,jn,2) = ztab(ji       ,jj,jn)  
     359                  adv_ice_oe(ji+2,jj,jn,2) = ztab(nlci-2+ji,jj,jn) 
    360360               END DO 
    361361            END DO 
     
    365365            Do jj =1,2 
    366366               DO ji = 1, jpi 
    367                   adv_ice_sn(ji,jj  ,jn,2) = ztab3d(ji,jj       ,jn)  
    368                   adv_ice_sn(ji,jj+2,jn,2) = ztab3d(ji,nlcj-2+jj,jn) 
     367                  adv_ice_sn(ji,jj  ,jn,2) = ztab(ji,jj       ,jn)  
     368                  adv_ice_sn(ji,jj+2,jn,2) = ztab(ji,nlcj-2+jj,jn) 
    369369               END DO 
    370370            END DO 
     
    384384      INTEGER :: ji,jj,jn 
    385385      REAL(wp) :: zalpha 
    386       REAL(wp), DIMENSION(jpi,jpj,7) :: ztab3d  
     386      REAL(wp), DIMENSION(jpi,jpj,7) :: ztab  
    387387      !!-----------------------------------------------------------------------       
    388388      ! 
     
    391391      zalpha = REAL(lim_nbstep,wp) / (Agrif_Rhot()*Agrif_PArent(nn_fsbc)/REAL(nn_fsbc)) 
    392392      ! 
    393       ztab3d(:,:,:) = 0.e0 
     393      ztab(:,:,:) = 0.e0 
    394394      DO jn =1,7 
    395395         DO jj =1,2 
    396396            DO ji = 1, jpi 
    397                ztab3d(ji,jj        ,jn) = (1-zalpha)*adv_ice_sn(ji,jj  ,jn,1) + zalpha*adv_ice_sn(ji,jj  ,jn,2)  
    398                ztab3d(ji,nlcj-2+jj ,jn) = (1-zalpha)*adv_ice_sn(ji,jj+2,jn,1) + zalpha*adv_ice_sn(ji,jj+2,jn,2)  
     397               ztab(ji,jj        ,jn) = (1-zalpha)*adv_ice_sn(ji,jj  ,jn,1) + zalpha*adv_ice_sn(ji,jj  ,jn,2)  
     398               ztab(ji,nlcj-2+jj ,jn) = (1-zalpha)*adv_ice_sn(ji,jj+2,jn,1) + zalpha*adv_ice_sn(ji,jj+2,jn,2)  
    399399            END DO 
    400400         END DO 
     
    404404         DO jj = 1, jpj 
    405405            DO ji=1,2 
    406                ztab3d(ji       ,jj,jn) = (1-zalpha)*adv_ice_oe(ji  ,jj,jn,1) + zalpha*adv_ice_oe(ji  ,jj,jn,2)  
    407                ztab3d(nlci-2+ji,jj,jn) = (1-zalpha)*adv_ice_oe(ji+2,jj,jn,1) + zalpha*adv_ice_oe(ji+2,jj,jn,2)  
    408             END DO 
    409          END DO 
    410       END DO 
    411       ! 
    412       CALL parcoursT( ztab3d(:,:, 1), frld  ) 
    413       CALL parcoursT( ztab3d(:,:, 2), hicif ) 
    414       CALL parcoursT( ztab3d(:,:, 3), hsnif ) 
    415       CALL parcoursT( ztab3d(:,:, 4), tbif(:,:,1) ) 
    416       CALL parcoursT( ztab3d(:,:, 5), tbif(:,:,2) ) 
    417       CALL parcoursT( ztab3d(:,:, 6), tbif(:,:,3) ) 
    418       CALL parcoursT( ztab3d(:,:, 7), qstoif ) 
     406               ztab(ji       ,jj,jn) = (1-zalpha)*adv_ice_oe(ji  ,jj,jn,1) + zalpha*adv_ice_oe(ji  ,jj,jn,2)  
     407               ztab(nlci-2+ji,jj,jn) = (1-zalpha)*adv_ice_oe(ji+2,jj,jn,1) + zalpha*adv_ice_oe(ji+2,jj,jn,2)  
     408            END DO 
     409         END DO 
     410      END DO 
     411      ! 
     412      CALL parcoursT( ztab(:,:, 1), frld  ) 
     413      CALL parcoursT( ztab(:,:, 2), hicif ) 
     414      CALL parcoursT( ztab(:,:, 3), hsnif ) 
     415      CALL parcoursT( ztab(:,:, 4), tbif(:,:,1) ) 
     416      CALL parcoursT( ztab(:,:, 5), tbif(:,:,2) ) 
     417      CALL parcoursT( ztab(:,:, 6), tbif(:,:,3) ) 
     418      CALL parcoursT( ztab(:,:, 7), qstoif ) 
    419419      ! 
    420420   END SUBROUTINE agrif_trp_lim2 
  • trunk/NEMOGCM/NEMO/NST_SRC/agrif_opa_sponge.F90

    r3916 r3918  
    3434      REAL(wp) :: ztsa, zabe1, zabe2, zbtr 
    3535      REAL(wp), POINTER, DIMENSION(:,:    ) :: ztu, ztv 
    36       REAL(wp), POINTER, DIMENSION(:,:,:,:) :: ztab4d 
     36      REAL(wp), POINTER, DIMENSION(:,:,:,:) :: ztab 
    3737      REAL(wp), POINTER, DIMENSION(:,:,:,:) :: tsbdiff 
    3838 
    3939#if defined SPONGE 
    4040      CALL wrk_alloc( jpi, jpj, ztu, ztv ) 
    41       CALL wrk_alloc( jpi, jpj, jpk, jpts, ztab4d, tsbdiff  ) 
     41      CALL wrk_alloc( jpi, jpj, jpk, jpts, ztab, tsbdiff  ) 
    4242 
    4343      timecoeff = REAL(Agrif_NbStepint(),wp)/Agrif_rhot() 
     
    4545      Agrif_SpecialValue=0. 
    4646      Agrif_UseSpecialValue = .TRUE. 
    47       ztab4d = 0.e0 
    48       CALL Agrif_Bc_Variable(ztab4d, tsa_id,calledweight=timecoeff,procname=interptsn) 
     47      ztab = 0.e0 
     48      CALL Agrif_Bc_Variable(ztab, tsa_id,calledweight=timecoeff,procname=interptsn) 
    4949      Agrif_UseSpecialValue = .FALSE. 
    5050 
    51       tsbdiff(:,:,:,:) = tsb(:,:,:,:) - ztab4d(:,:,:,:) 
     51      tsbdiff(:,:,:,:) = tsb(:,:,:,:) - ztab(:,:,:,:) 
    5252 
    5353      CALL Agrif_Sponge 
     
    8080 
    8181      CALL wrk_dealloc( jpi, jpj, ztu, ztv ) 
    82       CALL wrk_dealloc( jpi, jpj, jpk, jpts, ztab4d, tsbdiff  ) 
     82      CALL wrk_dealloc( jpi, jpj, jpk, jpts, ztab, tsbdiff  ) 
    8383#endif 
    8484 
     
    9595      REAL(wp), POINTER, DIMENSION(:,:,:) :: ubdiff, vbdiff 
    9696      REAL(wp), POINTER, DIMENSION(:,:,:) :: rotdiff, hdivdiff 
    97       REAL(wp), POINTER, DIMENSION(:,:,:) :: ztab3d 
     97      REAL(wp), POINTER, DIMENSION(:,:,:) :: ztab 
    9898 
    9999#if defined SPONGE 
    100       CALL wrk_alloc( jpi, jpj, jpk, ztab3d, ubdiff, vbdiff, rotdiff, hdivdiff ) 
     100      CALL wrk_alloc( jpi, jpj, jpk, ztab, ubdiff, vbdiff, rotdiff, hdivdiff ) 
    101101 
    102102      timecoeff = REAL(Agrif_NbStepint(),wp)/Agrif_rhot() 
     
    104104      Agrif_SpecialValue=0. 
    105105      Agrif_UseSpecialValue = ln_spc_dyn 
    106       ztab3d = 0.e0 
    107       CALL Agrif_Bc_Variable(ztab3d, ua_id,calledweight=timecoeff,procname=interpun) 
     106      ztab = 0.e0 
     107      CALL Agrif_Bc_Variable(ztab, ua_id,calledweight=timecoeff,procname=interpun) 
    108108      Agrif_UseSpecialValue = .FALSE. 
    109109 
    110       ubdiff(:,:,:) = ( ub(:,:,:) - ztab3d(:,:,:) ) * umask(:,:,:) 
    111  
    112       ztab3d = 0.e0 
     110      ubdiff(:,:,:) = ( ub(:,:,:) - ztab(:,:,:) ) * umask(:,:,:) 
     111 
     112      ztab = 0.e0 
    113113      Agrif_SpecialValue=0. 
    114114      Agrif_UseSpecialValue = ln_spc_dyn 
    115       CALL Agrif_Bc_Variable(ztab3d, va_id,calledweight=timecoeff,procname=interpvn) 
     115      CALL Agrif_Bc_Variable(ztab, va_id,calledweight=timecoeff,procname=interpvn) 
    116116      Agrif_UseSpecialValue = .FALSE. 
    117117 
    118       vbdiff(:,:,:) = ( vb(:,:,:) - ztab3d(:,:,:) ) * vmask(:,:,:) 
     118      vbdiff(:,:,:) = ( vb(:,:,:) - ztab(:,:,:) ) * vmask(:,:,:) 
    119119 
    120120      CALL Agrif_Sponge 
     
    174174      END DO                                           !   End of slab 
    175175      !                                                ! =============== 
    176       CALL wrk_dealloc( jpi, jpj, jpk, ztab3d, ubdiff, vbdiff, rotdiff, hdivdiff ) 
     176      CALL wrk_dealloc( jpi, jpj, jpk, ztab, ubdiff, vbdiff, rotdiff, hdivdiff ) 
    177177#endif 
    178178 
  • trunk/NEMOGCM/NEMO/NST_SRC/agrif_opa_update.F90

    r3916 r3918  
    3232      !! 
    3333      INTEGER, INTENT(in) :: kt 
    34       REAL(wp), POINTER, DIMENSION(:,:,:,:) :: ztab4d 
     34      REAL(wp), POINTER, DIMENSION(:,:,:,:) :: ztab 
    3535 
    3636        
    3737      IF((Agrif_NbStepint() .NE. (Agrif_irhot()-1)).AND.(kt /= 0)) RETURN 
    3838#if defined TWO_WAY 
    39       CALL wrk_alloc( jpi, jpj, jpk, jpts, ztab4d ) 
     39      CALL wrk_alloc( jpi, jpj, jpk, jpts, ztab ) 
    4040 
    4141      Agrif_UseSpecialValueInUpdate = .TRUE. 
     
    4343 
    4444      IF (MOD(nbcline,nbclineupdate) == 0) THEN 
    45          CALL Agrif_Update_Variable(ztab4d,tsn_id, procname=updateTS) 
    46       ELSE 
    47          CALL Agrif_Update_Variable(ztab4d,tsn_id,locupdate=(/0,2/), procname=updateTS) 
     45         CALL Agrif_Update_Variable(ztab,tsn_id, procname=updateTS) 
     46      ELSE 
     47         CALL Agrif_Update_Variable(ztab,tsn_id,locupdate=(/0,2/), procname=updateTS) 
    4848      ENDIF 
    4949 
    5050      Agrif_UseSpecialValueInUpdate = .FALSE. 
    5151 
    52       CALL wrk_dealloc( jpi, jpj, jpk, jpts, ztab4d ) 
     52      CALL wrk_dealloc( jpi, jpj, jpk, jpts, ztab ) 
    5353#endif 
    5454 
     
    6262      INTEGER, INTENT(in) :: kt 
    6363      REAL(wp), POINTER, DIMENSION(:,:) :: ztab2d 
    64       REAL(wp), POINTER, DIMENSION(:,:,:) :: ztab3d 
     64      REAL(wp), POINTER, DIMENSION(:,:,:) :: ztab 
    6565 
    6666 
     
    6868#if defined TWO_WAY 
    6969      CALL wrk_alloc( jpi, jpj,      ztab2d ) 
    70       CALL wrk_alloc( jpi, jpj, jpk, ztab3d ) 
     70      CALL wrk_alloc( jpi, jpj, jpk, ztab  ) 
    7171 
    7272      IF (mod(nbcline,nbclineupdate) == 0) THEN 
    73          CALL Agrif_Update_Variable(ztab3d,un_id,procname = updateU) 
    74          CALL Agrif_Update_Variable(ztab3d,vn_id,procname = updateV) 
    75       ELSE 
    76          CALL Agrif_Update_Variable(ztab3d,un_id,locupdate=(/0,1/),procname = updateU) 
    77          CALL Agrif_Update_Variable(ztab3d,vn_id,locupdate=(/0,1/),procname = updateV)          
     73         CALL Agrif_Update_Variable(ztab,un_id,procname = updateU) 
     74         CALL Agrif_Update_Variable(ztab,vn_id,procname = updateV) 
     75      ELSE 
     76         CALL Agrif_Update_Variable(ztab,un_id,locupdate=(/0,1/),procname = updateU) 
     77         CALL Agrif_Update_Variable(ztab,vn_id,locupdate=(/0,1/),procname = updateV)          
    7878      ENDIF 
    7979 
     
    8989 
    9090      CALL wrk_dealloc( jpi, jpj,      ztab2d ) 
    91       CALL wrk_dealloc( jpi, jpj, jpk, ztab3d ) 
     91      CALL wrk_dealloc( jpi, jpj, jpk, ztab  ) 
    9292 
    9393!Done in step 
  • trunk/NEMOGCM/NEMO/OPA_SRC/LBC/lib_mpp.F90

    r3799 r3918  
    162162 
    163163   ! Arrays used in mpp_lbc_north_3d() 
    164    REAL(wp), DIMENSION(:,:,:)  , ALLOCATABLE, SAVE   ::   ztab, znorthloc 
    165    REAL(wp), DIMENSION(:,:,:,:), ALLOCATABLE, SAVE   ::   znorthgloio 
    166    REAL(wp), DIMENSION(:,:,:)  , ALLOCATABLE, SAVE   ::   zfoldwk      ! Workspace for message transfers avoiding mpi_allgather 
     164   REAL(wp), DIMENSION(:,:,:)  , ALLOCATABLE, SAVE   ::   tab_3d, xnorthloc 
     165   REAL(wp), DIMENSION(:,:,:,:), ALLOCATABLE, SAVE   ::   xnorthgloio 
     166   REAL(wp), DIMENSION(:,:,:)  , ALLOCATABLE, SAVE   ::   foldwk      ! Workspace for message transfers avoiding mpi_allgather 
    167167 
    168168   ! Arrays used in mpp_lbc_north_2d() 
    169    REAL(wp), DIMENSION(:,:)  , ALLOCATABLE, SAVE    ::   ztab_2d, znorthloc_2d 
    170    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, SAVE    ::   znorthgloio_2d 
    171    REAL(wp), DIMENSION(:,:)  , ALLOCATABLE, SAVE    ::   zfoldwk_2d    ! Workspace for message transfers avoiding mpi_allgather 
     169   REAL(wp), DIMENSION(:,:)  , ALLOCATABLE, SAVE    ::   tab_2d, xnorthloc_2d 
     170   REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, SAVE    ::   xnorthgloio_2d 
     171   REAL(wp), DIMENSION(:,:)  , ALLOCATABLE, SAVE    ::   foldwk_2d    ! Workspace for message transfers avoiding mpi_allgather 
    172172 
    173173   ! Arrays used in mpp_lbc_north_e() 
    174    REAL(wp), DIMENSION(:,:)  , ALLOCATABLE, SAVE    ::   ztab_e, znorthloc_e 
    175    REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, SAVE    ::   znorthgloio_e 
     174   REAL(wp), DIMENSION(:,:)  , ALLOCATABLE, SAVE    ::   tab_e, xnorthloc_e 
     175   REAL(wp), DIMENSION(:,:,:), ALLOCATABLE, SAVE    ::   xnorthgloio_e 
    176176 
    177177   ! North fold arrays used to minimise the use of allgather operations. Set in nemo_northcomms (nemogcm) so need to be public 
     
    207207         &      t2p1(jpi,jprecj    ,2)   , t2p2(jpi,jprecj    ,2)   ,                                            & 
    208208         ! 
    209          &      ztab(jpiglo,4,jpk) , znorthloc(jpi,4,jpk) , znorthgloio(jpi,4,jpk,jpni) ,                        & 
    210          &      zfoldwk(jpi,4,jpk) ,                                                                             & 
    211          ! 
    212          &      ztab_2d(jpiglo,4)  , znorthloc_2d(jpi,4)  , znorthgloio_2d(jpi,4,jpni)  ,                        & 
    213          &      zfoldwk_2d(jpi,4)  ,                                                                             & 
    214          ! 
    215          &      ztab_e(jpiglo,4+2*jpr2dj) , znorthloc_e(jpi,4+2*jpr2dj) , znorthgloio_e(jpi,4+2*jpr2dj,jpni) ,   & 
     209         &      tab_3d(jpiglo,4,jpk) , xnorthloc(jpi,4,jpk) , xnorthgloio(jpi,4,jpk,jpni) ,                        & 
     210         &      foldwk(jpi,4,jpk) ,                                                                             & 
     211         ! 
     212         &      tab_2d(jpiglo,4)  , xnorthloc_2d(jpi,4)  , xnorthgloio_2d(jpi,4,jpni)  ,                        & 
     213         &      foldwk_2d(jpi,4)  ,                                                                             & 
     214         ! 
     215         &      tab_e(jpiglo,4+2*jpr2dj) , xnorthloc_e(jpi,4+2*jpr2dj) , xnorthgloio_e(jpi,4+2*jpr2dj,jpni) ,   & 
    216216         ! 
    217217         &      STAT=lib_mpp_alloc ) 
     
    25982598      ityp = -1 
    25992599      ijpjm1 = 3 
    2600       ztab(:,:,:) = 0.e0 
    2601       ! 
    2602       DO jj = nlcj - ijpj +1, nlcj          ! put in znorthloc the last 4 jlines of pt3d 
     2600      tab_3d(:,:,:) = 0.e0 
     2601      ! 
     2602      DO jj = nlcj - ijpj +1, nlcj          ! put in xnorthloc the last 4 jlines of pt3d 
    26032603         ij = jj - nlcj + ijpj 
    2604          znorthloc(:,ij,:) = pt3d(:,jj,:) 
     2604         xnorthloc(:,ij,:) = pt3d(:,jj,:) 
    26052605      END DO 
    26062606      ! 
    2607       !                                     ! Build in procs of ncomm_north the znorthgloio 
     2607      !                                     ! Build in procs of ncomm_north the xnorthgloio 
    26082608      itaille = jpi * jpk * ijpj 
    26092609      IF ( l_north_nogather ) THEN 
     
    26152615            ij = jj - nlcj + ijpj 
    26162616            DO ji = 1, nlci 
    2617                ztab(ji+nimpp-1,ij,:) = pt3d(ji,jj,:) 
     2617               tab_3d(ji+nimpp-1,ij,:) = pt3d(ji,jj,:) 
    26182618            END DO 
    26192619         END DO 
     
    26402640 
    26412641            DO jr = 1,nsndto(ityp) 
    2642                CALL mppsend(5, znorthloc, itaille, isendto(jr,ityp), ml_req_nf(jr) ) 
     2642               CALL mppsend(5, xnorthloc, itaille, isendto(jr,ityp), ml_req_nf(jr) ) 
    26432643            END DO 
    26442644            DO jr = 1,nsndto(ityp) 
    2645                CALL mpprecv(5, zfoldwk, itaille, isendto(jr,ityp)) 
     2645               CALL mpprecv(5, foldwk, itaille, isendto(jr,ityp)) 
    26462646               iproc = isendto(jr,ityp) + 1 
    26472647               ildi = nldit (iproc) 
     
    26502650               DO jj = 1, ijpj 
    26512651                  DO ji = ildi, ilei 
    2652                      ztab(ji+iilb-1,jj,:) = zfoldwk(ji,jj,:) 
     2652                     tab_3d(ji+iilb-1,jj,:) = foldwk(ji,jj,:) 
    26532653                  END DO 
    26542654               END DO 
     
    26652665 
    26662666      IF ( ityp .lt. 0 ) THEN 
    2667          CALL MPI_ALLGATHER( znorthloc  , itaille, MPI_DOUBLE_PRECISION,                & 
    2668             &                znorthgloio, itaille, MPI_DOUBLE_PRECISION, ncomm_north, ierr ) 
     2667         CALL MPI_ALLGATHER( xnorthloc  , itaille, MPI_DOUBLE_PRECISION,                & 
     2668            &                xnorthgloio, itaille, MPI_DOUBLE_PRECISION, ncomm_north, ierr ) 
    26692669         ! 
    26702670         DO jr = 1, ndim_rank_north         ! recover the global north array 
     
    26752675            DO jj = 1, ijpj 
    26762676               DO ji = ildi, ilei 
    2677                   ztab(ji+iilb-1,jj,:) = znorthgloio(ji,jj,:,jr) 
     2677                  tab_3d(ji+iilb-1,jj,:) = xnorthgloio(ji,jj,:,jr) 
    26782678               END DO 
    26792679            END DO 
     
    26812681      ENDIF 
    26822682      ! 
    2683       ! The ztab array has been either: 
     2683      ! The tab_3d array has been either: 
    26842684      !  a. Fully populated by the mpi_allgather operation or 
    26852685      !  b. Had the active points for this domain and northern neighbours populated 
     
    26882688      ! this domain will be identical. 
    26892689      ! 
    2690       CALL lbc_nfd( ztab, cd_type, psgn )   ! North fold boundary condition 
     2690      CALL lbc_nfd( tab_3d, cd_type, psgn )   ! North fold boundary condition 
    26912691      ! 
    26922692      DO jj = nlcj-ijpj+1, nlcj             ! Scatter back to pt3d 
    26932693         ij = jj - nlcj + ijpj 
    26942694         DO ji= 1, nlci 
    2695             pt3d(ji,jj,:) = ztab(ji+nimpp-1,ij,:) 
     2695            pt3d(ji,jj,:) = tab_3d(ji+nimpp-1,ij,:) 
    26962696         END DO 
    26972697      END DO 
     
    27302730      ityp = -1 
    27312731      ijpjm1 = 3 
    2732       ztab_2d(:,:) = 0.e0 
    2733       ! 
    2734       DO jj = nlcj-ijpj+1, nlcj             ! put in znorthloc_2d the last 4 jlines of pt2d 
     2732      tab_2d(:,:) = 0.e0 
     2733      ! 
     2734      DO jj = nlcj-ijpj+1, nlcj             ! put in xnorthloc_2d the last 4 jlines of pt2d 
    27352735         ij = jj - nlcj + ijpj 
    2736          znorthloc_2d(:,ij) = pt2d(:,jj) 
     2736         xnorthloc_2d(:,ij) = pt2d(:,jj) 
    27372737      END DO 
    27382738 
    2739       !                                     ! Build in procs of ncomm_north the znorthgloio_2d 
     2739      !                                     ! Build in procs of ncomm_north the xnorthgloio_2d 
    27402740      itaille = jpi * ijpj 
    27412741      IF ( l_north_nogather ) THEN 
     
    27472747            ij = jj - nlcj + ijpj 
    27482748            DO ji = 1, nlci 
    2749                ztab_2d(ji+nimpp-1,ij) = pt2d(ji,jj) 
     2749               tab_2d(ji+nimpp-1,ij) = pt2d(ji,jj) 
    27502750            END DO 
    27512751         END DO 
     
    27732773 
    27742774            DO jr = 1,nsndto(ityp) 
    2775                CALL mppsend(5, znorthloc_2d, itaille, isendto(jr,ityp), ml_req_nf(jr) ) 
     2775               CALL mppsend(5, xnorthloc_2d, itaille, isendto(jr,ityp), ml_req_nf(jr) ) 
    27762776            END DO 
    27772777            DO jr = 1,nsndto(ityp) 
    2778                CALL mpprecv(5, zfoldwk_2d, itaille, isendto(jr,ityp)) 
     2778               CALL mpprecv(5, foldwk_2d, itaille, isendto(jr,ityp)) 
    27792779               iproc = isendto(jr,ityp) + 1 
    27802780               ildi = nldit (iproc) 
     
    27832783               DO jj = 1, ijpj 
    27842784                  DO ji = ildi, ilei 
    2785                      ztab_2d(ji+iilb-1,jj) = zfoldwk_2d(ji,jj) 
     2785                     tab_2d(ji+iilb-1,jj) = foldwk_2d(ji,jj) 
    27862786                  END DO 
    27872787               END DO 
     
    27982798 
    27992799      IF ( ityp .lt. 0 ) THEN 
    2800          CALL MPI_ALLGATHER( znorthloc_2d  , itaille, MPI_DOUBLE_PRECISION,        & 
    2801             &                znorthgloio_2d, itaille, MPI_DOUBLE_PRECISION, ncomm_north, ierr ) 
     2800         CALL MPI_ALLGATHER( xnorthloc_2d  , itaille, MPI_DOUBLE_PRECISION,        & 
     2801            &                xnorthgloio_2d, itaille, MPI_DOUBLE_PRECISION, ncomm_north, ierr ) 
    28022802         ! 
    28032803         DO jr = 1, ndim_rank_north            ! recover the global north array 
     
    28082808            DO jj = 1, ijpj 
    28092809               DO ji = ildi, ilei 
    2810                   ztab_2d(ji+iilb-1,jj) = znorthgloio_2d(ji,jj,jr) 
     2810                  tab_2d(ji+iilb-1,jj) = xnorthgloio_2d(ji,jj,jr) 
    28112811               END DO 
    28122812            END DO 
     
    28142814      ENDIF 
    28152815      ! 
    2816       ! The ztab array has been either: 
     2816      ! The tab array has been either: 
    28172817      !  a. Fully populated by the mpi_allgather operation or 
    28182818      !  b. Had the active points for this domain and northern neighbours populated 
     
    28212821      ! this domain will be identical. 
    28222822      ! 
    2823       CALL lbc_nfd( ztab_2d, cd_type, psgn )   ! North fold boundary condition 
     2823      CALL lbc_nfd( tab_2d, cd_type, psgn )   ! North fold boundary condition 
    28242824      ! 
    28252825      ! 
     
    28272827         ij = jj - nlcj + ijpj 
    28282828         DO ji = 1, nlci 
    2829             pt2d(ji,jj) = ztab_2d(ji+nimpp-1,ij) 
     2829            pt2d(ji,jj) = tab_2d(ji+nimpp-1,ij) 
    28302830         END DO 
    28312831      END DO 
     
    28602860      ! 
    28612861      ijpj=4 
    2862       ztab_e(:,:) = 0.e0 
     2862      tab_e(:,:) = 0.e0 
    28632863 
    28642864      ij=0 
    2865       ! put in znorthloc_e the last 4 jlines of pt2d 
     2865      ! put in xnorthloc_e the last 4 jlines of pt2d 
    28662866      DO jj = nlcj - ijpj + 1 - jpr2dj, nlcj +jpr2dj 
    28672867         ij = ij + 1 
    28682868         DO ji = 1, jpi 
    2869             znorthloc_e(ji,ij)=pt2d(ji,jj) 
     2869            xnorthloc_e(ji,ij)=pt2d(ji,jj) 
    28702870         END DO 
    28712871      END DO 
    28722872      ! 
    28732873      itaille = jpi * ( ijpj + 2 * jpr2dj ) 
    2874       CALL MPI_ALLGATHER( znorthloc_e(1,1)  , itaille, MPI_DOUBLE_PRECISION,    & 
    2875          &                znorthgloio_e(1,1,1), itaille, MPI_DOUBLE_PRECISION, ncomm_north, ierr ) 
     2874      CALL MPI_ALLGATHER( xnorthloc_e(1,1)  , itaille, MPI_DOUBLE_PRECISION,    & 
     2875         &                xnorthgloio_e(1,1,1), itaille, MPI_DOUBLE_PRECISION, ncomm_north, ierr ) 
    28762876      ! 
    28772877      DO jr = 1, ndim_rank_north            ! recover the global north array 
     
    28822882         DO jj = 1, ijpj+2*jpr2dj 
    28832883            DO ji = ildi, ilei 
    2884                ztab_e(ji+iilb-1,jj) = znorthgloio_e(ji,jj,jr) 
     2884               tab_e(ji+iilb-1,jj) = xnorthgloio_e(ji,jj,jr) 
    28852885            END DO 
    28862886         END DO 
     
    28902890      ! 2. North-Fold boundary conditions 
    28912891      ! ---------------------------------- 
    2892       CALL lbc_nfd( ztab_e(:,:), cd_type, psgn, pr2dj = jpr2dj ) 
     2892      CALL lbc_nfd( tab_e(:,:), cd_type, psgn, pr2dj = jpr2dj ) 
    28932893 
    28942894      ij = jpr2dj 
     
    28972897      ij  = ij +1 
    28982898         DO ji= 1, nlci 
    2899             pt2d(ji,jj) = ztab_e(ji+nimpp-1,ij) 
     2899            pt2d(ji,jj) = tab_e(ji+nimpp-1,ij) 
    29002900         END DO 
    29012901      END DO 
Note: See TracChangeset for help on using the changeset viewer.