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 14644 for NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/tests/BENCH/MY_SRC/usrdef_istate.F90 – NEMO

Ignore:
Timestamp:
2021-03-26T15:33:49+01:00 (3 years ago)
Author:
sparonuz
Message:

Merge trunk -r14642:HEAD

Location:
NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final

    • Property svn:externals
      •  

        old new  
        99 
        1010# SETTE 
        11 ^/utils/CI/sette_wave@13990         sette 
         11^/utils/CI/sette@14244        sette 
  • NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/tests/BENCH/MY_SRC/usrdef_istate.F90

    r14053 r14644  
    5353      REAL(wp), DIMENSION(jpi,jpj,jpk)     , INTENT(  out) ::   pu      ! i-component of the velocity  [m/s]  
    5454      REAL(wp), DIMENSION(jpi,jpj,jpk)     , INTENT(  out) ::   pv      ! j-component of the velocity  [m/s]  
    55 !!st      REAL(wp), DIMENSION(jpi,jpj)         , INTENT(  out) ::   pssh    ! sea-surface height 
    5655      ! 
    5756      REAL(wp), DIMENSION(jpi,jpj) ::   z2d   ! 2D workspace 
    5857      REAL(wp) ::   zfact 
    5958      INTEGER  ::   ji, jj, jk 
    60       INTEGER  ::   igloi, igloj   ! to be removed in the future, see comment bellow 
    6159      !!---------------------------------------------------------------------- 
    6260      ! 
     
    6765      ! define unique value on each point of the inner global domain. z2d ranging from 0.05 to -0.05 
    6866      ! 
    69       ! WARNING: to keep compatibility with the trunk that was including periodocity into the input data,  
    70       ! we must define z2d as bellow. 
    71       ! Once we decide to forget trunk compatibility, we must simply define z2d as: 
    72 !!$      DO_2D( 0, 0, 0, 0 ) 
    73 !!$         z2d(ji,jj) = 0.1 * ( 0.5 - REAL( mig0_oldcmp(ji) + (mjg0_oldcmp(jj)-1) * Ni0glo, wp ) / REAL( Ni0glo * Nj0glo, wp ) ) 
    74 !!$      END_2D 
    75       igloi = Ni0glo + 2 * COUNT( (/ jperio == 1 .OR. jperio == 4 .OR. jperio == 6 .OR. jperio == 7 /) ) 
    76       igloj = Nj0glo + 2 * COUNT( (/ jperio == 2 .OR. jperio == 7 /) ) + 1 * COUNT( (/ jperio >= 4 .AND. jperio <= 6 /) ) 
    77       DO_2D( 0, 0, 0, 0 ) 
    78          z2d(ji,jj) = 0.1 * ( 0.5 - REAL( mig0_oldcmp(ji) + (mjg0_oldcmp(jj)-1) * igloi, wp ) / REAL( igloi * igloj, wp ) ) 
     67      DO_2D( 0, 0, 0, 0 )   !  +/- 0.05 
     68         z2d(ji,jj) = 0.1 * ( 0.5 - REAL( mig0(ji) + (mjg0(jj)-1) * Ni0glo, wp ) / REAL( Ni0glo * Nj0glo, wp ) ) 
    7969      END_2D 
    80       ! 
    81       ! sea level: 
    82 !!st      pssh(:,:) = z2d(:,:)                                                ! +/- 0.05 m 
    8370      ! 
    8471      DO_3D( 0, 0, 0, 0, 1, jpkm1 ) 
    8572         zfact = REAL(jk-1,wp) / REAL(jpk-1,wp)   ! 0 to 1 to add a basic stratification 
    8673         ! temperature choosen to lead to ~50% ice at the beginning if rn_thres_sst = 0.5 
    87          pts(:,:,jk,jp_tem) = 20._wp*z2d(:,:) - 1._wp - 0.5_wp * zfact    ! -1 to -1.5 +/-1.0 degG 
     74         pts(ji,jj,jk,jp_tem) = 20._wp*z2d(ji,jj) - 1._wp - 0.5_wp * zfact    ! -1 to -1.5 +/- 1.0 degG 
    8875         ! salinity:   
    89          pts(:,:,jk,jp_sal) = 30._wp + 1._wp * zfact + z2d(:,:)           ! 30 to 31 +/- 0.05 psu 
     76         pts(ji,jj,jk,jp_sal) = 30._wp + 1._wp * zfact + z2d(ji,jj)           ! 30 to 31  +/- 0.05 psu 
    9077         ! velocities: 
    91          pu(:,:,jk) = z2d(:,:) *  0.1_wp * umask(:,:,jk)                  ! +/- 0.005  m/s 
    92          pv(:,:,jk) = z2d(:,:) * 0.01_wp * vmask(:,:,jk)                  ! +/- 0.0005 m/s 
     78         pu(ji,jj,jk) = z2d(ji,jj) *  0.1_wp * umask(ji,jj,jk)                ! +/- 0.005  m/s 
     79         pv(ji,jj,jk) = z2d(ji,jj) * 0.01_wp * vmask(ji,jj,jk)                ! +/- 0.0005 m/s 
    9380      END_3D 
    9481      pts(:,:,jpk,:) = 0._wp 
     
    9683      pv( :,:,jpk  ) = 0._wp 
    9784      ! 
    98 !!st      CALL lbc_lnk('usrdef_istate', pssh, 'T',  1. )            ! apply boundary conditions 
    9985      CALL lbc_lnk('usrdef_istate',  pts, 'T',  1. )            ! apply boundary conditions 
    10086      CALL lbc_lnk('usrdef_istate',   pu, 'U', -1. )            ! apply boundary conditions 
     
    117103      ! 
    118104      INTEGER  ::   ji, jj 
    119       INTEGER  ::   igloi, igloj   ! to be removed in the future, see usr_def_istate comment  
    120105      !!---------------------------------------------------------------------- 
    121106      ! 
     
    123108      IF(lwp) WRITE(numout,*) 'usr_def_istate_ssh : BENCH configuration, analytical definition of initial ssh' 
    124109      ! 
    125       igloi = Ni0glo + 2 * COUNT( (/ jperio == 1 .OR. jperio == 4 .OR. jperio == 6 .OR. jperio == 7 /) ) 
    126       igloj = Nj0glo + 2 * COUNT( (/ jperio == 2 .OR. jperio == 7 /) ) + 1 * COUNT( (/ jperio >= 4 .AND. jperio <= 6 /) ) 
    127       ! sea level:  +/- 0.05 m 
    128       DO_2D( 0, 0, 0, 0 ) 
    129          pssh(ji,jj) = 0.1 * ( 0.5 - REAL( mig0_oldcmp(ji) + (mjg0_oldcmp(jj)-1) * igloi, wp ) / REAL( igloi * igloj, wp ) ) 
     110      DO_2D( 0, 0, 0, 0 )                              ! sea level:  +/- 0.05 m 
     111         pssh(ji,jj) = 0.1 * ( 0.5 - REAL( mig0(ji) + (mjg0(jj)-1) * Ni0glo, wp ) / REAL( Ni0glo * Nj0glo, wp ) ) 
    130112      END_2D 
    131113      ! 
    132       CALL lbc_lnk('usrdef_istate', pssh, 'T',  1. )            ! apply boundary conditions 
     114      CALL lbc_lnk('usrdef_istate', pssh, 'T',  1. )   ! apply boundary conditions 
    133115      ! 
    134116   END SUBROUTINE usr_def_istate_ssh 
Note: See TracChangeset for help on using the changeset viewer.