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 6827 for branches/2016/dev_r6409_SIMPLIF_2_usrdef_tools/NEMOGCM/NEMO/OPA_SRC/TRA/eosbn2.F90 – NEMO

Ignore:
Timestamp:
2016-08-01T15:37:15+02:00 (8 years ago)
Author:
flavoni
Message:

#1692 - branch SIMPLIF_2_usrdef: commit routines Fortran to create domain_cfg.nc file, to have domain (input) files for new simplification branch. To be moved in TOOLS directory

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2016/dev_r6409_SIMPLIF_2_usrdef_tools/NEMOGCM/NEMO/OPA_SRC/TRA/eosbn2.F90

    r6505 r6827  
    3939   USE dom_oce        ! ocean space and time domain 
    4040   USE phycst         ! physical constants 
    41    USE stopar         ! Stochastic T/S fluctuations 
    42    USE stopts         ! Stochastic T/S fluctuations 
    4341   ! 
    4442   USE in_out_manager ! I/O manager 
     
    335333      CASE( np_teos10, np_eos80 )                !==  polynomial TEOS-10 / EOS-80 ==! 
    336334         ! 
    337          ! Stochastic equation of state 
    338          IF ( ln_sto_eos ) THEN 
    339             ALLOCATE(zn0_sto(1:2*nn_sto_eos)) 
    340             ALLOCATE(zn_sto(1:2*nn_sto_eos)) 
    341             ALLOCATE(zsign(1:2*nn_sto_eos)) 
    342             DO jsmp = 1, 2*nn_sto_eos, 2 
    343               zsign(jsmp)   = 1._wp 
    344               zsign(jsmp+1) = -1._wp 
    345             END DO 
    346             ! 
    347             DO jk = 1, jpkm1 
    348                DO jj = 1, jpj 
    349                   DO ji = 1, jpi 
    350                      ! 
    351                      ! compute density (2*nn_sto_eos) times: 
    352                      ! (1) for t+dt, s+ds (with the random TS fluctutation computed in sto_pts) 
    353                      ! (2) for t-dt, s-ds (with the opposite fluctuation) 
    354                      DO jsmp = 1, nn_sto_eos*2 
    355                         jdof   = (jsmp + 1) / 2 
    356                         zh     = pdep(ji,jj,jk) * r1_Z0                                  ! depth 
    357                         zt     = (pts (ji,jj,jk,jp_tem) + pts_ran(ji,jj,jk,jp_tem,jdof) * zsign(jsmp)) * r1_T0    ! temperature 
    358                         zstemp = pts  (ji,jj,jk,jp_sal) + pts_ran(ji,jj,jk,jp_sal,jdof) * zsign(jsmp) 
    359                         zs     = SQRT( ABS( zstemp + rdeltaS ) * r1_S0 )   ! square root salinity 
    360                         ztm    = tmask(ji,jj,jk)                                         ! tmask 
    361                         ! 
    362                         zn3 = EOS013*zt   & 
    363                            &   + EOS103*zs+EOS003 
    364                            ! 
    365                         zn2 = (EOS022*zt   & 
    366                            &   + EOS112*zs+EOS012)*zt   & 
    367                            &   + (EOS202*zs+EOS102)*zs+EOS002 
    368                            ! 
    369                         zn1 = (((EOS041*zt   & 
    370                            &   + EOS131*zs+EOS031)*zt   & 
    371                            &   + (EOS221*zs+EOS121)*zs+EOS021)*zt   & 
    372                            &   + ((EOS311*zs+EOS211)*zs+EOS111)*zs+EOS011)*zt   & 
    373                            &   + (((EOS401*zs+EOS301)*zs+EOS201)*zs+EOS101)*zs+EOS001 
    374                            ! 
    375                         zn0_sto(jsmp) = (((((EOS060*zt   & 
    376                            &   + EOS150*zs+EOS050)*zt   & 
    377                            &   + (EOS240*zs+EOS140)*zs+EOS040)*zt   & 
    378                            &   + ((EOS330*zs+EOS230)*zs+EOS130)*zs+EOS030)*zt   & 
    379                            &   + (((EOS420*zs+EOS320)*zs+EOS220)*zs+EOS120)*zs+EOS020)*zt   & 
    380                            &   + ((((EOS510*zs+EOS410)*zs+EOS310)*zs+EOS210)*zs+EOS110)*zs+EOS010)*zt   & 
    381                            &   + (((((EOS600*zs+EOS500)*zs+EOS400)*zs+EOS300)*zs+EOS200)*zs+EOS100)*zs+EOS000 
    382                            ! 
    383                         zn_sto(jsmp)  = ( ( zn3 * zh + zn2 ) * zh + zn1 ) * zh + zn0_sto(jsmp) 
    384                      END DO 
    385                      ! 
    386                      ! compute stochastic density as the mean of the (2*nn_sto_eos) densities 
    387                      prhop(ji,jj,jk) = 0._wp ; prd(ji,jj,jk) = 0._wp 
    388                      DO jsmp = 1, nn_sto_eos*2 
    389                         prhop(ji,jj,jk) = prhop(ji,jj,jk) + zn0_sto(jsmp)                      ! potential density referenced at the surface 
    390                         ! 
    391                         prd(ji,jj,jk) = prd(ji,jj,jk) + (  zn_sto(jsmp) * r1_rau0 - 1._wp  )   ! density anomaly (masked) 
    392                      END DO 
    393                      prhop(ji,jj,jk) = 0.5_wp * prhop(ji,jj,jk) * ztm / nn_sto_eos 
    394                      prd  (ji,jj,jk) = 0.5_wp * prd  (ji,jj,jk) * ztm / nn_sto_eos 
    395                   END DO 
    396                END DO 
    397             END DO 
    398             DEALLOCATE(zn0_sto,zn_sto,zsign) 
    399          ! Non-stochastic equation of state 
    400          ELSE 
    401335            DO jk = 1, jpkm1 
    402336               DO jj = 1, jpj 
     
    437371               END DO 
    438372            END DO 
    439          ENDIF 
    440373          
    441374      CASE( np_seos )                !==  simplified EOS  ==! 
Note: See TracChangeset for help on using the changeset viewer.