- Timestamp:
- 2016-08-01T15:37:15+02:00 (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2016/dev_r6409_SIMPLIF_2_usrdef_tools/NEMOGCM/NEMO/OPA_SRC/TRA/eosbn2.F90
r6505 r6827 39 39 USE dom_oce ! ocean space and time domain 40 40 USE phycst ! physical constants 41 USE stopar ! Stochastic T/S fluctuations42 USE stopts ! Stochastic T/S fluctuations43 41 ! 44 42 USE in_out_manager ! I/O manager … … 335 333 CASE( np_teos10, np_eos80 ) !== polynomial TEOS-10 / EOS-80 ==! 336 334 ! 337 ! Stochastic equation of state338 IF ( ln_sto_eos ) THEN339 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, 2343 zsign(jsmp) = 1._wp344 zsign(jsmp+1) = -1._wp345 END DO346 !347 DO jk = 1, jpkm1348 DO jj = 1, jpj349 DO ji = 1, jpi350 !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*2355 jdof = (jsmp + 1) / 2356 zh = pdep(ji,jj,jk) * r1_Z0 ! depth357 zt = (pts (ji,jj,jk,jp_tem) + pts_ran(ji,jj,jk,jp_tem,jdof) * zsign(jsmp)) * r1_T0 ! temperature358 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 salinity360 ztm = tmask(ji,jj,jk) ! tmask361 !362 zn3 = EOS013*zt &363 & + EOS103*zs+EOS003364 !365 zn2 = (EOS022*zt &366 & + EOS112*zs+EOS012)*zt &367 & + (EOS202*zs+EOS102)*zs+EOS002368 !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+EOS001374 !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+EOS000382 !383 zn_sto(jsmp) = ( ( zn3 * zh + zn2 ) * zh + zn1 ) * zh + zn0_sto(jsmp)384 END DO385 !386 ! compute stochastic density as the mean of the (2*nn_sto_eos) densities387 prhop(ji,jj,jk) = 0._wp ; prd(ji,jj,jk) = 0._wp388 DO jsmp = 1, nn_sto_eos*2389 prhop(ji,jj,jk) = prhop(ji,jj,jk) + zn0_sto(jsmp) ! potential density referenced at the surface390 !391 prd(ji,jj,jk) = prd(ji,jj,jk) + ( zn_sto(jsmp) * r1_rau0 - 1._wp ) ! density anomaly (masked)392 END DO393 prhop(ji,jj,jk) = 0.5_wp * prhop(ji,jj,jk) * ztm / nn_sto_eos394 prd (ji,jj,jk) = 0.5_wp * prd (ji,jj,jk) * ztm / nn_sto_eos395 END DO396 END DO397 END DO398 DEALLOCATE(zn0_sto,zn_sto,zsign)399 ! Non-stochastic equation of state400 ELSE401 335 DO jk = 1, jpkm1 402 336 DO jj = 1, jpj … … 437 371 END DO 438 372 END DO 439 ENDIF440 373 441 374 CASE( np_seos ) !== simplified EOS ==!
Note: See TracChangeset
for help on using the changeset viewer.