Changeset 12489 for NEMO/trunk/src/OCE/ISF
- Timestamp:
- 2020-02-28T16:55:11+01:00 (4 years ago)
- Location:
- NEMO/trunk/src/OCE/ISF
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/trunk/src/OCE/ISF/isfcav.F90
r12343 r12489 24 24 USE oce , ONLY: ts ! ocean tracers 25 25 USE par_oce , ONLY: jpi,jpj ! ocean space and time domain 26 USE phycst , ONLY: grav,r au0,rau0_rcp,r1_rau0_rcp ! physical constants26 USE phycst , ONLY: grav,rho0,rho0_rcp,r1_rho0_rcp ! physical constants 27 27 USE eosbn2 , ONLY: ln_teos10 ! use ln_teos10 or not 28 28 ! … … 85 85 ! 86 86 ! initialisation 87 IF (TRIM(cn_gammablk) == 'vel_stab' ) zqoce_b (:,:) = ptsc(:,:,jp_tem) * r au0_rcp ! last time step total heat fluxes (to speed up convergence)87 IF (TRIM(cn_gammablk) == 'vel_stab' ) zqoce_b (:,:) = ptsc(:,:,jp_tem) * rho0_rcp ! last time step total heat fluxes (to speed up convergence) 88 88 ! 89 89 ! compute ice shelf melting … … 142 142 ! 143 143 ! set temperature content 144 ptsc(:,:,jp_tem) = - zqh(:,:) * r1_r au0_rcp144 ptsc(:,:,jp_tem) = - zqh(:,:) * r1_rho0_rcp 145 145 ! 146 146 ! write restart variables (qoceisf, qhcisf, fwfisf for now and before) … … 215 215 risf_lamb1 =-0.0564_wp 216 216 risf_lamb2 = 0.0773_wp 217 risf_lamb3 =-7.8633e-8 * grav * r au0217 risf_lamb3 =-7.8633e-8 * grav * rho0 218 218 ELSE ! linearisation from table 4 (Asay-Davis et al., 2015) 219 219 risf_lamb1 =-0.0573_wp 220 220 risf_lamb2 = 0.0832_wp 221 risf_lamb3 =-7.5300e-8 * grav * r au0221 risf_lamb3 =-7.5300e-8 * grav * rho0 222 222 ENDIF 223 223 -
NEMO/trunk/src/OCE/ISF/isfcavmlt.F90
r12340 r12489 17 17 18 18 USE dom_oce ! ocean space and time domain 19 USE phycst , ONLY: rcp, r au0, rau0_rcp ! physical constants19 USE phycst , ONLY: rcp, rho0, rho0_rcp ! physical constants 20 20 USE eosbn2 , ONLY: eos_fzp ! equation of state 21 21 … … 161 161 ! 162 162 ! compute ocean-ice heat flux and then derive fwf assuming that ocean heat flux equal latent heat 163 pqfwf(:,:) = - pgt(:,:) * r au0_rcp * zthd(:,:) / rLfusisf ! fresh water flux ( > 0 out )163 pqfwf(:,:) = - pgt(:,:) * rho0_rcp * zthd(:,:) / rLfusisf ! fresh water flux ( > 0 out ) 164 164 pqoce(:,:) = - pqfwf(:,:) * rLfusisf ! ocea-ice flux ( > 0 out ) 165 165 pqhc (:,:) = pqfwf(:,:) * ztfrz(:,:) * rcp ! heat content flux ( > 0 out ) … … 213 213 ! 214 214 ! compute coeficient to solve the 2nd order equation 215 zeps1 = r au0_rcp * pgt(ji,jj)216 zeps2 = rLfusisf * r au0 * pgs(ji,jj)215 zeps1 = rho0_rcp * pgt(ji,jj) 216 zeps2 = rLfusisf * rho0 * pgs(ji,jj) 217 217 zeps3 = rhoisf * rcpisf * rkappa / MAX(risfdep(ji,jj),zeps) 218 218 zeps4 = risf_lamb2 + risf_lamb3 * risfdep(ji,jj) … … 238 238 ! 239 239 ! compute the upward water and heat flux (eq. 24 and eq. 26) 240 pqfwf(ji,jj) = r au0 * pgs(ji,jj) * ( zsfrz - pstbl(ji,jj) ) / MAX(zsfrz,zeps) ! fresh water flux (> 0 out)241 pqoce(ji,jj) = r au0_rcp * pgt(ji,jj) * zthd (ji,jj) ! ocean-ice heat flux (> 0 out)240 pqfwf(ji,jj) = rho0 * pgs(ji,jj) * ( zsfrz - pstbl(ji,jj) ) / MAX(zsfrz,zeps) ! fresh water flux (> 0 out) 241 pqoce(ji,jj) = rho0_rcp * pgt(ji,jj) * zthd (ji,jj) ! ocean-ice heat flux (> 0 out) 242 242 pqhc (ji,jj) = rcp * pqfwf(ji,jj) * ztfrz(ji,jj) ! heat content flux (> 0 out) 243 243 ! -
NEMO/trunk/src/OCE/ISF/isfcpl.F90
r12353 r12489 68 68 ! 69 69 ! start on an euler time step 70 neuler = 070 l_1st_euler = .TRUE. 71 71 ! 72 72 ! allocation and initialisation to 0 … … 502 502 ! compute run length 503 503 nstp_iscpl = nitend - nit000 + 1 504 rdt_iscpl = nstp_iscpl * rn_ rdt504 rdt_iscpl = nstp_iscpl * rn_Dt 505 505 z1_rdtiscpl = 1._wp / rdt_iscpl 506 506 -
NEMO/trunk/src/OCE/ISF/isfdynatf.F90
r12372 r12489 13 13 USE isf_oce 14 14 15 USE phycst , ONLY: r1_r au0 ! physical constant15 USE phycst , ONLY: r1_rho0 ! physical constant 16 16 USE dom_oce, ONLY: tmask, ssmask, ht, e3t, r1_e1e2t ! time and space domain 17 17 … … 39 39 REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(inout) :: pe3t_f ! time filtered scale factor to be corrected 40 40 ! 41 REAL(wp) , INTENT(in ) :: pcoef ! atfp * rdt * r1_rau041 REAL(wp) , INTENT(in ) :: pcoef ! rn_atfp * rn_Dt * r1_rho0 42 42 !!-------------------------------------------------------------------- 43 43 INTEGER :: jk ! loop index … … 70 70 REAL(wp), DIMENSION(jpi,jpj) , INTENT(in ) :: pfrac, phtbl ! fraction of bottom cell included in tbl, tbl thickness 71 71 REAL(wp), DIMENSION(jpi,jpj) , INTENT(in ) :: pfwf , pfwf_b ! now/before fwf 72 REAL(wp), INTENT(in ) :: pcoef ! atfp * rdt * r1_rau072 REAL(wp), INTENT(in ) :: pcoef ! rn_atfp * rn_Dt * r1_rho0 73 73 !!---------------------------------------------------------------------- 74 74 INTEGER :: ji,jj,jk … … 77 77 ! 78 78 ! compute fwf conservation correction 79 zfwfinc(:,:) = pcoef * ( pfwf_b(:,:) - pfwf(:,:) ) / ( ht(:,:) + 1._wp - ssmask(:,:) ) * r1_r au079 zfwfinc(:,:) = pcoef * ( pfwf_b(:,:) - pfwf(:,:) ) / ( ht(:,:) + 1._wp - ssmask(:,:) ) * r1_rho0 80 80 ! 81 81 ! add the increment -
NEMO/trunk/src/OCE/ISF/isfhdiv.F90
r12340 r12489 16 16 17 17 USE dom_oce ! time and space domain 18 USE phycst , ONLY: r1_r au0 ! physical constant18 USE phycst , ONLY: r1_rho0 ! physical constant 19 19 USE in_out_manager ! 20 20 … … 96 96 ! 97 97 ! compute integrated divergence correction 98 zhdiv(:,:) = 0.5_wp * ( pfwf(:,:) + pfwf_b(:,:) ) * r1_r au0 / phtbl(:,:)98 zhdiv(:,:) = 0.5_wp * ( pfwf(:,:) + pfwf_b(:,:) ) * r1_rho0 / phtbl(:,:) 99 99 ! 100 100 ! update divergence at each level affected by ice shelf top boundary layer -
NEMO/trunk/src/OCE/ISF/isfpar.F90
r12077 r12489 24 24 USE dom_oce , ONLY: bathy ! ocean space and time domain 25 25 USE par_oce , ONLY: jpi,jpj ! ocean space and time domain 26 USE phycst , ONLY: r1_r au0_rcp ! physical constants26 USE phycst , ONLY: r1_rho0_rcp ! physical constants 27 27 ! 28 28 USE in_out_manager ! I/O manager … … 88 88 ! 89 89 ! set temperature content 90 ptsc(:,:,jp_tem) = zqh(:,:) * r1_r au0_rcp90 ptsc(:,:,jp_tem) = zqh(:,:) * r1_rho0_rcp 91 91 ! 92 92 ! write restart variables (qoceisf, qhcisf, fwfisf for now and before) -
NEMO/trunk/src/OCE/ISF/isfparmlt.F90
r12077 r12489 13 13 USE dom_oce ! ocean space and time domain 14 14 USE oce , ONLY: ts ! ocean dynamics and tracers 15 USE phycst , ONLY: rcp, r au0 ! physical constants15 USE phycst , ONLY: rcp, rho0 ! physical constants 16 16 USE eosbn2 , ONLY: eos_fzp ! equation of state 17 17 … … 148 148 ! 149 149 ! 2. ------------Net heat flux and fresh water flux due to the ice shelf 150 pqoce(:,:) = r au0 * rcp * rn_gammat0 * risfLeff(:,:) * e1t(:,:) * ( ztavg(:,:) - ztfrz(:,:) ) * r1_e1e2t(:,:)150 pqoce(:,:) = rho0 * rcp * rn_gammat0 * risfLeff(:,:) * e1t(:,:) * ( ztavg(:,:) - ztfrz(:,:) ) * r1_e1e2t(:,:) 151 151 pqfwf(:,:) = - pqoce(:,:) / rLfusisf ! derived from the latent heat flux 152 152 pqhc (:,:) = pqfwf(:,:) * ztfrz(:,:) * rcp ! heat content flux
Note: See TracChangeset
for help on using the changeset viewer.