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 5105 for branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/NEMO/OPA_SRC/CRS/crsdom.F90 – NEMO

Ignore:
Timestamp:
2015-02-24T15:46:25+01:00 (9 years ago)
Author:
cbricaud
Message:

bug correction

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/NEMO/OPA_SRC/CRS/crsdom.F90

    r5010 r5105  
    5252   END INTERFACE 
    5353 
    54    REAL(wp) :: r_inf = 1e+36 
     54   REAL(wp),PUBLIC :: r_inf = 1e+7 !cbr 1e+36 
    5555 
    5656   !! Substitutions 
     
    6464      INTEGER  ::  ji, jj, jk                   ! dummy loop indices 
    6565      INTEGER  ::  ijie,ijis,ijje,ijjs,ij,je_2 
     66      INTEGER  ::  iji, ijj 
    6667      REAL(wp) ::  zmask 
    6768       
     
    122123               ijjs = mjs_crs(jj) 
    123124 
    124                IF( ijje .GT. jpj )WRITE(narea+200,*)"BUG",jj,ijjs,ijje,SHAPE(tmask) ; call flush(narea+200) 
     125               !iji=117 ; ijj=211 
     126               !iji=iji-nimpp_crs+1 ; ijj=ijj-njmpp_crs+1 
     127               !IF( ji ==iji .AND. jj==ijj .AND. jk==74 )THEN 
     128               !write(narea+5000,*)"mask ",ji,jj 
     129               !write(narea+5000,*)"mask ",ijie,ijis,ijjs,ijje 
     130               !ENDIF 
     131 
     132               !IF( ijje .GT. jpj )WRITE(narea+200,*)"BUG",jj,ijjs,ijje,SHAPE(tmask) ; call flush(narea+200) 
    125133               zmask = 0.0 
    126134               zmask = SUM( tmask(ijis:ijie,ijjs:ijje,jk) ) 
     
    140148         ENDDO 
    141149      ENDDO 
     150      CALL crs_lbc_lnk( tmask_crs, 'T', 1.0 ) 
     151      !cbr 
     152      !DO ji=1,jpi_crs-1 
     153      !DO jj=1,jpj_crs-1 
     154      !DO jk=1,jpk 
     155      !   umask_crs(ji,jj,jk) = tmask_crs(ji  ,jj  ,jk) * tmask_crs(ji+1,jj  ,jk) 
     156      !   vmask_crs(ji,jj,jk) = tmask_crs(ji  ,jj  ,jk) * tmask_crs(ji  ,jj+1,jk) 
     157      !   fmask_crs(ji,jj,jk) = tmask_crs(ji  ,jj  ,jk) * tmask_crs(ji  ,jj+1,jk) *  tmask_crs(ji+1,jj  ,jk) *   tmask_crs(ji+1,jj+1,jk)  
     158      !ENDDO 
     159      !ENDDO 
     160      !ENDDO 
    142161      ! 
    143       CALL crs_lbc_lnk( tmask_crs, 'T', 1.0 ) 
    144162      CALL crs_lbc_lnk( vmask_crs, 'V', 1.0 ) 
    145163      CALL crs_lbc_lnk( umask_crs, 'U', 1.0 ) 
    146164      CALL crs_lbc_lnk( fmask_crs, 'F', 1.0 ) 
     165      ! 
     166      !cbr 
     167      !DO ji=2,jpi_crs-1 
     168      !DO jj=2,jpj_crs-1 
     169      !DO jk=1,jpk 
     170      !   IF( tmask(ji-1,jj  ,jk)==1. .AND. tmask(ji  ,jj  ,jk)==1. .AND. umask(ji-1,jj  ,jk)==0. )WRITE(narea+5000,*)"MASK1",ji,jj,jk 
     171      !   IF( tmask(ji  ,jj  ,jk)==1. .AND. tmask(ji+1,jj  ,jk)==1. .AND. umask(ji  ,jj  ,jk)==0. )WRITE(narea+5000,*)"MASK2",ji,jj,jk 
     172      !   IF( tmask(ji  ,jj-1,jk)==1. .AND. tmask(ji  ,jj  ,jk)==1. .AND. vmask(ji  ,jj-1,jk)==0. )WRITE(narea+5000,*)"MASK3",ji,jj,jk 
     173      !   IF( tmask(ji  ,jj  ,jk)==1. .AND. tmask(ji  ,jj+1,jk)==1. .AND. vmask(ji  ,jj  ,jk)==0. )WRITE(narea+5000,*)"MASK4",ji,jj,jk 
     174      !   IF( umask(ji-1,jj  ,jk)==1. .AND. ( tmask(ji-1,jj  ,jk)==0. .OR. tmask(ji  ,jj  ,jk)==0. ) )WRITE(narea+5000,*)"MASK5",ji,jj,jk 
     175      !   IF( umask(ji  ,jj  ,jk)==1. .AND. ( tmask(ji  ,jj  ,jk)==0. .OR. tmask(ji+1,jj  ,jk)==0. ) )WRITE(narea+5000,*)"MASK6",ji,jj,jk 
     176      !   IF( vmask(ji  ,jj-1,jk)==1. .AND. ( tmask(ji  ,jj-1,jk)==0. .OR. tmask(ji  ,jj  ,jk)==0. ) )WRITE(narea+5000,*)"MASK7",ji,jj,jk 
     177      !   IF( vmask(ji  ,jj  ,jk)==1. .AND. ( tmask(ji  ,jj  ,jk)==0. .OR. tmask(ji  ,jj+1,jk)==0. ) )WRITE(narea+5000,*)"MASK8",ji,jj,jk 
     178      !ENDDO 
     179      !ENDDO 
     180      !ENDDO 
    147181      ! 
    148182   END SUBROUTINE crs_dom_msk 
     
    385419 
    386420      zmask(:,:,:) = 0.0 
    387       IF( cd_type == 'W' ) THEN 
    388          zmask(:,:,1) = p_mask(:,:,1)  
    389          DO jk = 2, jpk 
    390             zmask(:,:,jk) = p_mask(:,:,jk-1)  
    391          ENDDO 
    392       ELSE 
     421      !IF( cd_type == 'W' ) THEN 
     422      !   zmask(:,:,1) = p_mask(:,:,1)  
     423      !   DO jk = 2, jpk 
     424      !      zmask(:,:,jk) = p_mask(:,:,jk-1)  
     425      !   ENDDO 
     426      !ELSE 
    393427         DO jk = 1, jpk 
    394428             zmask(:,:,jk) = p_mask(:,:,jk)  
    395429         ENDDO 
    396       ENDIF 
     430      !ENDIF 
    397431 
    398432      IF( nldj_crs == 1 .AND. ( ( mje_crs(2) - mjs_crs(2) ) < 2 ) ) THEN     !!cc bande du sud style ORCA2 
     
    513547      REAL(wp) :: zflcrs, zsfcrs    
    514548      REAL(wp), DIMENSION(:,:,:), POINTER :: zsurf, zsurfmsk, zmask   
     549      INTEGER  :: iji, ijj 
    515550      !!----------------------------------------------------------------   
    516551    
     
    526561             
    527562               CASE( 'T', 'W' ) 
    528                   IF( cd_type == 'T' ) THEN 
     563                  !IF( cd_type == 'T' ) THEN 
    529564                     DO jk = 1, jpk 
    530565                        zsurf   (:,:,jk) =  p_e12(:,:) * p_e3(:,:,jk) *  p_mask(:,:,jk)  
    531566                        zsurfmsk(:,:,jk) =  zsurf(:,:,jk)  
    532567                    ENDDO 
    533                   ELSE 
    534                      zsurf   (:,:,1) =  p_e12(:,:) * p_e3(:,:,1) 
    535                      zsurfmsk(:,:,1) =  zsurf(:,:,1) *  p_mask(:,:,1)  
    536                      DO jk = 2, jpk 
    537                         zsurf   (:,:,jk) =  p_e12(:,:) * p_e3(:,:,jk) 
    538                         zsurfmsk(:,:,jk) =  zsurf(:,:,jk) * p_mask(:,:,jk-1)  
    539                      ENDDO 
    540                   ENDIF 
     568                  !ELSE 
     569                  !  !cbr ???????????????????????????????? 
     570                  !   zsurf   (:,:,1) =  p_e12(:,:) * p_e3(:,:,1) 
     571                  !   zsurfmsk(:,:,1) =  zsurf(:,:,1) *  p_mask(:,:,1)  
     572                  !   DO jk = 2, jpk 
     573                  !      zsurf   (:,:,jk) =  p_e12(:,:) * p_e3(:,:,jk) 
     574                  !      zsurfmsk(:,:,jk) =  zsurf(:,:,jk) * p_mask(:,:,jk-1)  
     575                  !   ENDDO 
     576                  !ENDIF 
    541577          
    542578                  IF( nldj_crs == 1 .AND. ( ( mje_crs(2) - mjs_crs(2) ) < 2 ) ) THEN     !!cc bande du sud style ORCA2 
     
    619655              CASE( 'W' ) 
    620656                  IF( PRESENT( p_e3 ) ) THEN 
    621                     zsurfmsk(:,:,1) =  p_e12(:,:) * p_e3(:,:,1) * p_mask(:,:,1)  
    622                     DO jk = 2, jpk 
    623                       zsurfmsk(:,:,jk) =  p_e12(:,:) * p_e3(:,:,jk) * p_mask(:,:,jk-1)  
     657                    !cbr ????????????? 
     658                    !zsurfmsk(:,:,1) =  p_e12(:,:) * p_e3(:,:,1) * p_mask(:,:,1)  
     659                    !DO jk = 2, jpk 
     660                    !  zsurfmsk(:,:,jk) =  p_e12(:,:) * p_e3(:,:,jk) * p_mask(:,:,jk-1)  
     661                    !ENDDO 
     662                    DO jk = 1, jpk 
     663                      zsurfmsk(:,:,jk) =  p_e12(:,:) * p_e3(:,:,jk) * p_mask(:,:,jk)  
    624664                    ENDDO 
    625665                 ELSE 
    626                     zsurfmsk(:,:,1) =  p_e12(:,:) * p_mask(:,:,1)  
    627                     DO jk = 2, jpk 
    628                       zsurfmsk(:,:,jk) =  p_e12(:,:) * p_mask(:,:,jk-1)  
     666                    !zsurfmsk(:,:,1) =  p_e12(:,:) * p_mask(:,:,1)  
     667                    !DO jk = 2, jpk 
     668                    !  zsurfmsk(:,:,jk) =  p_e12(:,:) * p_mask(:,:,jk-1)  
     669                    !ENDDO 
     670                    DO jk = 1, jpk 
     671                      zsurfmsk(:,:,jk) =  p_e12(:,:) * p_mask(:,:,jk)  
    629672                    ENDDO 
    630673                 ENDIF 
     
    712755                               &      + p_fld(ji+2,jj  ,jk) * zsurfmsk(ji+2,jj  ,jk) 
    713756 
    714                               zsfcrs = zsurfmsk(ji  ,jj  ,jk) & 
    715                               &     + zsurfmsk(ji+1,jj  ,jk) & 
    716                               &     + zsurfmsk(ji+2,jj  ,jk) 
    717  
    718                               IF( zsfcrs == 0 ) THEN  ; p_fld_crs(ii,2,jk) = zflcrs 
    719                               ELSE                    ; p_fld_crs(ii,2,jk) = zflcrs / zsfcrs 
    720                               ENDIF 
     757                              !zsfcrs = zsurfmsk(ji  ,jj  ,jk) & 
     758                              ! &     + zsurfmsk(ji+1,jj  ,jk) & 
     759                              ! &     + zsurfmsk(ji+2,jj  ,jk) 
     760 
     761                              !IF( zsfcrs == 0 ) THEN  ; p_fld_crs(ii,2,jk) = zflcrs 
     762                              !ELSE                    ; p_fld_crs(ii,2,jk) = zflcrs / zsfcrs 
     763                              !ENDIF 
    721764                           ENDIF 
    722765                        ELSE 
     
    726769                             &      + p_fld(ji+2,ijje,jk) * zsurfmsk(ji+2,ijje,jk) 
    727770                           ! 
    728                            zsfcrs =  zsurfmsk(ji  ,ijje,jk) & 
    729                              &     + zsurfmsk(ji+1,ijje,jk) & 
    730                              &     + zsurfmsk(ji+2,ijje,jk) 
    731  
    732                            IF( zsfcrs == 0 ) THEN ; p_fld_crs(ii,2,jk) = zflcrs 
    733                            ELSE                   ; p_fld_crs(ii,2,jk) = zflcrs / zsfcrs 
    734                            ENDIF 
     771                           !zsfcrs =  zsurfmsk(ji  ,ijje,jk) & 
     772                           !  &     + zsurfmsk(ji+1,ijje,jk) & 
     773                           !  &     + zsurfmsk(ji+2,ijje,jk) 
     774 
     775                           p_fld_crs(ii,2,jk) = zflcrs 
     776                           !IF( zsfcrs == 0 ) THEN ; p_fld_crs(ii,2,jk) = zflcrs 
     777                           !ELSE                   ; p_fld_crs(ii,2,jk) = zflcrs / zsfcrs 
     778                           !ENDIF 
    735779 
    736780                        ENDIF 
     
    746790                             &      + p_fld(ji+2,ijje,jk) * zsurfmsk(ji+2,ijje,jk)  
    747791                           ! 
    748                            zsfcrs =  zsurfmsk(ji  ,ijje,jk)  & 
    749                              &     + zsurfmsk(ji+1,ijje,jk)  & 
    750                              &     + zsurfmsk(ji+2,ijje,jk)  
    751  
    752                            IF( zsfcrs == 0 ) THEN ; p_fld_crs(ii,ij,jk) = zflcrs 
    753                            ELSE                   ; p_fld_crs(ii,ij,jk) = zflcrs / zsfcrs 
    754                            ENDIF 
     792                           !zsfcrs =  zsurfmsk(ji  ,ijje,jk)  & 
     793                           !  &     + zsurfmsk(ji+1,ijje,jk)  & 
     794                           !  &     + zsurfmsk(ji+2,ijje,jk)  
     795 
     796                           p_fld_crs(ii,ij,jk) = zflcrs 
     797                           !cbr1 
     798               !iji=117 ; ijj=210 
     799               !iji=iji-nimpp_crs+1 ; ijj=ijj-njmpp_crs+1 
     800               !IF( ii==iji .AND. ij==ijj .AND. jk==74 )THEN 
     801               !WRITE(narea+5000,*)"OPE V =======> " 
     802               !WRITE(narea+5000,*)ii,ij,jk 
     803               !WRITE(narea+5000,*)ji,jj,ijje 
     804               !WRITE(narea+5000,*)p_fld(ji  ,ijje,jk) 
     805               !WRITE(narea+5000,*)p_fld(ji+1,ijje,jk) 
     806               !WRITE(narea+5000,*)p_fld(ji+2,ijje,jk) 
     807               !WRITE(narea+5000,*)zflcrs 
     808               !ENDIF 
     809 
     810                           !IF( zsfcrs == 0 ) THEN ; p_fld_crs(ii,ij,jk) = zflcrs 
     811                           !ELSE                   ; p_fld_crs(ii,ij,jk) = zflcrs / zsfcrs 
     812                           !ENDIF 
    755813                           ! 
     814               !IF( ii==iji .AND. ij==ijj .AND. jk==74 )WRITE(narea+5000,*)" p_fld_crs(ii,ij,jk) = ", p_fld_crs(ii,ij,jk) 
    756815                        ENDDO 
    757816                     ENDDO 
     
    809868              ENDIF 
    810869 
     870         !IF(narea==267)WRITE(5000+narea,*)"vn_crs(17,5,74) end SUM = ",p_fld(17,5,74) 
    811871              CALL wrk_dealloc( jpi, jpj, jpk, zsurfmsk ) 
    812872 
     
    9871047            CALL wrk_alloc( jpi, jpj, jpk, zmask ) 
    9881048 
    989             SELECT CASE ( cd_type ) 
    990               CASE( 'W' ) 
    991                   zmask(:,:,1) = p_mask(:,:,1)  
    992                   DO jk = 2, jpk 
    993                      zmask(:,:,jk) = p_mask(:,:,jk-1)  
    994                   ENDDO 
    995               CASE ( 'T' ) 
     1049            !SELECT CASE ( cd_type ) 
     1050            !  CASE( 'W' ) 
     1051            !      !cbr ????????????????????????????? 
     1052            !      zmask(:,:,1) = p_mask(:,:,1)  
     1053            !      DO jk = 2, jpk 
     1054            !         zmask(:,:,jk) = p_mask(:,:,jk-1)  
     1055            !      ENDDO 
     1056            !  CASE ( 'T' ) 
    9961057                  DO jk = 1, jpk 
    9971058                     zmask(:,:,jk) = p_mask(:,:,jk)  
    9981059                  ENDDO 
    999             END SELECT 
     1060            !END SELECT 
    10001061 
    10011062            SELECT CASE ( cd_type ) 
     
    11571218         END SELECT 
    11581219         ! 
     1220         !IF(narea==267)WRITE(5000+narea,*)"vn_crs(17,5,74) avt lbc = ",p_fld(17,5,74) 
    11591221         CALL crs_lbc_lnk( p_fld_crs, cd_type, psgn ) 
     1222         !IF(narea==267)WRITE(5000+narea,*)"vn_crs(17,5,74) apr lbc = ",p_fld(17,5,74) 
    11601223         ! 
    11611224    END SUBROUTINE crs_dom_ope_3d 
     
    12051268 
    12061269      !!----------------------------------------------------------------   
    1207     
     1270  
    12081271      p_fld_crs(:,:) = 0.0 
    12091272 
     
    17021765      INTEGER ::  ijie, ijje, ii, ij, je_2 
    17031766      REAL(wp) :: ze3crs   
    1704       REAL(wp), DIMENSION(:,:,:), POINTER :: zmask, zsurf    
     1767      !REAL(wp), DIMENSION(:,:,:), POINTER :: zmask, zsurf    
    17051768 
    17061769      !!----------------------------------------------------------------   
     
    17101773    
    17111774 
    1712        CALL wrk_alloc( jpi, jpj, jpk, zmask, zsurf ) 
     1775       !CALL wrk_alloc( jpi, jpj, jpk, zmask, zsurf ) 
    17131776 
    17141777       SELECT CASE ( cd_type ) 
    1715           CASE( 'W' ) 
    1716               zmask(:,:,1) = p_mask(:,:,1)  
    1717               DO jk = 2, jpk 
    1718                  zmask(:,:,jk) = p_mask(:,:,jk-1)  
    1719               ENDDO 
    1720            CASE DEFAULT 
    1721               DO jk = 1, jpk 
    1722                  zmask(:,:,jk) = p_mask(:,:,jk)  
    1723               ENDDO 
     1778 
     1779         CASE ('T') 
     1780 
     1781            DO jk = 1 , jpk 
     1782               DO ji = nistr, niend, nn_factx 
     1783 
     1784                  ii   = ( ji - mis_crs(2) ) * rfactx_r + 2 
     1785                  IF (nldj_crs == 1 .AND. (( mje_crs(2) - mjs_crs(2) ) < 2)) THEN     !!cc bande du sud style ORCA2 
     1786 
     1787                  IF ( mje_crs(2) - mjs_crs(2) == 1 ) THEN 
     1788 
     1789                    jj = mje_crs(2) 
     1790 
     1791 
     1792                    ze3crs = MAX(  p_e3(ji  ,jj  ,jk) * p_mask(ji  ,jj  ,jk),  & 
     1793                        &          p_e3(ji+1,jj  ,jk) * p_mask(ji+1,jj  ,jk),  & 
     1794                        &          p_e3(ji+2,jj  ,jk) * p_mask(ji+2,jj  ,jk)) 
     1795 
     1796                    p_e3_max_crs(ii,2,jk) = ze3crs 
     1797 
     1798                    ze3crs =  p_e3(ji  ,jj  ,jk) * p_e1(ji  ,jj  ) * p_e2(ji  ,jj  ) * p_mask(ji  ,jj  ,jk) +  & 
     1799                        &     p_e3(ji+1,jj  ,jk) * p_e1(ji+1,jj  ) * p_e2(ji+1,jj  ) * p_mask(ji+1,jj  ,jk) +  & 
     1800                        &     p_e3(ji+2,jj  ,jk) * p_e1(ji+2,jj  ) * p_e2(ji+2,jj  ) * p_mask(ji+2,jj  ,jk) 
     1801 
     1802 
     1803                    p_e3_crs(ii,2,jk) = ze3crs / p_sfc_crs(ii,2,jk) 
     1804                  ENDIF 
     1805                  ELSE 
     1806                     jj = mjs_crs(2) 
     1807 
     1808                     ze3crs = MAX( p_e3(ji  ,jj  ,jk) * p_mask(ji  ,jj  ,jk),  & 
     1809                        &          p_e3(ji+1,jj  ,jk) * p_mask(ji+1,jj  ,jk),  & 
     1810                        &          p_e3(ji+2,jj  ,jk) * p_mask(ji+2,jj  ,jk),  & 
     1811                        &          p_e3(ji  ,jj+1,jk) * p_mask(ji  ,jj+1,jk),  & 
     1812                        &          p_e3(ji+1,jj+1,jk) * p_mask(ji+1,jj+1,jk),  & 
     1813                        &          p_e3(ji+2,jj+1,jk) * p_mask(ji+2,jj+1,jk),  & 
     1814                        &          p_e3(ji  ,jj+2,jk) * p_mask(ji  ,jj+2,jk),  & 
     1815                        &          p_e3(ji+1,jj+2,jk) * p_mask(ji+1,jj+2,jk),  & 
     1816                        &          p_e3(ji+2,jj+2,jk) * p_mask(ji+2,jj+2,jk) ) 
     1817 
     1818                     p_e3_max_crs(ii,2,jk) = ze3crs 
     1819 
     1820                     ze3crs =  p_e3(ji  ,jj  ,jk) * p_e1(ji  ,jj  ) * p_e2(ji  ,jj  ) * p_mask(ji  ,jj  ,jk) +  & 
     1821                        &      p_e3(ji+1,jj  ,jk) * p_e1(ji+1,jj  ) * p_e2(ji+1,jj  ) * p_mask(ji+1,jj  ,jk) +  & 
     1822                        &      p_e3(ji+2,jj  ,jk) * p_e1(ji+2,jj  ) * p_e2(ji+2,jj  ) * p_mask(ji+2,jj  ,jk) +  & 
     1823                        &      p_e3(ji  ,jj+1,jk) * p_e1(ji  ,jj+1) * p_e2(ji  ,jj+1) * p_mask(ji  ,jj+1,jk) +  & 
     1824                        &      p_e3(ji+1,jj+1,jk) * p_e1(ji+1,jj+1) * p_e2(ji+1,jj+1) * p_mask(ji+1,jj+1,jk) +  & 
     1825                        &      p_e3(ji+2,jj+1,jk) * p_e1(ji+2,jj+1) * p_e2(ji+2,jj+1) * p_mask(ji+2,jj+1,jk) +  & 
     1826                        &      p_e3(ji  ,jj+2,jk) * p_e1(ji  ,jj+2) * p_e2(ji  ,jj+2) * p_mask(ji  ,jj+2,jk) +  & 
     1827                        &      p_e3(ji+1,jj+2,jk) * p_e1(ji+1,jj+2) * p_e2(ji+1,jj+2) * p_mask(ji+1,jj+2,jk) +  & 
     1828                        &      p_e3(ji+2,jj+2,jk) * p_e1(ji+2,jj+2) * p_e2(ji+2,jj+2) * p_mask(ji+2,jj+2,jk) 
     1829 
     1830                       p_e3_crs(ii,2,jk) = ze3crs / p_sfc_crs(ii,2,jk) 
     1831                  ENDIF 
     1832 
     1833                  DO jj = njstr, njend, nn_facty 
     1834                     ii   = ( ji - mis_crs(2) ) * rfactx_r + 2                 ! cordinate in parent grid 
     1835                     ij   = ( jj - njstr ) * rfacty_r + 3 
     1836                     ijje = mje_crs(ij) 
     1837                     ijie = mie_crs(ii) 
     1838                     !   
     1839                     ze3crs = MAX( p_e3(ji  ,jj  ,jk) * p_mask(ji  ,jj  ,jk),  & 
     1840                        &          p_e3(ji+1,jj  ,jk) * p_mask(ji+1,jj  ,jk),  & 
     1841                        &          p_e3(ji+2,jj  ,jk) * p_mask(ji+2,jj  ,jk),  & 
     1842                        &          p_e3(ji  ,jj+1,jk) * p_mask(ji  ,jj+1,jk),  & 
     1843                        &          p_e3(ji+1,jj+1,jk) * p_mask(ji+1,jj+1,jk),  & 
     1844                        &          p_e3(ji+2,jj+1,jk) * p_mask(ji+2,jj+1,jk),  & 
     1845                        &          p_e3(ji  ,jj+2,jk) * p_mask(ji  ,jj+2,jk),  & 
     1846                        &          p_e3(ji+1,jj+2,jk) * p_mask(ji+1,jj+2,jk),  & 
     1847                        &          p_e3(ji+2,jj+2,jk) * p_mask(ji+2,jj+2,jk) ) 
     1848 
     1849                     p_e3_max_crs(ii,ij,jk) = ze3crs 
     1850                     ze3crs =  p_e3(ji  ,jj  ,jk) * p_e1(ji  ,jj  ) * p_e2(ji  ,jj  ) * p_mask(ji  ,jj  ,jk) +  & 
     1851                        &      p_e3(ji+1,jj  ,jk) * p_e1(ji+1,jj  ) * p_e2(ji+1,jj  ) * p_mask(ji+1,jj  ,jk) +  & 
     1852                        &      p_e3(ji+2,jj  ,jk) * p_e1(ji+2,jj  ) * p_e2(ji+2,jj  ) * p_mask(ji+2,jj  ,jk) +  & 
     1853                        &      p_e3(ji  ,jj+1,jk) * p_e1(ji  ,jj+1) * p_e2(ji  ,jj+1) * p_mask(ji  ,jj+1,jk) +  & 
     1854                        &      p_e3(ji+1,jj+1,jk) * p_e1(ji+1,jj+1) * p_e2(ji+1,jj+1) * p_mask(ji+1,jj+1,jk) +  & 
     1855                        &      p_e3(ji+2,jj+1,jk) * p_e1(ji+2,jj+1) * p_e2(ji+2,jj+1) * p_mask(ji+2,jj+1,jk) +  & 
     1856                        &      p_e3(ji  ,jj+2,jk) * p_e1(ji  ,jj+2) * p_e2(ji  ,jj+2) * p_mask(ji  ,jj+2,jk) +  & 
     1857                        &      p_e3(ji+1,jj+2,jk) * p_e1(ji+1,jj+2) * p_e2(ji+1,jj+2) * p_mask(ji+1,jj+2,jk) +  & 
     1858                        &      p_e3(ji+2,jj+2,jk) * p_e1(ji+2,jj+2) * p_e2(ji+2,jj+2) * p_mask(ji+2,jj+2,jk) 
     1859 
     1860                       p_e3_crs(ii,ij,jk) = ze3crs / p_sfc_crs(ii,ij,jk) 
     1861 
     1862                  ENDDO 
     1863               ENDDO 
     1864            ENDDO 
     1865 
     1866         CASE ('U') 
     1867 
     1868         DO jk = 1 , jpk 
     1869               DO ji = nistr, niend, nn_factx 
     1870                 ii   = ( ji - mis_crs(2) ) * rfactx_r + 2 
     1871                  IF (nldj_crs == 1 .AND. (( mje_crs(2) - mjs_crs(2) ) < 2)) THEN     !!cc bande du sud style ORCA2 
     1872 
     1873                     IF ( mje_crs(2) - mjs_crs(2) == 1 ) THEN 
     1874 
     1875                    jj = mje_crs(2) 
     1876 
     1877 
     1878                    ze3crs = p_e3(ji+2,jj  ,jk) * p_mask(ji+2,jj  ,jk) 
     1879 
     1880                    p_e3_max_crs(ii,2,jk) = ze3crs 
     1881 
     1882                    ze3crs =  p_e3(ji+2,jj  ,jk) * p_e1(ji+2,jj  ) * p_e2(ji+2,jj  ) * p_mask(ji+2,jj  ,jk) 
     1883 
     1884 
     1885                     p_e3_crs(ii,2,jk) = ze3crs / p_sfc_crs(ii,2,jk) 
     1886                     ENDIF 
     1887                  ELSE 
     1888                     jj = mjs_crs(2) 
     1889 
     1890                     ze3crs = MAX( p_e3(ji+2,jj  ,jk) * p_mask(ji+2,jj  ,jk),  & 
     1891                                   p_e3(ji+2,jj+1,jk) * p_mask(ji+2,jj+1,jk),  & 
     1892                                   p_e3(ji+2,jj+2,jk) * p_mask(ji+2,jj+2,jk) ) 
     1893 
     1894                     p_e3_max_crs(ii,2,jk) = ze3crs 
     1895 
     1896                     ze3crs =  p_e3(ji+2,jj  ,jk) * p_e1(ji+2,jj  ) * p_e2(ji+2,jj  ) * p_mask(ji+2,jj  ,jk) +  & 
     1897                        &      p_e3(ji+2,jj+1,jk) * p_e1(ji+2,jj+1) * p_e2(ji+2,jj+1) * p_mask(ji+2,jj+1,jk) +  & 
     1898                        &      p_e3(ji+2,jj+2,jk) * p_e1(ji+2,jj+2) * p_e2(ji+2,jj+2) * p_mask(ji+2,jj+2,jk) 
     1899 
     1900                       p_e3_crs(ii,2,jk) = ze3crs / p_sfc_crs(ii,2,jk) 
     1901                  ENDIF 
     1902                  DO jj = njstr, njend, nn_facty 
     1903                     ii   = ( ji - mis_crs(2) ) * rfactx_r + 2                 ! cordinate in parent grid 
     1904                     ij   = ( jj - njstr ) * rfacty_r + 3 
     1905                     ijje = mje_crs(ij) 
     1906                     ijie = mie_crs(ii) 
     1907                     !   
     1908                     ze3crs = MAX( p_e3(ji+2,jj  ,jk) * p_mask(ji+2,jj  ,jk),  & 
     1909                        &          p_e3(ji+2,jj+1,jk) * p_mask(ji+2,jj+1,jk),  & 
     1910                        &          p_e3(ji+2,jj+2,jk) * p_mask(ji+2,jj+2,jk) ) 
     1911 
     1912                     p_e3_max_crs(ii,ij,jk) = ze3crs 
     1913 
     1914                     ze3crs =  p_e3(ji+2,jj  ,jk) * p_e1(ji+2,jj  ) * p_e2(ji+2,jj  ) * p_mask(ji+2,jj  ,jk) +  & 
     1915                        &      p_e3(ji+2,jj+1,jk) * p_e1(ji+2,jj+1) * p_e2(ji+2,jj+1) * p_mask(ji+2,jj+1,jk) +  & 
     1916                        &      p_e3(ji+2,jj+2,jk) * p_e1(ji+2,jj+2) * p_e2(ji+2,jj+2) * p_mask(ji+2,jj+2,jk) 
     1917 
     1918                       p_e3_crs(ii,ij,jk) = ze3crs / p_sfc_crs(ii,ij,jk) 
     1919 
     1920                  ENDDO 
     1921               ENDDO 
     1922            ENDDO 
     1923 
     1924         CASE ('V') 
     1925         DO jk = 1 , jpk 
     1926               DO ji = nistr, niend, nn_factx 
     1927 
     1928                  ii   = ( ji - mis_crs(2) ) * rfactx_r + 2 
     1929                  IF (nldj_crs == 1 .AND. (( mje_crs(2) - mjs_crs(2) ) < 2)) THEN     !!cc bande du sud style ORCA2 
     1930 
     1931                     IF ( mje_crs(2) - mjs_crs(2) == 1 ) THEN 
     1932 
     1933                    jj = mje_crs(2) 
     1934 
     1935 
     1936                    ze3crs = MAX(  p_e3(ji  ,jj  ,jk) * p_mask(ji  ,jj  ,jk),  & 
     1937                        &          p_e3(ji+1,jj  ,jk) * p_mask(ji+1,jj  ,jk),  & 
     1938                        &          p_e3(ji+2,jj  ,jk) * p_mask(ji+2,jj  ,jk)) 
     1939 
     1940                    p_e3_max_crs(ii,2,jk) = ze3crs 
     1941 
     1942                    ze3crs =  p_e3(ji  ,jj  ,jk) * p_e1(ji  ,jj  ) * p_e2(ji  ,jj  ) * p_mask(ji  ,jj  ,jk) +  & 
     1943                        &     p_e3(ji+1,jj  ,jk) * p_e1(ji+1,jj  ) * p_e2(ji+1,jj  ) * p_mask(ji+1,jj  ,jk) +  & 
     1944                        &     p_e3(ji+2,jj  ,jk) * p_e1(ji+2,jj  ) * p_e2(ji+2,jj  ) * p_mask(ji+2,jj  ,jk) 
     1945 
     1946 
     1947                     p_e3_crs(ii,2,jk) = ze3crs / p_sfc_crs(ii,2,jk) 
     1948                     ENDIF 
     1949                  ELSE 
     1950                     jj = mjs_crs(2) 
     1951 
     1952                     ze3crs = MAX( p_e3(ji  ,jj+2,jk) * p_mask(ji  ,jj+2,jk),  & 
     1953                        &          p_e3(ji+1,jj+2,jk) * p_mask(ji+1,jj+2,jk),  & 
     1954                        &          p_e3(ji+2,jj+2,jk) * p_mask(ji+2,jj+2,jk) ) 
     1955 
     1956                     p_e3_max_crs(ii,2,jk) = ze3crs 
     1957 
     1958                     ze3crs =  p_e3(ji  ,jj+2,jk) * p_e1(ji  ,jj+2) * p_e2(ji  ,jj+2) * p_mask(ji  ,jj+2,jk) +  & 
     1959                        &      p_e3(ji+1,jj+2,jk) * p_e1(ji+1,jj+2) * p_e2(ji+1,jj+2) * p_mask(ji+1,jj+2,jk) +  & 
     1960                        &      p_e3(ji+2,jj+2,jk) * p_e1(ji+2,jj+2) * p_e2(ji+2,jj+2) * p_mask(ji+2,jj+2,jk) 
     1961 
     1962                       p_e3_crs(ii,2,jk) = ze3crs / p_sfc_crs(ii,2,jk) 
     1963                  ENDIF 
     1964 
     1965                  DO jj = njstr, njend, nn_facty 
     1966                     ii   = ( ji - mis_crs(2) ) * rfactx_r + 2                 ! cordinate in parent grid 
     1967                     ij   = ( jj - njstr ) * rfacty_r + 3 
     1968                     ijje = mje_crs(ij) 
     1969                     ijie = mie_crs(ii) 
     1970                     !   
     1971                     ze3crs = MAX( p_e3(ji  ,jj+2,jk) * p_mask(ji  ,jj+2,jk),  & 
     1972                        &          p_e3(ji+1,jj+2,jk) * p_mask(ji+1,jj+2,jk),  & 
     1973                        &          p_e3(ji+2,jj+2,jk) * p_mask(ji+2,jj+2,jk) ) 
     1974 
     1975                     p_e3_max_crs(ii,ij,jk) = ze3crs 
     1976 
     1977                     ze3crs =  p_e3(ji  ,jj+2,jk) * p_e1(ji  ,jj+2) * p_e2(ji  ,jj+2) * p_mask(ji  ,jj+2,jk) +  & 
     1978                        &      p_e3(ji+1,jj+2,jk) * p_e1(ji+1,jj+2) * p_e2(ji+1,jj+2) * p_mask(ji+1,jj+2,jk) +  & 
     1979                        &      p_e3(ji+2,jj+2,jk) * p_e1(ji+2,jj+2) * p_e2(ji+2,jj+2) * p_mask(ji+2,jj+2,jk) 
     1980 
     1981                       p_e3_crs(ii,ij,jk) = ze3crs / p_sfc_crs(ii,ij,jk) 
     1982 
     1983                  ENDDO 
     1984               ENDDO 
     1985            ENDDO 
     1986         CASE ('W') 
     1987 
     1988            DO jk = 2 , jpk 
     1989               DO ji = nistr, niend, nn_factx 
     1990               ii   = ( ji - mis_crs(2) ) * rfactx_r + 2 
     1991               IF (nldj_crs == 1 .AND. (( mje_crs(2) - mjs_crs(2) ) < 2)) THEN     !!cc bande du sud style ORCA2 
     1992 
     1993                 IF ( mje_crs(2) - mjs_crs(2) == 1 ) THEN 
     1994 
     1995                    jj = mje_crs(2) 
     1996 
     1997 
     1998                    ze3crs = MAX(  p_e3(ji  ,jj  ,jk) * p_mask(ji  ,jj  ,jk-1),  & 
     1999                        &          p_e3(ji+1,jj  ,jk) * p_mask(ji+1,jj  ,jk-1),  & 
     2000                        &          p_e3(ji+2,jj  ,jk) * p_mask(ji+2,jj  ,jk-1)) 
     2001 
     2002                     p_e3_max_crs(ii,2,jk) = ze3crs 
     2003 
     2004                     ze3crs =  p_e3(ji  ,jj  ,jk) * p_e1(ji  ,jj  ) * p_e2(ji  ,jj  ) * p_mask(ji  ,jj  ,jk-1) +  & 
     2005                        &      p_e3(ji+1,jj  ,jk) * p_e1(ji+1,jj  ) * p_e2(ji+1,jj  ) * p_mask(ji+1,jj  ,jk-1) +  & 
     2006                        &      p_e3(ji+2,jj  ,jk) * p_e1(ji+2,jj  ) * p_e2(ji+2,jj  ) * p_mask(ji+2,jj  ,jk-1) 
     2007 
     2008 
     2009                       p_e3_crs(ii,2,jk) = ze3crs / p_sfc_crs(ii,2,jk) 
     2010                  ENDIF 
     2011               ELSE 
     2012                  jj = mjs_crs(2) 
     2013 
     2014                  ze3crs = MAX( p_e3(ji  ,jj  ,jk) * p_mask(ji  ,jj  ,jk-1),  & 
     2015                     &          p_e3(ji+1,jj  ,jk) * p_mask(ji+1,jj  ,jk-1),  & 
     2016                     &          p_e3(ji+2,jj  ,jk) * p_mask(ji+2,jj  ,jk-1),  & 
     2017                     &          p_e3(ji  ,jj+1,jk) * p_mask(ji  ,jj+1,jk-1),  & 
     2018                     &          p_e3(ji+1,jj+1,jk) * p_mask(ji+1,jj+1,jk-1),  & 
     2019                     &          p_e3(ji+2,jj+1,jk) * p_mask(ji+2,jj+1,jk-1),  & 
     2020                     &          p_e3(ji  ,jj+2,jk) * p_mask(ji  ,jj+2,jk-1),  & 
     2021                     &          p_e3(ji+1,jj+2,jk) * p_mask(ji+1,jj+2,jk-1),  & 
     2022                     &          p_e3(ji+2,jj+2,jk) * p_mask(ji+2,jj+2,jk-1) ) 
     2023 
     2024                  p_e3_max_crs(ii,2,jk) = ze3crs 
     2025                  ze3crs =  p_e3(ji  ,jj  ,jk) * p_e1(ji  ,jj  ) * p_e2(ji  ,jj  ) * p_mask(ji  ,jj  ,jk-1) +  & 
     2026                     &      p_e3(ji+1,jj  ,jk) * p_e1(ji+1,jj  ) * p_e2(ji+1,jj  ) * p_mask(ji+1,jj  ,jk-1) +  & 
     2027                     &      p_e3(ji+2,jj  ,jk) * p_e1(ji+2,jj  ) * p_e2(ji+2,jj  ) * p_mask(ji+2,jj  ,jk-1) +  & 
     2028                     &      p_e3(ji  ,jj+1,jk) * p_e1(ji  ,jj+1) * p_e2(ji  ,jj+1) * p_mask(ji  ,jj+1,jk-1) +  & 
     2029                     &      p_e3(ji+1,jj+1,jk) * p_e1(ji+1,jj+1) * p_e2(ji+1,jj+1) * p_mask(ji+1,jj+1,jk-1) +  & 
     2030                     &      p_e3(ji+2,jj+1,jk) * p_e1(ji+2,jj+1) * p_e2(ji+2,jj+1) * p_mask(ji+2,jj+1,jk-1) +  & 
     2031                     &      p_e3(ji  ,jj+2,jk) * p_e1(ji  ,jj+2) * p_e2(ji  ,jj+2) * p_mask(ji  ,jj+2,jk-1) +  & 
     2032                     &      p_e3(ji+1,jj+2,jk) * p_e1(ji+1,jj+2) * p_e2(ji+1,jj+2) * p_mask(ji+1,jj+2,jk-1) +  & 
     2033                     &      p_e3(ji+2,jj+2,jk) * p_e1(ji+2,jj+2) * p_e2(ji+2,jj+2) * p_mask(ji+2,jj+2,jk-1) 
     2034 
     2035                  p_e3_crs(ii,2,jk) = ze3crs / p_sfc_crs(ii,2,jk) 
     2036               ENDIF 
     2037 
     2038 
     2039                  DO jj = njstr, njend, nn_facty 
     2040                     ii   = ( ji - mis_crs(2) ) * rfactx_r + 2                 ! cordinate in parent grid 
     2041                     ij   = ( jj - njstr ) * rfacty_r + 3 
     2042                     ijje = mje_crs(ij) 
     2043                     ijie = mie_crs(ii) 
     2044                     !   
     2045                     ze3crs = MAX( p_e3(ji  ,jj  ,jk) * p_mask(ji  ,jj  ,jk-1),  & 
     2046                        &          p_e3(ji+1,jj  ,jk) * p_mask(ji+1,jj  ,jk-1),  & 
     2047                        &          p_e3(ji+2,jj  ,jk) * p_mask(ji+2,jj  ,jk-1),  & 
     2048                        &          p_e3(ji  ,jj+1,jk) * p_mask(ji  ,jj+1,jk-1),  & 
     2049                        &          p_e3(ji+1,jj+1,jk) * p_mask(ji+1,jj+1,jk-1),  & 
     2050                        &          p_e3(ji+2,jj+1,jk) * p_mask(ji+2,jj+1,jk-1),  & 
     2051                        &          p_e3(ji  ,jj+2,jk) * p_mask(ji  ,jj+2,jk-1),  & 
     2052                        &          p_e3(ji+1,jj+2,jk) * p_mask(ji+1,jj+2,jk-1),  & 
     2053                        &          p_e3(ji+2,jj+2,jk) * p_mask(ji+2,jj+2,jk-1) ) 
     2054 
     2055                     p_e3_max_crs(ii,ij,jk) = ze3crs 
     2056 
     2057                     ze3crs =  p_e3(ji  ,jj  ,jk) * p_e1(ji  ,jj  ) * p_e2(ji  ,jj  ) * p_mask(ji  ,jj  ,jk-1) +  & 
     2058                        &      p_e3(ji+1,jj  ,jk) * p_e1(ji+1,jj  ) * p_e2(ji+1,jj  ) * p_mask(ji+1,jj  ,jk-1) +  & 
     2059                        &      p_e3(ji+2,jj  ,jk) * p_e1(ji+2,jj  ) * p_e2(ji+2,jj  ) * p_mask(ji+2,jj  ,jk-1) +  & 
     2060                        &      p_e3(ji  ,jj+1,jk) * p_e1(ji  ,jj+1) * p_e2(ji  ,jj+1) * p_mask(ji  ,jj+1,jk-1) +  & 
     2061                        &      p_e3(ji+1,jj+1,jk) * p_e1(ji+1,jj+1) * p_e2(ji+1,jj+1) * p_mask(ji+1,jj+1,jk-1) +  & 
     2062                        &      p_e3(ji+2,jj+1,jk) * p_e1(ji+2,jj+1) * p_e2(ji+2,jj+1) * p_mask(ji+2,jj+1,jk-1) +  & 
     2063                        &      p_e3(ji  ,jj+2,jk) * p_e1(ji  ,jj+2) * p_e2(ji  ,jj+2) * p_mask(ji  ,jj+2,jk-1) +  & 
     2064                        &      p_e3(ji+1,jj+2,jk) * p_e1(ji+1,jj+2) * p_e2(ji+1,jj+2) * p_mask(ji+1,jj+2,jk-1) +  & 
     2065                        &      p_e3(ji+2,jj+2,jk) * p_e1(ji+2,jj+2) * p_e2(ji+2,jj+2) * p_mask(ji+2,jj+2,jk-1) 
     2066 
     2067                       p_e3_crs(ii,ij,jk) = ze3crs / p_sfc_crs(ii,ij,jk) 
     2068 
     2069                  ENDDO 
     2070               ENDDO 
     2071            ENDDO 
     2072            DO ji = nistr, niend, nn_factx 
     2073               ii   = ( ji - mis_crs(2) ) * rfactx_r + 2 
     2074               IF (nldj_crs == 1 .AND. (( mje_crs(2) - mjs_crs(2) ) < 2)) THEN     !!cc bande du sud style ORCA2 
     2075 
     2076                 IF ( mje_crs(2) - mjs_crs(2) == 1 ) THEN 
     2077 
     2078                    jj = mje_crs(2) 
     2079 
     2080                    ze3crs = MAX(  p_e3(ji  ,jj  ,1) * p_mask(ji  ,jj  ,1),  & 
     2081                        &          p_e3(ji+1,jj  ,1) * p_mask(ji+1,jj  ,1),  & 
     2082                        &          p_e3(ji+2,jj  ,1) * p_mask(ji+2,jj  ,1)) 
     2083 
     2084                    p_e3_max_crs(ii,2,1) = ze3crs 
     2085 
     2086                    ze3crs =  p_e3(ji  ,jj  ,1) * p_e1(ji  ,jj  ) * p_e2(ji  ,jj  ) * p_mask(ji  ,jj  ,1) +  & 
     2087                        &      p_e3(ji+1,jj  ,1) * p_e1(ji+1,jj  ) * p_e2(ji+1,jj  ) * p_mask(ji+1,jj  ,1) +  & 
     2088                        &      p_e3(ji+2,jj  ,1) * p_e1(ji+2,jj  ) * p_e2(ji+2,jj  ) * p_mask(ji+2,jj  ,1) 
     2089 
     2090                    p_e3_crs(ii,2,1) = ze3crs / p_sfc_crs(ii,2,1) 
     2091                  ENDIF 
     2092               ELSE 
     2093                  jj = mjs_crs(2) 
     2094 
     2095                  ze3crs = MAX( p_e3(ji  ,jj  ,1) * p_mask(ji  ,jj  ,1),  & 
     2096                     &          p_e3(ji+1,jj  ,1) * p_mask(ji+1,jj  ,1),  & 
     2097                     &          p_e3(ji+2,jj  ,1) * p_mask(ji+2,jj  ,1),  & 
     2098                     &          p_e3(ji  ,jj+1,1) * p_mask(ji  ,jj+1,1),  & 
     2099                     &          p_e3(ji+1,jj+1,1) * p_mask(ji+1,jj+1,1),  & 
     2100                     &          p_e3(ji+2,jj+1,1) * p_mask(ji+2,jj+1,1),  & 
     2101                     &          p_e3(ji  ,jj+2,1) * p_mask(ji  ,jj+2,1),  & 
     2102                     &          p_e3(ji+1,jj+2,1) * p_mask(ji+1,jj+2,1),  & 
     2103                     &          p_e3(ji+2,jj+2,1) * p_mask(ji+2,jj+2,1) ) 
     2104 
     2105                  p_e3_max_crs(ii,2,1) = ze3crs 
     2106                  ze3crs =  p_e3(ji  ,jj  ,1) * p_e1(ji  ,jj  ) * p_e2(ji  ,jj  ) * p_mask(ji  ,jj  ,1) +  & 
     2107                        &    p_e3(ji+1,jj  ,1) * p_e1(ji+1,jj  ) * p_e2(ji+1,jj  ) * p_mask(ji+1,jj  ,1) +  & 
     2108                        &    p_e3(ji+2,jj  ,1) * p_e1(ji+2,jj  ) * p_e2(ji+2,jj  ) * p_mask(ji+2,jj  ,1) +  & 
     2109                        &    p_e3(ji  ,jj+1,1) * p_e1(ji  ,jj+1) * p_e2(ji  ,jj+1) * p_mask(ji  ,jj+1,1) +  & 
     2110                        &    p_e3(ji+1,jj+1,1) * p_e1(ji+1,jj+1) * p_e2(ji+1,jj+1) * p_mask(ji+1,jj+1,1) +  & 
     2111                        &    p_e3(ji+2,jj+1,1) * p_e1(ji+2,jj+1) * p_e2(ji+2,jj+1) * p_mask(ji+2,jj+1,1) +  & 
     2112                        &    p_e3(ji  ,jj+2,1) * p_e1(ji  ,jj+2) * p_e2(ji  ,jj+2) * p_mask(ji  ,jj+2,1) +  & 
     2113                        &    p_e3(ji+1,jj+2,1) * p_e1(ji+1,jj+2) * p_e2(ji+1,jj+2) * p_mask(ji+1,jj+2,1) +  & 
     2114                        &    p_e3(ji+2,jj+2,1) * p_e1(ji+2,jj+2) * p_e2(ji+2,jj+2) * p_mask(ji+2,jj+2,1) 
     2115 
     2116                   p_e3_crs(ii,2,1) = ze3crs / p_sfc_crs(ii,2,1) 
     2117 
     2118               ENDIF 
     2119               DO jj = njstr, njend, nn_facty 
     2120                  ii   = ( ji - mis_crs(2) ) * rfactx_r + 2                 ! cordinate in parent grid 
     2121                  ij   = ( jj - njstr ) * rfacty_r + 3 
     2122                  ijje = mje_crs(ij) 
     2123                  ijie = mie_crs(ii) 
     2124                  !   
     2125                  ze3crs = MAX( p_e3(ji  ,jj  ,1) * p_mask(ji  ,jj  ,1),  & 
     2126                     &          p_e3(ji+1,jj  ,1) * p_mask(ji+1,jj  ,1),  & 
     2127                     &          p_e3(ji+2,jj  ,1) * p_mask(ji+2,jj  ,1),  & 
     2128                     &          p_e3(ji  ,jj+1,1) * p_mask(ji  ,jj+1,1),  & 
     2129                     &          p_e3(ji+1,jj+1,1) * p_mask(ji+1,jj+1,1),  & 
     2130                     &          p_e3(ji+2,jj+1,1) * p_mask(ji+2,jj+1,1),  & 
     2131                     &          p_e3(ji  ,jj+2,1) * p_mask(ji  ,jj+2,1),  & 
     2132                     &          p_e3(ji+1,jj+2,1) * p_mask(ji+1,jj+2,1),  & 
     2133                     &          p_e3(ji+2,jj+2,1) * p_mask(ji+2,jj+2,1) ) 
     2134 
     2135                  p_e3_max_crs(ii,ij,1) = ze3crs 
     2136 
     2137                   ze3crs =  p_e3(ji  ,jj  ,1) * p_e1(ji  ,jj  ) * p_e2(ji  ,jj  ) * p_mask(ji  ,jj  ,1) +  & 
     2138                        &    p_e3(ji+1,jj  ,1) * p_e1(ji+1,jj  ) * p_e2(ji+1,jj  ) * p_mask(ji+1,jj  ,1) +  & 
     2139                        &    p_e3(ji+2,jj  ,1) * p_e1(ji+2,jj  ) * p_e2(ji+2,jj  ) * p_mask(ji+2,jj  ,1) +  & 
     2140                        &    p_e3(ji  ,jj+1,1) * p_e1(ji  ,jj+1) * p_e2(ji  ,jj+1) * p_mask(ji  ,jj+1,1) +  & 
     2141                        &    p_e3(ji+1,jj+1,1) * p_e1(ji+1,jj+1) * p_e2(ji+1,jj+1) * p_mask(ji+1,jj+1,1) +  & 
     2142                        &    p_e3(ji+2,jj+1,1) * p_e1(ji+2,jj+1) * p_e2(ji+2,jj+1) * p_mask(ji+2,jj+1,1) +  & 
     2143                        &    p_e3(ji  ,jj+2,1) * p_e1(ji  ,jj+2) * p_e2(ji  ,jj+2) * p_mask(ji  ,jj+2,1) +  & 
     2144                        &    p_e3(ji+1,jj+2,1) * p_e1(ji+1,jj+2) * p_e2(ji+1,jj+2) * p_mask(ji+1,jj+2,1) +  & 
     2145                        &    p_e3(ji+2,jj+2,1) * p_e1(ji+2,jj+2) * p_e2(ji+2,jj+2) * p_mask(ji+2,jj+2,1) 
     2146 
     2147                       p_e3_crs(ii,ij,1) = ze3crs / p_sfc_crs(ii,ij,1) 
     2148 
     2149               ENDDO 
     2150            ENDDO 
     2151        !               
    17242152       END SELECT 
    17252153 
    1726        DO jk = 1, jpk 
    1727           zsurf(:,:,jk) = p_e1(:,:) * p_e2(:,:) * p_e3(:,:,jk)  
    1728        ENDDO 
    1729  
    1730        IF( nldj_crs == 1 .AND. ( ( mje_crs(2) - mjs_crs(2) ) < 2 ) ) THEN     !!cc bande du sud style ORCA2 
    1731           IF( mje_crs(2) - mjs_crs(2) == 1 ) THEN 
    1732              je_2 = mje_crs(2) 
    1733              DO jk = 1 , jpk 
    1734                 DO ji = nistr, niend, nn_factx 
    1735                    ii   = ( ji - mis_crs(2) ) * rfactx_r + 2      
    1736                    ze3crs =   zsurf(ji  ,je_2,jk) * zmask(ji  ,je_2,jk)   & 
    1737                         &   + zsurf(ji+1,je_2,jk) * zmask(ji+1,je_2,jk)   & 
    1738                         &   + zsurf(ji+2,je_2,jk) * zmask(ji+2,je_2,jk)  
    1739  
    1740                    p_e3_crs(ii,2,jk) = ze3crs / p_sfc_crs(ii,ij,jk) 
    1741                    ! 
    1742                    ze3crs = MAX( p_e3(ji  ,je_2,jk) * zmask(ji  ,je_2,jk),  & 
    1743                       &          p_e3(ji+1,je_2,jk) * zmask(ji+1,je_2,jk),  & 
    1744                       &          p_e3(ji+2,je_2,jk) * zmask(ji+2,je_2,jk)  ) 
    1745                    ! 
    1746                    p_e3_max_crs(ii,2,jk) = ze3crs 
    1747                 ENDDO 
    1748              ENDDO 
    1749           ENDIF 
    1750        ELSE 
    1751           je_2 = mjs_crs(2) 
    1752           DO jk = 1 , jpk 
    1753              DO ji = nistr, niend, nn_factx 
    1754                 ii   = ( ji - mis_crs(2) ) * rfactx_r + 2      
    1755                 ze3crs =  zsurf(ji  ,je_2  ,jk) * zmask(ji  ,je_2  ,jk)   & 
    1756                    &    + zsurf(ji+1,je_2  ,jk) * zmask(ji+1,je_2  ,jk)   & 
    1757                    &    + zsurf(ji+2,je_2  ,jk) * zmask(ji+2,je_2  ,jk)   & 
    1758                    &    + zsurf(ji  ,je_2+1,jk) * zmask(ji  ,je_2+1,jk)   & 
    1759                    &    + zsurf(ji+1,je_2+1,jk) * zmask(ji+1,je_2+1,jk)   & 
    1760                    &    + zsurf(ji+2,je_2+1,jk) * zmask(ji+2,je_2+1,jk)   & 
    1761                    &    + zsurf(ji  ,je_2+2,jk) * zmask(ji  ,je_2+2,jk)   & 
    1762                    &    + zsurf(ji+1,je_2+2,jk) * zmask(ji+1,je_2+2,jk)   & 
    1763                    &    + zsurf(ji+2,je_2+2,jk) * zmask(ji+2,je_2+2,jk) 
    1764  
    1765                 p_e3_crs(ii,2,jk) = ze3crs / p_sfc_crs(ii,2,jk) 
    1766                 ! 
    1767                 ze3crs = MAX( p_e3(ji  ,je_2  ,jk) * zmask(ji  ,je_2  ,jk),  & 
    1768                    &          p_e3(ji+1,je_2  ,jk) * zmask(ji+1,je_2  ,jk),  & 
    1769                    &          p_e3(ji+2,je_2  ,jk) * zmask(ji+2,je_2  ,jk),  & 
    1770                    &          p_e3(ji  ,je_2+1,jk) * zmask(ji  ,je_2+1,jk),  & 
    1771                    &          p_e3(ji+1,je_2+1,jk) * zmask(ji+1,je_2+1,jk),  & 
    1772                    &          p_e3(ji+2,je_2+1,jk) * zmask(ji+2,je_2+1,jk),  & 
    1773                    &          p_e3(ji  ,je_2+2,jk) * zmask(ji  ,je_2+2,jk),  & 
    1774                    &          p_e3(ji+1,je_2+2,jk) * zmask(ji+1,je_2+2,jk),  & 
    1775                    &          p_e3(ji+2,je_2+2,jk) * zmask(ji+2,je_2+2,jk) ) 
    1776                 
    1777                 p_e3_max_crs(ii,2,jk) = ze3crs 
    1778                 ENDDO 
    1779              ENDDO 
    1780           ENDIF 
    1781           DO jk = 1 , jpk 
    1782              DO jj = njstr, njend, nn_facty 
    1783                 DO ji = nistr, niend, nn_factx 
    1784                    ii   = ( ji - mis_crs(2) ) * rfactx_r + 2           
    1785                    ij   = ( jj - njstr ) * rfacty_r + 3 
    1786                    ze3crs =   zsurf(ji  ,jj  ,jk) * zmask(ji  ,jj  ,jk)   & 
    1787                    &        + zsurf(ji+1,jj  ,jk) * zmask(ji+1,jj  ,jk)   & 
    1788                    &        + zsurf(ji+2,jj  ,jk) * zmask(ji+2,jj  ,jk)   & 
    1789                    &        + zsurf(ji  ,jj+1,jk) * zmask(ji  ,jj+1,jk)   & 
    1790                    &        + zsurf(ji+1,jj+1,jk) * zmask(ji+1,jj+1,jk)   & 
    1791                    &        + zsurf(ji+2,jj+1,jk) * zmask(ji+2,jj+1,jk)   & 
    1792                    &        + zsurf(ji  ,jj+2,jk) * zmask(ji  ,jj+2,jk)   & 
    1793                    &        + zsurf(ji+1,jj+2,jk) * zmask(ji+1,jj+2,jk)   & 
    1794                    &        + zsurf(ji+2,jj+2,jk) * zmask(ji+2,jj+2,jk) 
    1795  
    1796                 !cbr 
    1797                 !p_e3_crs(ii,ij,jk) = ze3crs / p_sfc_crs(ii,ij,jk) 
    1798                 IF( p_sfc_crs(ii,ij,jk) == 0.d0 )WRITE(narea+200,*)"crs_dom_e30 ",ii,ij,jk,p_sfc_crs(ii,ij,jk) ; call flush(narea+200) 
    1799                 IF( p_sfc_crs(ii,ij,jk) .NE. 0.d0 )THEN ;  p_e3_crs(ii,ij,jk) = ze3crs / p_sfc_crs(ii,ij,jk) 
    1800                 ELSE                                    ;  p_e3_crs(ii,ij,jk) =0.d0 
    1801                 ENDIF 
    1802                 ! 
    1803                 ze3crs = MAX( p_e3(ji  ,jj  ,jk) * zmask(ji  ,jj  ,jk),  & 
    1804                    &          p_e3(ji+1,jj  ,jk) * zmask(ji+1,jj  ,jk),  & 
    1805                    &          p_e3(ji+2,jj  ,jk) * zmask(ji+2,jj  ,jk),  & 
    1806                    &          p_e3(ji  ,jj+1,jk) * zmask(ji  ,jj+1,jk),  & 
    1807                    &          p_e3(ji+1,jj+1,jk) * zmask(ji+1,jj+1,jk),  & 
    1808                    &          p_e3(ji+2,jj+1,jk) * zmask(ji+2,jj+1,jk),  & 
    1809                    &          p_e3(ji  ,jj+2,jk) * zmask(ji  ,jj+2,jk),  & 
    1810                    &          p_e3(ji+1,jj+2,jk) * zmask(ji+1,jj+2,jk),  & 
    1811                    &          p_e3(ji+2,jj+2,jk) * zmask(ji+2,jj+2,jk) ) 
    1812                 
    1813                 p_e3_max_crs(ii,ij,jk) = ze3crs 
    1814              ENDDO 
    1815           ENDDO 
    1816        ENDDO 
    1817                    
    1818        CALL crs_lbc_lnk( p_e3_crs    , cd_type, 1.0, pval=1.0 )   
    1819        CALL crs_lbc_lnk( p_e3_max_crs, cd_type, 1.0, pval=1.0 )   
     2154         CALL crs_lbc_lnk( p_e3_max_crs, cd_type, 1.0, pval=1.0 ) 
     2155         CALL crs_lbc_lnk( p_e3_crs    , cd_type, 1.0, pval=1.0 ) 
    18202156       !               
    1821        CALL wrk_dealloc( jpi, jpj, jpk, zsurf, zmask ) 
     2157       !CALL wrk_dealloc( jpi, jpj, jpk, zsurf, zmask ) 
    18222158       ! 
    18232159   END SUBROUTINE crs_dom_e3 
     
    18362172      INTEGER  :: ji, jj, jk                   ! dummy loop indices 
    18372173      INTEGER  :: ii, ij, je_2 
     2174      INTEGER  :: iji,ijj 
    18382175      REAL(wp), DIMENSION(:,:,:), POINTER :: zsurf, zsurfmsk    
    18392176      !!----------------------------------------------------------------   
    18402177      ! Initialize 
    1841  
     2178      p_surf_crs(:,:,:)=0._wp 
     2179      p_surf_crs_msk(:,:,:)=0._wp 
    18422180 
    18432181      CALL wrk_alloc( jpi, jpj, jpk, zsurf, zsurfmsk ) 
     
    18492187               zsurf(:,:,jk) = p_e1(:,:) * p_e2(:,:)  
    18502188            ENDDO 
    1851             zsurfmsk(:,:,1) = zsurf(:,:,1) * p_mask(:,:,1)  
    1852             DO jk = 2, jpk 
    1853                zsurfmsk(:,:,jk) = zsurf(:,:,jk) * p_mask(:,:,jk-1)  
     2189            !zsurfmsk(:,:,1) = zsurf(:,:,1) * p_mask(:,:,1)  
     2190            !cbr DO jk = 2, jpk 
     2191            DO jk = 1, jpk 
     2192               !cbr zsurfmsk(:,:,jk) = zsurf(:,:,jk) * p_mask(:,:,jk-1)  
     2193               zsurfmsk(:,:,jk) = zsurf(:,:,jk) * p_mask(:,:,jk)  
    18542194            ENDDO 
    18552195 
     
    18782218            ENDDO 
    18792219      END SELECT 
     2220 
     2221      WRITE(narea+200,*)"TOTO",nldj_crs,mjs_crs(1), mje_crs(1),mjs_crs(2), mje_crs(2),mjs_crs(3), mje_crs(3),mjs_crs(4), mje_crs(4) ; CALL FLUSH(narea+200) 
     2222 
     2223      SELECT CASE ( cd_type ) 
     2224 
     2225      CASE ('W') 
    18802226 
    18812227      IF( nldj_crs == 1 .AND. ( ( mje_crs(2) - mjs_crs(2) ) < 2 ) ) THEN     !!cc bande du sud style ORCA2 
     
    19162262               ii = ( ji - mis_crs(2) ) * rfactx_r + 2   
    19172263               ij = ( jj - njstr ) * rfacty_r + 3 
    1918                IF( jk==1 .AND. ii==2 .AND. ij==18 )THEN 
    1919                WRITE(narea+200,*)"crs_dom_sfc ",zsurf(ji,jj  ,jk) , zsurf(ji+1,jj  ,jk) , zsurf(ji+2,jj  ,jk)  & 
    1920                     &                    , zsurf(ji,jj+1,jk) , zsurf(ji+1,jj+1,jk) , zsurf(ji+2,jj+1,jk)  & 
    1921                     &                    , zsurf(ji,jj+2,jk) , zsurf(ji+1,jj+2,jk) , zsurf(ji+2,jj+2,jk)  
    1922                call flush(narea+200) 
    1923                ENDIF 
    19242264               ! 
    19252265               p_surf_crs    (ii,ij,jk) =  zsurf(ji,jj  ,jk) + zsurf(ji+1,jj  ,jk) + zsurf(ji+2,jj  ,jk)  & 
    19262266                    &                    + zsurf(ji,jj+1,jk) + zsurf(ji+1,jj+1,jk) + zsurf(ji+2,jj+1,jk)  & 
    19272267                    &                    + zsurf(ji,jj+2,jk) + zsurf(ji+1,jj+2,jk) + zsurf(ji+2,jj+2,jk)   
    1928                IF( jk==1 .AND. ii==2 .AND. ij==18 )WRITE(narea+200,*)"crs_dom_sfc ",p_surf_crs    (ii,ij,jk) ; call flush(narea+200) 
    19292268               p_surf_crs_msk(ii,ij,jk) =  zsurfmsk(ji,jj  ,jk) + zsurfmsk(ji+1,jj  ,jk) + zsurfmsk(ji+2,jj  ,jk)  & 
    19302269                    &                    + zsurfmsk(ji,jj+1,jk) + zsurfmsk(ji+1,jj+1,jk) + zsurfmsk(ji+2,jj+1,jk)  & 
    19312270                    &                    + zsurfmsk(ji,jj+2,jk) + zsurfmsk(ji+1,jj+2,jk) + zsurfmsk(ji+2,jj+2,jk)   
     2271 
     2272               !cbr 
     2273               iji=117 ; ijj=211 
     2274               iji=iji-nimpp_crs+1 ; ijj=ijj-njmpp_crs+1 
     2275               IF( ii==iji .AND. ij==ijj .AND. jk==74 )THEN 
     2276               WRITE(narea+5000,*)"SFC W =======> " 
     2277               WRITE(narea+5000,*)ii,ij,jk 
     2278               WRITE(narea+5000,*)ji,jj 
     2279               WRITE(narea+5000,*)zsurfmsk(ji,jj  ,jk) , zsurfmsk(ji+1,jj  ,jk) , zsurfmsk(ji+2,jj  ,jk) 
     2280               WRITE(narea+5000,*)zsurfmsk(ji,jj+1,jk) , zsurfmsk(ji+1,jj+1,jk) , zsurfmsk(ji+2,jj+1,jk) 
     2281               WRITE(narea+5000,*)zsurfmsk(ji,jj+2,jk) , zsurfmsk(ji+1,jj+2,jk) , zsurfmsk(ji+2,jj+2,jk) 
     2282               WRITE(narea+5000,*) p_surf_crs    (ii,ij,jk), p_surf_crs_msk(ii,ij,jk)  
     2283               ENDIF 
     2284 
     2285 
    19322286            ENDDO       
    19332287         ENDDO 
    19342288      ENDDO    
    1935       WRITE(narea+200,*)"crs_dom_sfc end ", p_surf_crs    (2,18,1) 
     2289 
     2290      CASE ('U') 
     2291 
     2292     IF( nldj_crs == 1 .AND. ( ( mje_crs(2) - mjs_crs(2) ) < 2 ) ) THEN     !!cc bande du sud style ORCA2 
     2293         IF( mje_crs(2) - mjs_crs(2) == 1 ) THEN 
     2294            je_2 = mje_crs(2) 
     2295            DO jk = 1, jpk 
     2296               DO ji = nistr, niend, nn_factx 
     2297                  ii   = ( ji - mis_crs(2) ) * rfactx_r + 2 
     2298                  !     
     2299                  p_surf_crs    (ii,2,jk) =  zsurf(ji+2,je_2  ,jk) 
     2300                  ! 
     2301                  p_surf_crs_msk(ii,2,jk) =  zsurfmsk(ji+2,je_2,jk) 
     2302                  ! 
     2303               ENDDO 
     2304            ENDDO 
     2305         ENDIF 
     2306      ELSE 
     2307         je_2 = mjs_crs(2) 
     2308         DO jk = 1, jpk 
     2309            DO ji = nistr, niend, nn_factx 
     2310               ii   = ( ji - mis_crs(2) ) * rfactx_r + 2 
     2311               !   
     2312               p_surf_crs    (ii,2,jk) =  zsurf(ji+2,je_2  ,jk)  & 
     2313                    &                   + zsurf(ji+2,je_2+1,jk)  & 
     2314                    &                   + zsurf(ji+2,je_2+2,jk) 
     2315 
     2316               p_surf_crs_msk(ii,2,jk) =  zsurfmsk(ji+2,je_2  ,jk)  & 
     2317                    &                   + zsurfmsk(ji+2,je_2+1,jk)  & 
     2318                    &                   + zsurfmsk(ji+2,je_2+2,jk) 
     2319                ENDDO 
     2320            ENDDO 
     2321      ENDIF 
     2322 
     2323      DO jk = 1, jpk 
     2324         DO jj = njstr, njend, nn_facty 
     2325            DO ji = nistr, niend, nn_factx 
     2326               ii = ( ji - mis_crs(2) ) * rfactx_r + 2 
     2327               ij = ( jj - njstr ) * rfacty_r + 3 
     2328               ! 
     2329               p_surf_crs    (ii,ij,jk) =  zsurf(ji+2,jj  ,jk)  & 
     2330                    &                    + zsurf(ji+2,jj+1,jk)  & 
     2331                    &                    + zsurf(ji+2,jj+2,jk) 
     2332               p_surf_crs_msk(ii,ij,jk) =  zsurfmsk(ji+2,jj  ,jk)  & 
     2333                    &                    + zsurfmsk(ji+2,jj+1,jk)  & 
     2334                    &                    + zsurfmsk(ji+2,jj+2,jk) 
     2335               !cbr 
     2336               !iji=117 ; ijj=211 
     2337               !iji=iji-nimpp_crs+1 ; ijj=ijj-njmpp_crs+1 
     2338               !IF( ii==iji .AND. ij==ijj .AND. jk==74 )THEN 
     2339               !WRITE(narea+5000,*)"SFC U =======> " 
     2340               !WRITE(narea+5000,*)ii,ij,jk 
     2341               !WRITE(narea+5000,*)ji,jj 
     2342               !WRITE(narea+5000,*)mis_crs(2),rfactx_r , ( ji - 1 - mis_crs(2) ) * rfactx_r  
     2343               !WRITE(narea+5000,*)zsurf(ji+2,jj  ,jk),zsurf(ji+2,jj+1,jk),zsurf(ji+2,jj+2,jk) 
     2344               !WRITE(narea+5000,*)zsurfmsk(ji+2,jj  ,jk),zsurfmsk(ji+2,jj+1,jk),zsurfmsk(ji+2,jj+2,jk) 
     2345               !WRITE(narea+5000,*)p_surf_crs    (ii,ij,jk),p_surf_crs_msk(ii,ij,jk) 
     2346               !ENDIF 
     2347               !iji=116 ; ijj=211 
     2348               !iji=iji-nimpp_crs+1 ; ijj=ijj-njmpp_crs+1 
     2349               !IF( ii==iji .AND. ij==ijj .AND. jk==74 )THEN 
     2350               !WRITE(narea+5000,*)"SFC U =======> " 
     2351               !WRITE(narea+5000,*)ii,ij,jk 
     2352               !WRITE(narea+5000,*)ji,jj 
     2353               !WRITE(narea+5000,*)zsurf(ji+2,jj  ,jk),zsurf(ji+2,jj+1,jk),zsurf(ji+2,jj+2,jk) 
     2354               !WRITE(narea+5000,*)zsurfmsk(ji+2,jj  ,jk),zsurfmsk(ji+2,jj+1,jk),zsurfmsk(ji+2,jj+2,jk) 
     2355               !WRITE(narea+5000,*)p_surf_crs    (ii,ij,jk),p_surf_crs_msk(ii,ij,jk) 
     2356               !ENDIF 
     2357            ENDDO 
     2358         ENDDO 
     2359      ENDDO 
     2360 
     2361      CASE ('V') 
     2362 
     2363      IF( nldj_crs == 1 .AND. ( ( mje_crs(2) - mjs_crs(2) ) < 2 ) ) THEN     !!cc bande du sud style ORCA2 
     2364         IF( mje_crs(2) - mjs_crs(2) == 1 ) THEN 
     2365            je_2 = mje_crs(2) 
     2366            DO jk = 1, jpk 
     2367               DO ji = nistr, niend, nn_factx 
     2368                  ii   = ( ji - mis_crs(2) ) * rfactx_r + 2 
     2369                  !     
     2370                  p_surf_crs    (ii,2,jk) =  zsurf(ji,je_2  ,jk) + zsurf(ji+1,je_2  ,jk) + zsurf(ji+2,je_2  ,jk) 
     2371                  ! 
     2372                  p_surf_crs_msk(ii,2,jk) =  zsurfmsk(ji,je_2,jk) + zsurfmsk(ji+1,je_2,jk) + zsurfmsk(ji+2,je_2,jk) 
     2373                  ! 
     2374               ENDDO 
     2375            ENDDO 
     2376         ENDIF 
     2377      ELSE 
     2378         je_2 = mjs_crs(2) 
     2379         DO jk = 1, jpk 
     2380            DO ji = nistr, niend, nn_factx 
     2381               ii   = ( ji - mis_crs(2) ) * rfactx_r + 2 
     2382               !   
     2383               p_surf_crs    (ii,2,jk) = zsurf(ji,je_2+2,jk) + zsurf(ji+1,je_2+2,jk) + zsurf(ji+2,je_2+2,jk) 
     2384               p_surf_crs_msk(ii,2,jk) = zsurfmsk(ji,je_2+2,jk) + zsurfmsk(ji+1,je_2+2,jk) + zsurfmsk(ji+2,je_2+2,jk) 
     2385            ENDDO 
     2386         ENDDO 
     2387      ENDIF 
     2388 
     2389      DO jk = 1, jpk 
     2390         DO jj = njstr, njend, nn_facty 
     2391            DO ji = nistr, niend, nn_factx 
     2392               ii = ( ji - mis_crs(2) ) * rfactx_r + 2 
     2393               ij = ( jj - njstr ) * rfacty_r + 3 
     2394               ! 
     2395               p_surf_crs    (ii,ij,jk) =  zsurf(ji,jj+2,jk) + zsurf(ji+1,jj+2,jk) + zsurf(ji+2,jj+2,jk) 
     2396               p_surf_crs_msk(ii,ij,jk) =  zsurfmsk(ji,jj+2,jk) + zsurfmsk(ji+1,jj+2,jk) + zsurfmsk(ji+2,jj+2,jk) 
     2397               iji=117 ; ijj=210 
     2398               iji=iji-nimpp_crs+1 ; ijj=ijj-njmpp_crs+1 
     2399               IF( ii==iji .AND. ij==ijj .AND. jk==74 )THEN 
     2400               WRITE(narea+5000,*)"SFC V =======> " 
     2401               WRITE(narea+5000,*)ii,ij,jk 
     2402               WRITE(narea+5000,*)ji,jj 
     2403               WRITE(narea+5000,*)zsurfmsk(ji,jj+2,jk),zsurfmsk(ji+1,jj+2,jk),zsurfmsk(ji+2,jj+2,jk) 
     2404               WRITE(narea+5000,*)p_surf_crs    (ii,ij,jk),p_surf_crs_msk(ii,ij,jk) 
     2405               ENDIF 
     2406            ENDDO 
     2407         ENDDO 
     2408      ENDDO 
     2409 
     2410     END SELECT 
     2411      DO jk=1,jpk 
     2412      DO ji=1,jpi_crs 
     2413      DO jj=1,jpj_crs 
     2414         IF( p_surf_crs_msk(ji,jj,jk) .NE. p_surf_crs_msk(ji,jj,jk) )WRITE(narea+200,*)"SFC 4 ",ji,jj,jk,p_surf_crs_msk(ji,jj,jk)  ; call flush(narea+200) 
     2415      ENDDO 
     2416      ENDDO 
     2417      ENDDO 
    19362418      CALL crs_lbc_lnk( p_surf_crs    , cd_type, 1.0, pval=1.0 ) 
    19372419      CALL crs_lbc_lnk( p_surf_crs_msk, cd_type, 1.0, pval=1.0 ) 
    1938       WRITE(narea+200,*)"crs_dom_sfc end ", p_surf_crs    (2,18,1) 
    19392420 
    19402421      CALL wrk_dealloc( jpi, jpj, jpk, zsurf, zsurfmsk ) 
Note: See TracChangeset for help on using the changeset viewer.