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 10954 for NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/OCE/TRA/eosbn2.F90 – NEMO

Ignore:
Timestamp:
2019-05-09T18:12:29+02:00 (5 years ago)
Author:
acc
Message:

2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps : Convert TRA modules and all knock on effects of these conversions. SETTE tested

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2019/dev_r10721_KERNEL-02_Storkey_Coward_IMMERSE_first_steps/src/OCE/TRA/eosbn2.F90

    r10425 r10954  
    564564 
    565565 
    566    SUBROUTINE rab_3d( pts, pab ) 
     566   SUBROUTINE rab_3d( pts, pab, Kmm ) 
    567567      !!---------------------------------------------------------------------- 
    568568      !!                 ***  ROUTINE rab_3d  *** 
     
    574574      !! ** Action  : - pab     : thermal/haline expansion ratio at T-points 
    575575      !!---------------------------------------------------------------------- 
     576      INTEGER                              , INTENT(in   ) ::   Kmm   ! time level index 
    576577      REAL(wp), DIMENSION(jpi,jpj,jpk,jpts), INTENT(in   ) ::   pts   ! pot. temperature & salinity 
    577578      REAL(wp), DIMENSION(jpi,jpj,jpk,jpts), INTENT(  out) ::   pab   ! thermal/haline expansion ratio 
     
    592593               DO ji = 1, jpi 
    593594                  ! 
    594                   zh  = gdept_n(ji,jj,jk) * r1_Z0                                ! depth 
     595                  zh  = gdept(ji,jj,jk,Kmm) * r1_Z0                                ! depth 
    595596                  zt  = pts (ji,jj,jk,jp_tem) * r1_T0                           ! temperature 
    596597                  zs  = SQRT( ABS( pts(ji,jj,jk,jp_sal) + rdeltaS ) * r1_S0 )   ! square root salinity 
     
    650651                  zt  = pts (ji,jj,jk,jp_tem) - 10._wp   ! pot. temperature anomaly (t-T0) 
    651652                  zs  = pts (ji,jj,jk,jp_sal) - 35._wp   ! abs. salinity anomaly (s-S0) 
    652                   zh  = gdept_n(ji,jj,jk)                ! depth in meters at t-point 
     653                  zh  = gdept(ji,jj,jk,Kmm)                ! depth in meters at t-point 
    653654                  ztm = tmask(ji,jj,jk)                  ! land/sea bottom mask = surf. mask 
    654655                  ! 
     
    677678 
    678679 
    679    SUBROUTINE rab_2d( pts, pdep, pab ) 
     680   SUBROUTINE rab_2d( pts, pdep, pab, Kmm ) 
    680681      !!---------------------------------------------------------------------- 
    681682      !!                 ***  ROUTINE rab_2d  *** 
     
    685686      !! ** Action  : - pab     : thermal/haline expansion ratio at T-points 
    686687      !!---------------------------------------------------------------------- 
     688      INTEGER                              , INTENT(in   ) ::   Kmm   ! time level index 
    687689      REAL(wp), DIMENSION(jpi,jpj,jpts)    , INTENT(in   ) ::   pts    ! pot. temperature & salinity 
    688690      REAL(wp), DIMENSION(jpi,jpj)         , INTENT(in   ) ::   pdep   ! depth                  [m] 
     
    791793 
    792794 
    793    SUBROUTINE rab_0d( pts, pdep, pab ) 
     795   SUBROUTINE rab_0d( pts, pdep, pab, Kmm ) 
    794796      !!---------------------------------------------------------------------- 
    795797      !!                 ***  ROUTINE rab_0d  *** 
     
    799801      !! ** Action  : - pab     : thermal/haline expansion ratio at T-points 
    800802      !!---------------------------------------------------------------------- 
     803      INTEGER                              , INTENT(in   ) ::   Kmm   ! time level index 
    801804      REAL(wp), DIMENSION(jpts)    , INTENT(in   ) ::   pts    ! pot. temperature & salinity 
    802805      REAL(wp),                      INTENT(in   ) ::   pdep   ! depth                  [m] 
     
    887890 
    888891 
    889    SUBROUTINE bn2( pts, pab, pn2 ) 
     892   SUBROUTINE bn2( pts, pab, pn2, Kmm ) 
    890893      !!---------------------------------------------------------------------- 
    891894      !!                  ***  ROUTINE bn2  *** 
     
    901904      !! 
    902905      !!---------------------------------------------------------------------- 
     906      INTEGER                              , INTENT(in   ) ::   Kmm   ! time level index 
    903907      REAL(wp), DIMENSION(jpi,jpj,jpk,jpts), INTENT(in   ) ::  pts   ! pot. temperature and salinity   [Celsius,psu] 
    904908      REAL(wp), DIMENSION(jpi,jpj,jpk,jpts), INTENT(in   ) ::  pab   ! thermal/haline expansion coef.  [Celsius-1,psu-1] 
     
    914918         DO jj = 1, jpj          ! surface and bottom value set to zero one for all in istate.F90 
    915919            DO ji = 1, jpi 
    916                zrw =   ( gdepw_n(ji,jj,jk  ) - gdept_n(ji,jj,jk) )   & 
    917                   &  / ( gdept_n(ji,jj,jk-1) - gdept_n(ji,jj,jk) )  
     920               zrw =   ( gdepw(ji,jj,jk  ,Kmm) - gdept(ji,jj,jk,Kmm) )   & 
     921                  &  / ( gdept(ji,jj,jk-1,Kmm) - gdept(ji,jj,jk,Kmm) )  
    918922                  ! 
    919923               zaw = pab(ji,jj,jk,jp_tem) * (1. - zrw) + pab(ji,jj,jk-1,jp_tem) * zrw  
     
    922926               pn2(ji,jj,jk) = grav * (  zaw * ( pts(ji,jj,jk-1,jp_tem) - pts(ji,jj,jk,jp_tem) )     & 
    923927                  &                    - zbw * ( pts(ji,jj,jk-1,jp_sal) - pts(ji,jj,jk,jp_sal) )  )  & 
    924                   &            / e3w_n(ji,jj,jk) * wmask(ji,jj,jk) 
     928                  &            / e3w(ji,jj,jk,Kmm) * wmask(ji,jj,jk) 
    925929            END DO 
    926930         END DO 
     
    10911095 
    10921096 
    1093    SUBROUTINE eos_pen( pts, pab_pe, ppen ) 
     1097   SUBROUTINE eos_pen( pts, pab_pe, ppen, Kmm ) 
    10941098      !!---------------------------------------------------------------------- 
    10951099      !!                 ***  ROUTINE eos_pen  *** 
     
    11111115      !!                    pab_pe(:,:,:,jp_sal) is beta_pe 
    11121116      !!---------------------------------------------------------------------- 
     1117      INTEGER                              , INTENT(in   ) ::   Kmm   ! time level index 
    11131118      REAL(wp), DIMENSION(jpi,jpj,jpk,jpts), INTENT(in   ) ::   pts     ! pot. temperature & salinity 
    11141119      REAL(wp), DIMENSION(jpi,jpj,jpk,jpts), INTENT(  out) ::   pab_pe  ! alpha_pe and beta_pe 
     
    11301135               DO ji = 1, jpi 
    11311136                  ! 
    1132                   zh  = gdept_n(ji,jj,jk) * r1_Z0                                ! depth 
     1137                  zh  = gdept(ji,jj,jk,Kmm) * r1_Z0                                ! depth 
    11331138                  zt  = pts (ji,jj,jk,jp_tem) * r1_T0                           ! temperature 
    11341139                  zs  = SQRT( ABS( pts(ji,jj,jk,jp_sal) + rdeltaS ) * r1_S0 )   ! square root salinity 
     
    11941199                  zt  = pts(ji,jj,jk,jp_tem) - 10._wp  ! temperature anomaly (t-T0) 
    11951200                  zs = pts (ji,jj,jk,jp_sal) - 35._wp  ! abs. salinity anomaly (s-S0) 
    1196                   zh  = gdept_n(ji,jj,jk)              ! depth in meters  at t-point 
     1201                  zh  = gdept(ji,jj,jk,Kmm)              ! depth in meters  at t-point 
    11971202                  ztm = tmask(ji,jj,jk)                ! tmask 
    11981203                  zn  = 0.5_wp * zh * r1_rau0 * ztm 
Note: See TracChangeset for help on using the changeset viewer.