| 75 | [tf.textarea:implementation -id=piform -class=taform 'Modifications in namelist namsbc:\nln_wave: Acticvates coupling with waves\nln_cdgw: Neutral drag coefficient read from wave model\nln_sdw: Computation of 3D stokes drift\nln_tauoc: Activates ocean stress modified by external wave induced stress\nln_stcor: Activates Stokes Coriolis term\n\nModifications in namelist namzdf:\nln_zdfqiao: Activates enhanced wave vertical mixing Qiao (2010)\n\nModifications in nabsbc_wave ! External fields from wave model\nsn_cdg\nsn_usd\nsn_vsd\nsn_swh\nsn_wmp\nsn_wnum\nsn_tauoc\n\nFlow chart of the changes in the code:\n1) Main differences are in sbcwave.F90:\n* Reads all the wave parameters needed for the coupling from an external wave model (Zonal and Meridional Surface Stokes Drift, Mean Wavenumeber, Significant Wave Height, Mean Wave Period, Neutral Drag Coefficient, Normalized stress into the ocean)\n* Computes the 3D and Vertical components of the Stokes Drift according to Breivik et al., 2014 (upgrade with respect to monochromatic approximation)\n\n2) sshwzv.F90 : Modification of the Surface vertical velocity accounting for the Stokes Drift\n\nIF ( ln_wave .AND. ln_sdw ) THEN\n! Compute d(ssh)/dx and d(ssh)/dy\n! Compute the surface vertical velocity accounting for the Stokes Drift\n!---------------------------------\nDO jj = 2 , jpjm1\nDO ji = 2 , jpim1\ndsshnu = ( ssha(ji+1,jj) - ssha(ji,jj) ) / e1u(ji,jj)\ndsshnv = ( ssha(ji,jj+1) - ssha(ji,jj) ) / e2v(ji,jj)\nwn(ji,jj,1) = wn(ji,jj,1) +( usd3dt(ji,jj,1) * dsshnu &\n& + vsd3dt(ji,jj,1) * dsshnv &\n& - ( wsd3d (ji,jj,1) )) * tmask(ji,jj,1)\nENDDO\nENDDO\nENDIF\n\n3) traadv.F90 : Modification of the tracer advection due to the Stokes Drift\nIF (ln_wave .AND. ln_sdw) THEN\nDO jk = 1, jpkm1\nzun(:,:,jk) = e2u(:,:) * fse3u(:,:,jk) * &\n& ( un(:,:,jk) + usd3d(:,:,jk) ) !eulerian transport + Stokes Drift\nzvn(:,:,jk) = e1v(:,:) * fse3v(:,:,jk) * &\n& ( vn(:,:,jk) + vsd3d(:,:,jk) )\nzwn(:,:,jk) = e1e2t(:,:) * &\n& ( wn(:,:,jk) + wsd3d(:,:,jk) )\nEND DO\nELSE (no changes in wn wn)\n\n4) sbcmod.F90 : Surface boundary condition for the momentum\nIF (ln_wave .AND. ln_tauoc) THEN\nutau(:,:) = utau(:,:)*tauoc_wave(:,:)\nvtau(:,:) = vtau(:,:)*tauoc_wave(:,:)\ntaum(:,:) = taum(:,:)*tauoc_wave(:,:)\nENDIF\n\n5) dynstcor.F90 : Add Stokes-Coriolis forcing to horizontal momentum equation\nDO jk = 1, jpkm1\nDO jj = 2, jpjm1\nDO ji = 2, jpim1\nzy1 = ff(ji ,jj-1) * ( vsd3d(ji ,jj-1,jk) + vsd3d(ji+1,jj-1,jk) )\nzy2 = ff(ji ,jj ) * ( vsd3d(ji ,jj ,jk) + vsd3d(ji+1,jj ,jk) )\nzx1 = ff(ji-1,jj ) * ( usd3d(ji-1,jj ,jk) + usd3d(ji-1,jj+1,jk) )\nzx2 = ff(ji ,jj ) * ( usd3d(ji ,jj ,jk) + usd3d(ji ,jj+1,jk) )\nua(ji,jj,jk) = ua(ji,jj,jk) + 0.25 * ( zy1 + zy2 ) *umask(ji,jj,jk)\nva(ji,jj,jk) = va(ji,jj,jk) - 0.25 * ( zx1 + zx2 ) *vmask(ji,jj,jk)\nENDDO\nENDDO\nENDDO\n\n6) zdfqiao.F90 (new) : compute QBv = Qiao terms to be added to vertical eddy diffusivity and viscosity coefficients\nDO jk = 1, jpk\nDO jj = 1, jpjm1\nDO ji = 1, jpim1\nQBv(ji,jj,jk) = 1.0 * 0.353553 * swh(ji,jj) * tsd2d(ji,jj) * &\n& exp(3.0 * wnum(ji,jj) * &\n& (-MIN( fsdept(ji ,jj ,jk) , fsdept(ji+1,jj ,jk), &\n& fsdept(ji ,jj+1,jk) , fsdept(ji+1,jj+1,jk))))\nEND DO\nEND DO\nEND DO\n\n7) step.F90 : added calls to dyn_stcor and zdf_qiao' 0 20] |