Changeset 5304


Ignore:
Timestamp:
2015-05-28T12:05:28+02:00 (6 years ago)
Author:
pabouttier
Message:

Fix bugs in eos perturbations

Location:
branches/2015/dev_r5177_CNRS4_stopar/NEMOGCM/NEMO/OPA_SRC
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • branches/2015/dev_r5177_CNRS4_stopar/NEMOGCM/NEMO/OPA_SRC/TRA/eosbn2.F90

    r5296 r5304  
    315315      REAL(wp), DIMENSION(jpi,jpj,jpk     ), INTENT(in   ) ::   pdep   ! depth                      [m] 
    316316      ! 
    317       INTEGER  ::   ji, jj, jk, jsmp, jdof       ! dummy loop indices 
     317      INTEGER  ::   ji, jj, jk, jsmp             ! dummy loop indices 
     318      INTEGER  ::   jdof 
    318319      REAL(wp) ::   zt , zh , zstemp, zs , ztm   ! local scalars 
    319320      REAL(wp) ::   zn , zn0, zn1, zn2, zn3      !   -      - 
     
    345346                     ! (2) for t-dt, s-ds (with the opposite fluctuation) 
    346347                     DO jsmp = 1, nn_sto_eos*2 
     348                        jdof   = (jsmp + 1) / 2 
    347349                        zh     = pdep(ji,jj,jk) * r1_Z0                                  ! depth 
    348                         zt     = pts (ji,jj,jk,jp_tem) * r1_T0  + pts_ran(ji,jj,jk,jp_tem,jdof) * zsign(jsmp)  ! temperature 
    349                         zstemp = pts   (ji,jj,jk,jp_sal) + pts_ran(ji,jj,jk,jp_sal,jdof) * zsign(jsmp) 
     350                        zt     = (pts (ji,jj,jk,jp_tem) + pts_ran(ji,jj,jk,jp_tem,jdof) * zsign(jsmp)) * r1_T0    ! temperature 
     351                        zstemp = pts  (ji,jj,jk,jp_sal) + pts_ran(ji,jj,jk,jp_sal,jdof) * zsign(jsmp) 
    350352                        zs     = SQRT( ABS( zstemp + rdeltaS ) * r1_S0 )   ! square root salinity 
    351353                        ztm    = tmask(ji,jj,jk)                                         ! tmask 
     
    372374                           &   + (((((EOS600*zs+EOS500)*zs+EOS400)*zs+EOS300)*zs+EOS200)*zs+EOS100)*zs+EOS000 
    373375                           ! 
    374                         zn_sto(jsmp)  = ( ( zn3 * zh + zn2 ) * zh + zn1 ) * zh + zn0 
     376                        zn_sto(jsmp)  = ( ( zn3 * zh + zn2 ) * zh + zn1 ) * zh + zn0_sto(jsmp) 
    375377                     END DO 
    376                      ! 
    377378                     ! 
    378379                     ! compute stochastic density as the mean of the (2*nn_sto_eos) densities 
     
    380381                     DO jsmp = 1, nn_sto_eos*2 
    381382                        prhop(ji,jj,jk) = prhop(ji,jj,jk) + zn0_sto(jsmp)                      ! potential density referenced at the surface 
    382                         !  
     383                        ! 
    383384                        prd(ji,jj,jk) = prd(ji,jj,jk) + (  zn_sto(jsmp) * r1_rau0 - 1._wp  )   ! density anomaly (masked) 
    384385                     END DO 
  • branches/2015/dev_r5177_CNRS4_stopar/NEMOGCM/NEMO/OPA_SRC/stopts.F90

    r5296 r5304  
    2020 
    2121   PUBLIC   sto_pts         ! called by step.F90 
    22    PUBLIC   sto_pts_init    ! called by nemogcm.F90  
     22   PUBLIC   sto_pts_init    ! called by nemogcm.F90 
    2323 
    2424   ! Public array with random tracer fluctuations 
     
    3737      !!---------------------------------------------------------------------- 
    3838      !!                  ***  ROUTINE sto_pts  *** 
    39       !!            
     39      !! 
    4040      !! ** Purpose :   Compute current stochastic tracer fluctuations 
    4141      !! 
     
    8484!                          & zdtskp * MAX(sto2d(ji,jj,jsto_eosk),0._wp) + & 
    8585!                          & zdtskm * MIN(sto2d(ji,jj,jsto_eosk),0._wp) 
    86                     zdts   = zdts  * tmask(ji,jj,jk) *SIN( 2._wp * gphit(ji,jj) * rad ) 
     86                    zdts   = zdts  * tmask(ji,jj,jk) *SIN( gphit(ji,jj) * rad ) 
    8787                    pts_ran(ji,jj,jk,jts,jdof) = zdts * 0.5_wp 
    8888                    ! 
     
    133133      !!---------------------------------------------------------------------- 
    134134      !!                  ***  ROUTINE sto_pts_init  *** 
    135       !!            
     135      !! 
    136136      !! ** Purpose :   Initialisation for stochastic tracer fluctuations 
    137137      !! 
Note: See TracChangeset for help on using the changeset viewer.