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

Ignore:
Timestamp:
2020-02-12T15:39:06+01:00 (4 years ago)
Author:
acc
Message:

The big one. Merging all 2019 developments from the option 1 branch back onto the trunk.

This changeset reproduces 2019/dev_r11943_MERGE_2019 on the trunk using a 2-URL merge
onto a working copy of the trunk. I.e.:

svn merge --ignore-ancestry \

svn+ssh://acc@forge.ipsl.jussieu.fr/ipsl/forge/projets/nemo/svn/NEMO/trunk \
svn+ssh://acc@forge.ipsl.jussieu.fr/ipsl/forge/projets/nemo/svn/NEMO/branches/2019/dev_r11943_MERGE_2019 ./

The --ignore-ancestry flag avoids problems that may otherwise arise from the fact that
the merge history been trunk and branch may have been applied in a different order but
care has been taken before this step to ensure that all applicable fixes and updates
are present in the merge branch.

The trunk state just before this step has been branched to releases/release-4.0-HEAD
and that branch has been immediately tagged as releases/release-4.0.2. Any fixes
or additions in response to tickets on 4.0, 4.0.1 or 4.0.2 should be done on
releases/release-4.0-HEAD. From now on future 'point' releases (e.g. 4.0.2) will
remain unchanged with periodic releases as needs demand. Note release-4.0-HEAD is a
transitional naming convention. Future full releases, say 4.2, will have a release-4.2
branch which fulfills this role and the first point release (e.g. 4.2.0) will be made
immediately following the release branch creation.

2020 developments can be started from any trunk revision later than this one.

