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 13286 for NEMO/trunk/src/OCE/USR – NEMO

Ignore:
Timestamp:
2020-07-09T17:48:29+02:00 (4 years ago)
Author:
smasson
Message:

trunk: merge extra halos branch in trunk, see #2366

Location:
NEMO/trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • NEMO/trunk

    • Property svn:externals
      •  

        old new  
        22^/utils/build/makenemo@HEAD   makenemo 
        33^/utils/build/mk@HEAD         mk 
        4 ^/utils/tools/@HEAD           tools 
         4^/utils/tools@HEAD            tools 
        55^/vendors/AGRIF/dev_r12970_AGRIF_CMEMS      ext/AGRIF 
        66^/vendors/FCM@HEAD            ext/FCM 
         
        88 
        99# SETTE 
        10 ^/utils/CI/sette@12931        sette 
         10^/utils/CI/r12931_sette_ticket2366@HEAD  sette 
  • NEMO/trunk/src/OCE/USR/usrdef_fmask.F90

    r12377 r13286  
    6868            ! 
    6969            IF(lwp) WRITE(numout,*) '      Gibraltar ' 
    70             ij0 = 101   ;   ij1 = 101           ! Gibraltar strait  : partial slip (pfmsk=0.5) 
    71             ii0 = 139   ;   ii1 = 140   ;   pfmsk( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) , 1:jpk ) =  0.5_wp 
    72             ij0 = 102   ;   ij1 = 102 
    73             ii0 = 139   ;   ii1 = 140   ;   pfmsk( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) , 1:jpk ) =  0.5_wp 
     70            ij0 = 101 + nn_hls       ;   ij1 = 101 + nn_hls           ! Gibraltar strait  : partial slip (pfmsk=0.5) 
     71            ii0 = 139 + nn_hls - 1   ;   ii1 = 140 + nn_hls - 1 
     72            pfmsk( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) , 1:jpk ) =  0.5_wp 
     73            ij0 = 102 + nn_hls       ;   ij1 = 102 + nn_hls 
     74            ii0 = 139 + nn_hls - 1   ;   ii1 = 140 + nn_hls - 1 
     75            pfmsk( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) , 1:jpk ) =  0.5_wp 
    7476            ! 
    7577            IF(lwp) WRITE(numout,*) '      Bab el Mandeb ' 
    76             ij0 =  87   ;   ij1 =  88           ! Bab el Mandeb : partial slip (pfmsk=1) 
    77             ii0 = 160   ;   ii1 = 160   ;   pfmsk( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) , 1:jpk ) =  1._wp 
    78             ij0 =  88   ;   ij1 =  88 
    79             ii0 = 159   ;   ii1 = 159   ;   pfmsk( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) , 1:jpk ) =  1._wp 
     78            ij0 =  87 + nn_hls       ;   ij1 = 88  + nn_hls          ! Bab el Mandeb : partial slip (pfmsk=1) 
     79            ii0 = 160 + nn_hls - 1   ;   ii1 = 160 + nn_hls - 1 
     80            pfmsk( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) , 1:jpk ) =  1._wp 
     81            ij0 =  88 + nn_hls       ;   ij1 =  88 + nn_hls 
     82            ii0 = 159 + nn_hls - 1   ;   ii1 = 159 + nn_hls - 1 
     83            pfmsk( mi0(ii0):mi1(ii1) , mj0(ij0):mj1(ij1) , 1:jpk ) =  1._wp 
    8084            ! 
    8185            ! We keep this as an example but it is instable in this case  
     
    9498!!gm    ! Currently these hard-wired indices relate to configuration with extend grid (jpjglo=332) 
    9599            ! 
    96             isrow = 332 - jpjglo 
     100            isrow = 332 - (Nj0glo + 1)   ! was 332 - jpjglo -> jpjglo_old_version = Nj0glo + 1 
    97101            ! 
    98102            IF(lwp) WRITE(numout,*) 
    99103            IF(lwp) WRITE(numout,*) '   orca_r1: increase friction near the following straits : ' 
    100104            IF(lwp) WRITE(numout,*) '      Gibraltar ' 
    101             ii0 = 282           ;   ii1 = 283        ! Gibraltar Strait  
    102             ij0 = 241 - isrow   ;   ij1 = 241 - isrow   ;   pfmsk( mi0(ii0):mi1(ii1),mj0(ij0):mj1(ij1),1:jpk ) = 2._wp   
     105            ii0 = 282 + nn_hls - 1       ;   ii1 = 283 + nn_hls - 1        ! Gibraltar Strait  
     106            ij0 = 241 + nn_hls - isrow   ;   ij1 = 241 + nn_hls - isrow 
     107            pfmsk( mi0(ii0):mi1(ii1),mj0(ij0):mj1(ij1),1:jpk ) = 2._wp   
    103108            ! 
    104109            IF(lwp) WRITE(numout,*) '      Bhosporus ' 
    105             ii0 = 314           ;   ii1 = 315        ! Bhosporus Strait  
    106             ij0 = 248 - isrow   ;   ij1 = 248 - isrow   ;   pfmsk( mi0(ii0):mi1(ii1),mj0(ij0):mj1(ij1),1:jpk ) = 2._wp   
     110            ii0 = 314 + nn_hls - 1       ;   ii1 = 315 + nn_hls - 1        ! Bhosporus Strait  
     111            ij0 = 248 + nn_hls - isrow   ;   ij1 = 248 + nn_hls - isrow 
     112            pfmsk( mi0(ii0):mi1(ii1),mj0(ij0):mj1(ij1),1:jpk ) = 2._wp   
    107113            ! 
    108114            IF(lwp) WRITE(numout,*) '      Makassar (Top) ' 
    109             ii0 =  48           ;   ii1 =  48        ! Makassar Strait (Top)  
    110             ij0 = 189 - isrow   ;   ij1 = 190 - isrow   ;   pfmsk( mi0(ii0):mi1(ii1),mj0(ij0):mj1(ij1),1:jpk ) = 3._wp   
     115            ii0 =  48 + nn_hls - 1       ;   ii1 =  48 + nn_hls - 1        ! Makassar Strait (Top)  
     116            ij0 = 189 + nn_hls - isrow   ;   ij1 = 190 + nn_hls - isrow 
     117            pfmsk( mi0(ii0):mi1(ii1),mj0(ij0):mj1(ij1),1:jpk ) = 3._wp   
    111118            ! 
    112119            IF(lwp) WRITE(numout,*) '      Lombok ' 
    113             ii0 =  44           ;   ii1 =  44        ! Lombok Strait  
    114             ij0 = 164 - isrow   ;   ij1 = 165 - isrow   ;   pfmsk( mi0(ii0):mi1(ii1),mj0(ij0):mj1(ij1),1:jpk ) = 2._wp   
     120            ii0 =  44 + nn_hls - 1       ;   ii1 =  44 + nn_hls - 1        ! Lombok Strait  
     121            ij0 = 164 + nn_hls - isrow   ;   ij1 = 165 + nn_hls - isrow 
     122            pfmsk( mi0(ii0):mi1(ii1),mj0(ij0):mj1(ij1),1:jpk ) = 2._wp   
    115123            ! 
    116124            IF(lwp) WRITE(numout,*) '      Ombai ' 
    117             ii0 =  53           ;   ii1 =  53        ! Ombai Strait  
    118             ij0 = 164 - isrow   ;   ij1 = 165 - isrow   ;   pfmsk( mi0(ii0):mi1(ii1),mj0(ij0):mj1(ij1),1:jpk ) = 2._wp   
     125            ii0 =  53 + nn_hls - 1       ;   ii1 =  53 + nn_hls - 1        ! Ombai Strait  
     126            ij0 = 164 + nn_hls - isrow   ;   ij1 = 165 + nn_hls - isrow 
     127            pfmsk( mi0(ii0):mi1(ii1),mj0(ij0):mj1(ij1),1:jpk ) = 2._wp   
    119128            ! 
    120129            IF(lwp) WRITE(numout,*) '      Timor Passage ' 
    121             ii0 =  56           ;   ii1 =  56        ! Timor Passage  
    122             ij0 = 164 - isrow   ;   ij1 = 165 - isrow   ;   pfmsk( mi0(ii0):mi1(ii1),mj0(ij0):mj1(ij1),1:jpk ) = 2._wp   
     130            ii0 =  56 + nn_hls - 1       ;   ii1 =  56 + nn_hls - 1        ! Timor Passage  
     131            ij0 = 164 + nn_hls - isrow   ;   ij1 = 165 + nn_hls - isrow 
     132            pfmsk( mi0(ii0):mi1(ii1),mj0(ij0):mj1(ij1),1:jpk ) = 2._wp   
    123133            ! 
    124134            IF(lwp) WRITE(numout,*) '      West Halmahera ' 
    125             ii0 =  58           ;   ii1 =  58        ! West Halmahera Strait  
    126             ij0 = 181 - isrow   ;   ij1 = 182 - isrow   ;   pfmsk( mi0(ii0):mi1(ii1),mj0(ij0):mj1(ij1),1:jpk ) = 3._wp   
     135            ii0 =  58 + nn_hls - 1       ;   ii1 =  58 + nn_hls - 1        ! West Halmahera Strait  
     136            ij0 = 181 + nn_hls - isrow   ;   ij1 = 182 + nn_hls - isrow 
     137            pfmsk( mi0(ii0):mi1(ii1),mj0(ij0):mj1(ij1),1:jpk ) = 3._wp   
    127138            ! 
    128139            IF(lwp) WRITE(numout,*) '      East Halmahera ' 
    129             ii0 =  55           ;   ii1 =  55        ! East Halmahera Strait  
    130             ij0 = 181 - isrow   ;   ij1 = 182 - isrow   ;   pfmsk( mi0(ii0):mi1(ii1),mj0(ij0):mj1(ij1),1:jpk ) = 3._wp   
     140            ii0 =  55 + nn_hls - 1       ;   ii1 =  55 + nn_hls - 1        ! East Halmahera Strait  
     141            ij0 = 181 + nn_hls - isrow   ;   ij1 = 182 + nn_hls - isrow 
     142            pfmsk( mi0(ii0):mi1(ii1),mj0(ij0):mj1(ij1),1:jpk ) = 3._wp   
    131143            ! 
    132144         CASE DEFAULT 
  • NEMO/trunk/src/OCE/USR/usrdef_hgr.F90

    r13216 r13286  
    1313   !!   usr_def_hgr   : initialize the horizontal mesh  
    1414   !!---------------------------------------------------------------------- 
    15    USE dom_oce  , ONLY: nimpp, njmpp       ! ocean space and time domain 
     15   USE dom_oce        ! ocean space and time domain 
    1616   USE par_oce        ! ocean space and time domain 
    1717   USE phycst         ! physical constants 
     
    9090      zcos_alpha =   SQRT( 2._wp ) * 0.5_wp 
    9191      ze1deg = ze1 / (ra * rad) 
    92       zlam0 = zlam1 + zcos_alpha * ze1deg * REAL( jpjglo-2 , wp ) 
    93       zphi0 = zphi1 + zsin_alpha * ze1deg * REAL( jpjglo-2 , wp ) 
     92      zlam0 = zlam1 + zcos_alpha * ze1deg * REAL( Ni0glo - 2, wp ) 
     93      zphi0 = zphi1 + zsin_alpha * ze1deg * REAL( Nj0glo - 2, wp ) 
    9494 
    9595#if defined key_agrif 
     
    9797      ! Laurent: Should be modify in case of an east-west cyclic parent grid 
    9898      IF (.NOT.Agrif_root()) THEN 
    99          zlam0 = zlam1 + Agrif_irhox() * REAL(Agrif_Parent(jpjglo)-2 , wp) * ze1deg * zcos_alpha  & 
     99         zlam0 = zlam1 + Agrif_irhox() * REAL(Agrif_Parent(Ni0glo) -2, wp) * ze1deg * zcos_alpha  & 
    100100                   &   + ( Agrif_Ix()*Agrif_irhox()-(0.5_wp+nbghostcells)) * ze1deg * zcos_alpha  & 
    101101                   &   + ( Agrif_Iy()*Agrif_irhoy()-(0.5_wp+nbghostcells)) * ze1deg * zsin_alpha 
    102          zphi0 = zphi1 + Agrif_irhoy() * REAL(Agrif_Parent(jpjglo)-2 , wp) * ze1deg * zsin_alpha  & 
     102         zphi0 = zphi1 + Agrif_irhoy() * REAL(Agrif_Parent(Nj0glo) -2, wp) * ze1deg * zsin_alpha  & 
    103103                   &   - ( Agrif_Ix()*Agrif_irhox()-nbghostcells )         * ze1deg * zsin_alpha  & 
    104104                   &   + ( Agrif_Iy()*Agrif_irhoy()-nbghostcells )         * ze1deg * zcos_alpha 
     
    110110         CALL ctl_warn( ' GYRE used as Benchmark: e1=e2=106km, no need to adjust rn_Dt, ahm,aht ' ) 
    111111      ENDIF 
    112       IF( nprint==1 .AND. lwp )   THEN 
     112      IF( lwp )   THEN 
    113113         WRITE(numout,*) 'ze1', ze1, 'cosalpha', zcos_alpha, 'sinalpha', zsin_alpha 
    114114         WRITE(numout,*) 'ze1deg', ze1deg, 'zlam0', zlam0, 'zphi0', zphi0 
     
    116116      !    
    117117      DO_2D_11_11 
    118          zim1 = REAL( ji + nimpp - 1 ) - 1.   ;   zim05 = REAL( ji + nimpp - 1 ) - 1.5  
    119          zjm1 = REAL( jj + njmpp - 1 ) - 1.   ;   zjm05 = REAL( jj + njmpp - 1 ) - 1.5  
     118         zim1 = REAL( mig0_oldcmp(ji), wp ) - 1.   ;   zim05 = REAL( mig0_oldcmp(ji), wp ) - 1.5 
     119         zjm1 = REAL( mjg0_oldcmp(jj), wp ) - 1.   ;   zjm05 = REAL( mjg0_oldcmp(jj), wp ) - 1.5 
    120120         !    
    121121         !glamt(i,j) longitude at T-point 
  • NEMO/trunk/src/OCE/USR/usrdef_nam.F90

    r13216 r13286  
    1414   !!   usr_def_hgr   : initialize the horizontal mesh  
    1515   !!---------------------------------------------------------------------- 
    16    USE dom_oce  , ONLY: nimpp, njmpp       ! ocean space and time domain 
     16   USE dom_oce 
    1717   USE par_oce        ! ocean space and time domain 
    1818   USE phycst         ! physical constants 
     
    7070      kk_cfg = nn_GYRE 
    7171      ! 
    72       kpi = 30 * nn_GYRE + 2        ! Global Domain size 
     72      kpi = 30 * nn_GYRE + 2       !                      
    7373      kpj = 20 * nn_GYRE + 2 
    7474#if defined key_agrif 
    75       IF( .NOT. Agrif_Root() ) THEN 
    76          kpi  = nbcellsx + 2 + 2*nbghostcells_x 
    77          kpj  = nbcellsy + 2 + 2*nbghostcells_y_s 
     75      IF( .NOT.Agrif_Root() ) THEN         ! Global Domain size: add 1 land point on each side 
     76         kpi  = nbcellsx + 2 * ( nbghostcells + 1 ) 
     77         kpj  = nbcellsy + 2 * ( nbghostcells + 1 ) 
     78!!$         kpi  = nbcellsx + nbghostcells_x   + nbghostcells_x   + 2 
     79!!$         kpj  = nbcellsy + nbghostcells_y_s + nbghostcells_y_n + 2 
    7880      ENDIF 
    7981#endif 
     
    9395         IF( Agrif_Root() ) THEN 
    9496#endif 
    95          WRITE(numout,*) '         jpiglo = 30*nn_GYRE+2                            jpiglo = ', kpi 
    96          WRITE(numout,*) '         jpjglo = 20*nn_GYRE+2                            jpjglo = ', kpj 
     97         WRITE(numout,*) '      Ni0glo = 30*nn_GYRE                              Ni0glo = ', kpi 
     98         WRITE(numout,*) '      Nj0glo = 20*nn_GYRE                              Nj0glo = ', kpj 
    9799#if defined key_agrif 
    98100         ENDIF 
    99101#endif 
    100          WRITE(numout,*) '      number of model levels                              jpkglo = ', kpk 
     102         WRITE(numout,*) '      number of model levels                           jpkglo = ', kpk 
    101103         WRITE(numout,*) '   ' 
    102          WRITE(numout,*) '   Lateral b.c. of the global domain set to closed        jperio = ', kperio 
     104         WRITE(numout,*) '   Lateral b.c. of the global domain set to closed     jperio = ', kperio 
    103105      ENDIF 
    104106      ! 
  • NEMO/trunk/src/OCE/USR/usrdef_zgr.F90

    r13226 r13286  
    198198      IF(lwp) WRITE(numout,*) '       GYRE case : closed flat box ocean without ocean cavities' 
    199199      ! 
    200       z2d(:,:) = REAL( jpkm1 , wp )          ! flat bottom 
    201       ! 
    202       CALL lbc_lnk( 'usrdef_zgr', z2d, 'T', 1.0_wp )           ! set surrounding land to zero (here jperio=0 ==>> closed) 
     200      z2d(:,:) = REAL( jpkm1 , wp )                              ! flat bottom 
    203201      ! 
    204202      k_bot(:,:) = NINT( z2d(:,:) )          ! =jpkm1 over the ocean point, =0 elsewhere 
Note: See TracChangeset for help on using the changeset viewer.