Location:
NEMO/trunk
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • NEMO/trunk

    • Property svn:externals
      •  

        old new  
        33^/utils/build/mk@HEAD         mk 
        44^/utils/tools@HEAD            tools 
        5 ^/vendors/AGRIF/dev@HEAD      ext/AGRIF 
         5^/vendors/AGRIF/dev_r11615_ENHANCE-04_namelists_as_internalfiles_agrif@HEAD      ext/AGRIF 
        66^/vendors/FCM@HEAD            ext/FCM 
        77^/vendors/IOIPSL@HEAD         ext/IOIPSL 
  • NEMO/trunk/src/OCE/USR/usrdef_fmask.F90

    r10425 r12377  
    2626   PUBLIC   usr_def_fmask    ! routine called by dommsk.F90 
    2727 
    28    !! * Substitutions 
    29 #  include "vectopt_loop_substitute.h90" 
    3028   !!---------------------------------------------------------------------- 
    3129   !! NEMO/OCE 4.0 , NEMO Consortium (2018) 
  • NEMO/trunk/src/OCE/USR/usrdef_hgr.F90

    r10069 r12377  
    2626   PUBLIC   usr_def_hgr   ! called in domhgr.F90 
    2727 
     28   !! * Substitutions 
     29#  include "do_loop_substitute.h90" 
    2830   !!---------------------------------------------------------------------- 
    2931   !! NEMO/OCE 4.0 , NEMO Consortium (2018) 
     
    112114      ENDIF 
    113115      !    
    114       DO jj = 1, jpj  
    115          DO ji = 1, jpi  
    116             zim1 = REAL( ji + nimpp - 1 ) - 1.   ;   zim05 = REAL( ji + nimpp - 1 ) - 1.5  
    117             zjm1 = REAL( jj + njmpp - 1 ) - 1.   ;   zjm05 = REAL( jj + njmpp - 1 ) - 1.5  
    118             !    
    119             !glamt(i,j) longitude at T-point 
    120             !gphit(i,j) latitude at T-point   
    121             plamt(ji,jj) = zlam0 + zim05 * ze1deg * zcos_alpha + zjm05 * ze1deg * zsin_alpha 
    122             pphit(ji,jj) = zphi0 - zim05 * ze1deg * zsin_alpha + zjm05 * ze1deg * zcos_alpha 
    123             !    
    124             !glamu(i,j) longitude at U-point 
    125             !gphiu(i,j) latitude at U-point 
    126             plamu(ji,jj) = zlam0 + zim1  * ze1deg * zcos_alpha + zjm05 * ze1deg * zsin_alpha 
    127             pphiu(ji,jj) = zphi0 - zim1  * ze1deg * zsin_alpha + zjm05 * ze1deg * zcos_alpha 
    128             !    
    129             !glamv(i,j) longitude at V-point 
    130             !gphiv(i,j) latitude at V-point 
    131             plamv(ji,jj) = zlam0 + zim05 * ze1deg * zcos_alpha + zjm1  * ze1deg * zsin_alpha 
    132             pphiv(ji,jj) = zphi0 - zim05 * ze1deg * zsin_alpha + zjm1  * ze1deg * zcos_alpha 
    133             ! 
    134             !glamf(i,j) longitude at F-point 
    135             !gphif(i,j) latitude at F-point  
    136             plamf(ji,jj) = zlam0 + zim1  * ze1deg * zcos_alpha + zjm1  * ze1deg * zsin_alpha 
    137             pphif(ji,jj) = zphi0 - zim1  * ze1deg * zsin_alpha + zjm1  * ze1deg * zcos_alpha 
    138          END DO 
    139       END DO 
     116      DO_2D_11_11 
     117         zim1 = REAL( ji + nimpp - 1 ) - 1.   ;   zim05 = REAL( ji + nimpp - 1 ) - 1.5  
     118         zjm1 = REAL( jj + njmpp - 1 ) - 1.   ;   zjm05 = REAL( jj + njmpp - 1 ) - 1.5  
     119         !    
     120         !glamt(i,j) longitude at T-point 
     121         !gphit(i,j) latitude at T-point   
     122         plamt(ji,jj) = zlam0 + zim05 * ze1deg * zcos_alpha + zjm05 * ze1deg * zsin_alpha 
     123         pphit(ji,jj) = zphi0 - zim05 * ze1deg * zsin_alpha + zjm05 * ze1deg * zcos_alpha 
     124         !    
     125         !glamu(i,j) longitude at U-point 
     126         !gphiu(i,j) latitude at U-point 
     127         plamu(ji,jj) = zlam0 + zim1  * ze1deg * zcos_alpha + zjm05 * ze1deg * zsin_alpha 
     128         pphiu(ji,jj) = zphi0 - zim1  * ze1deg * zsin_alpha + zjm05 * ze1deg * zcos_alpha 
     129         !    
     130         !glamv(i,j) longitude at V-point 
     131         !gphiv(i,j) latitude at V-point 
     132         plamv(ji,jj) = zlam0 + zim05 * ze1deg * zcos_alpha + zjm1  * ze1deg * zsin_alpha 
     133         pphiv(ji,jj) = zphi0 - zim05 * ze1deg * zsin_alpha + zjm1  * ze1deg * zcos_alpha 
     134         ! 
     135         !glamf(i,j) longitude at F-point 
     136         !gphif(i,j) latitude at F-point  
     137         plamf(ji,jj) = zlam0 + zim1  * ze1deg * zcos_alpha + zjm1  * ze1deg * zsin_alpha 
     138         pphif(ji,jj) = zphi0 - zim1  * ze1deg * zsin_alpha + zjm1  * ze1deg * zcos_alpha 
     139      END_2D 
    140140      ! 
    141141      !                       !== Horizontal scale factors ==! (in meters) 
  • NEMO/trunk/src/OCE/USR/usrdef_istate.F90

    r10069 r12377  
    2424   PUBLIC   usr_def_istate   ! called in istate.F90 
    2525 
     26   !! * Substitutions 
     27#  include "do_loop_substitute.h90" 
    2628   !!---------------------------------------------------------------------- 
    2729   !! NEMO/OCE 4.0 , NEMO Consortium (2018) 
     
    5961      pssh(:,:)   = 0._wp 
    6062      ! 
    61       DO jk = 1, jpk             ! horizontally uniform T & S profiles 
    62          DO jj = 1, jpj 
    63             DO ji = 1, jpi 
    64                pts(ji,jj,jk,jp_tem) =  (  (  16. - 12. * TANH( (pdept(ji,jj,jk) - 400) / 700 ) )   & 
    65                     &           * (-TANH( (500. - pdept(ji,jj,jk)) / 150. ) + 1.) / 2.             & 
    66                     &           + ( 15. * ( 1. - TANH( (pdept(ji,jj,jk)-50.) / 1500.) )            & 
    67                     &           - 1.4 * TANH((pdept(ji,jj,jk)-100.) / 100.)                        & 
    68                     &           + 7.  * (1500. - pdept(ji,jj,jk) ) / 1500.)                        & 
    69                     &           * (-TANH( (pdept(ji,jj,jk) - 500.) / 150.) + 1.) / 2.  ) * ptmask(ji,jj,jk) 
     63      DO_3D_11_11( 1, jpk ) 
     64         pts(ji,jj,jk,jp_tem) =  (  (  16. - 12. * TANH( (pdept(ji,jj,jk) - 400) / 700 ) )   & 
     65              &           * (-TANH( (500. - pdept(ji,jj,jk)) / 150. ) + 1.) / 2.             & 
     66              &           + ( 15. * ( 1. - TANH( (pdept(ji,jj,jk)-50.) / 1500.) )            & 
     67              &           - 1.4 * TANH((pdept(ji,jj,jk)-100.) / 100.)                        & 
     68              &           + 7.  * (1500. - pdept(ji,jj,jk) ) / 1500.)                        & 
     69              &           * (-TANH( (pdept(ji,jj,jk) - 500.) / 150.) + 1.) / 2.  ) * ptmask(ji,jj,jk) 
    7070 
    71                pts(ji,jj,jk,jp_sal) =  (  (  36.25 - 1.13 * TANH( (pdept(ji,jj,jk) - 305) / 460 ) )  & 
    72                     &         * (-TANH((500. - pdept(ji,jj,jk)) / 150.) + 1.) / 2                  & 
    73                     &         + ( 35.55 + 1.25 * (5000. - pdept(ji,jj,jk)) / 5000.                 & 
    74                     &         - 1.62 * TANH( (pdept(ji,jj,jk) - 60.  ) / 650. )                    & 
    75                     &         + 0.2  * TANH( (pdept(ji,jj,jk) - 35.  ) / 100. )                    & 
    76                     &         + 0.2  * TANH( (pdept(ji,jj,jk) - 1000.) / 5000.) )                  & 
    77                     &         * (-TANH( (pdept(ji,jj,jk) - 500.) / 150.) + 1.) / 2  ) * ptmask(ji,jj,jk) 
    78             END DO 
    79          END DO 
    80       END DO 
     71         pts(ji,jj,jk,jp_sal) =  (  (  36.25 - 1.13 * TANH( (pdept(ji,jj,jk) - 305) / 460 ) )  & 
     72              &         * (-TANH((500. - pdept(ji,jj,jk)) / 150.) + 1.) / 2                  & 
     73              &         + ( 35.55 + 1.25 * (5000. - pdept(ji,jj,jk)) / 5000.                 & 
     74              &         - 1.62 * TANH( (pdept(ji,jj,jk) - 60.  ) / 650. )                    & 
     75              &         + 0.2  * TANH( (pdept(ji,jj,jk) - 35.  ) / 100. )                    & 
     76              &         + 0.2  * TANH( (pdept(ji,jj,jk) - 1000.) / 5000.) )                  & 
     77              &         * (-TANH( (pdept(ji,jj,jk) - 500.) / 150.) + 1.) / 2  ) * ptmask(ji,jj,jk) 
     78      END_3D 
    8179      !    
    8280   END SUBROUTINE usr_def_istate 
  • NEMO/trunk/src/OCE/USR/usrdef_nam.F90

    r11536 r12377  
    5959      !!---------------------------------------------------------------------- 
    6060      ! 
    61       REWIND( numnam_cfg )          ! Namelist namusr_def (exist in namelist_cfg only) 
    6261      READ  ( numnam_cfg, namusr_def, IOSTAT = ios, ERR = 902 ) 
    6362902   IF( ios /= 0 )   CALL ctl_nam ( ios , 'namusr_def in configuration namelist' ) 
  • NEMO/trunk/src/OCE/USR/usrdef_sbc.F90

    r10425 r12377  
    3131 
    3232   !! * Substitutions 
    33 #  include "vectopt_loop_substitute.h90" 
     33#  include "do_loop_substitute.h90" 
    3434   !!---------------------------------------------------------------------- 
    3535   !! NEMO/OCE 4.0 , NEMO Consortium (2018) 
     
    3939CONTAINS 
    4040 
    41    SUBROUTINE usrdef_sbc_oce( kt ) 
     41   SUBROUTINE usrdef_sbc_oce( kt, Kbb ) 
    4242      !!--------------------------------------------------------------------- 
    4343      !!                    ***  ROUTINE usrdef_sbc  *** 
     
    5555      !!---------------------------------------------------------------------- 
    5656      INTEGER, INTENT(in) ::   kt   ! ocean time step 
     57      INTEGER, INTENT(in) ::   Kbb  ! ocean time index 
    5758      !! 
    5859      INTEGER  ::   ji, jj                 ! dummy loop indices 
     
    109110      ztrp= - 40.e0        ! retroaction term on heat fluxes (W/m2/K) 
    110111      zconv = 3.16e-5      ! convertion factor: 1 m/yr => 3.16e-5 mm/s 
    111       DO jj = 1, jpj 
    112          DO ji = 1, jpi 
    113             ! domain from 15 deg to 50 deg between 27 and 28  degC at 15N, -3 
    114             ! and 13 degC at 50N 53.5 + or - 11 = 1/4 period : 
    115             ! 64.5 in summer, 42.5 in winter 
    116             t_star = zTstar * ( 1. + 1. / 50. * zcos_sais2 )                & 
    117                &                    * COS( rpi * (gphit(ji,jj) - 5.)               & 
    118                &                    / ( 53.5 * ( 1 + 11 / 53.5 * zcos_sais2 ) * 2.) ) 
    119             ! 23.5 deg : tropics 
    120             qsr (ji,jj) =  230 * COS( 3.1415 * ( gphit(ji,jj) - 23.5 * zcos_sais1 ) / ( 0.9 * 180 ) ) 
    121             qns (ji,jj) = ztrp * ( tsb(ji,jj,1,jp_tem) - t_star ) - qsr(ji,jj) 
    122             IF( gphit(ji,jj) >= 14.845 .AND. 37.2 >= gphit(ji,jj) ) THEN    ! zero at 37.8 deg, max at 24.6 deg 
    123                emp  (ji,jj) =   zemp_S * zconv   & 
    124                   &         * SIN( rpi / 2 * (gphit(ji,jj) - 37.2) / (24.6 - 37.2) )  & 
    125                   &         * ( 1 - zemp_sais / zemp_S * zcos_sais1) 
    126             ELSE 
    127                emp (ji,jj) =  - zemp_N * zconv   & 
    128                   &         * SIN( rpi / 2 * (gphit(ji,jj) - 37.2) / (46.8 - 37.2) )  & 
    129                   &         * ( 1 - zemp_sais / zemp_N * zcos_sais1 ) 
    130             ENDIF 
    131          END DO 
    132       END DO 
     112      DO_2D_11_11 
     113         ! domain from 15 deg to 50 deg between 27 and 28  degC at 15N, -3 
     114         ! and 13 degC at 50N 53.5 + or - 11 = 1/4 period : 
     115         ! 64.5 in summer, 42.5 in winter 
     116         t_star = zTstar * ( 1. + 1. / 50. * zcos_sais2 )                & 
     117            &                    * COS( rpi * (gphit(ji,jj) - 5.)               & 
     118            &                    / ( 53.5 * ( 1 + 11 / 53.5 * zcos_sais2 ) * 2.) ) 
     119         ! 23.5 deg : tropics 
     120         qsr (ji,jj) =  230 * COS( 3.1415 * ( gphit(ji,jj) - 23.5 * zcos_sais1 ) / ( 0.9 * 180 ) ) 
     121         qns (ji,jj) = ztrp * ( ts(ji,jj,1,jp_tem,Kbb) - t_star ) - qsr(ji,jj) 
     122         IF( gphit(ji,jj) >= 14.845 .AND. 37.2 >= gphit(ji,jj) ) THEN    ! zero at 37.8 deg, max at 24.6 deg 
     123            emp  (ji,jj) =   zemp_S * zconv   & 
     124               &         * SIN( rpi / 2 * (gphit(ji,jj) - 37.2) / (24.6 - 37.2) )  & 
     125               &         * ( 1 - zemp_sais / zemp_S * zcos_sais1) 
     126         ELSE 
     127            emp (ji,jj) =  - zemp_N * zconv   & 
     128               &         * SIN( rpi / 2 * (gphit(ji,jj) - 37.2) / (46.8 - 37.2) )  & 
     129               &         * ( 1 - zemp_sais / zemp_N * zcos_sais1 ) 
     130         ENDIF 
     131      END_2D 
    133132 
    134133      zsumemp = GLOB_SUM( 'usrdef_sbc', emp  (:,:)   )  
     
    166165      ztau_sais = 0.015 
    167166      ztaun = ztau - ztau_sais * COS( (ztime - ztimemax) / (ztimemin - ztimemax) * rpi ) 
    168       DO jj = 1, jpj 
    169          DO ji = 1, jpi 
    170            ! domain from 15deg to 50deg and 1/2 period along 14deg 
    171            ! so 5/4 of half period with seasonal cycle 
    172            utau(ji,jj) = - ztaun * SIN( rpi * (gphiu(ji,jj) - 15.) / (29.-15.) ) 
    173            vtau(ji,jj) =   ztaun * SIN( rpi * (gphiv(ji,jj) - 15.) / (29.-15.) ) 
    174          END DO 
    175       END DO 
     167      DO_2D_11_11 
     168        ! domain from 15deg to 50deg and 1/2 period along 14deg 
     169        ! so 5/4 of half period with seasonal cycle 
     170        utau(ji,jj) = - ztaun * SIN( rpi * (gphiu(ji,jj) - 15.) / (29.-15.) ) 
     171        vtau(ji,jj) =   ztaun * SIN( rpi * (gphiv(ji,jj) - 15.) / (29.-15.) ) 
     172      END_2D 
    176173 
    177174      ! module of wind stress and wind speed at T-point 
    178175      zcoef = 1. / ( zrhoa * zcdrag )  
    179       DO jj = 2, jpjm1 
    180          DO ji = fs_2, fs_jpim1   ! vect. opt. 
    181             ztx = utau(ji-1,jj  ) + utau(ji,jj)  
    182             zty = vtau(ji  ,jj-1) + vtau(ji,jj)  
    183             zmod = 0.5 * SQRT( ztx * ztx + zty * zty ) 
    184             taum(ji,jj) = zmod 
    185             wndm(ji,jj) = SQRT( zmod * zcoef ) 
    186          END DO 
    187       END DO 
     176      DO_2D_00_00 
     177         ztx = utau(ji-1,jj  ) + utau(ji,jj)  
     178         zty = vtau(ji  ,jj-1) + vtau(ji,jj)  
     179         zmod = 0.5 * SQRT( ztx * ztx + zty * zty ) 
     180         taum(ji,jj) = zmod 
     181         wndm(ji,jj) = SQRT( zmod * zcoef ) 
     182      END_2D 
    188183      CALL lbc_lnk_multi( 'usrdef_sbc', taum(:,:), 'T', 1. , wndm(:,:), 'T', 1. ) 
    189184 
  • NEMO/trunk/src/OCE/USR/usrdef_zgr.F90

    r10425 r12377  
    2929   PUBLIC   usr_def_zgr        ! called by domzgr.F90 
    3030 
    31    !! * Substitutions 
    32 #  include "vectopt_loop_substitute.h90" 
    3331   !!---------------------------------------------------------------------- 
    3432   !! NEMO/OCE 4.0 , NEMO Consortium (2018) 
Note: See TracChangeset for help on using the changeset viewer.