- Timestamp:
- 2021-12-03T20:32:50+01:00 (3 years ago)
- Location:
- NEMO/branches/2021/dev_r14318_RK3_stage1
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/branches/2021/dev_r14318_RK3_stage1
- Property svn:externals
-
old new 9 9 10 10 # SETTE 11 ^/utils/CI/sette@14244 sette 11 ^/utils/CI/sette@HEAD sette 12
-
- Property svn:externals
-
NEMO/branches/2021/dev_r14318_RK3_stage1/src/OCE/ISF/isfcavmlt.F90
r13472 r15574 9 9 10 10 !!---------------------------------------------------------------------- 11 !! isfcav_mlt : compute or read ice shelf fwf/heat fluxes in the ice shelf cavity 11 !! isfcav_mlt : compute or read ice shelf fwf/heat fluxes from isf 12 !! to oce 12 13 !!---------------------------------------------------------------------- 13 14 … … 79 80 ! 80 81 IF (ln_isfdebug) THEN 82 IF(lwp) WRITE(numout,*) '' 81 83 CALL debug( 'isfcav_mlt qhc :', pqhc (:,:) ) 82 84 CALL debug( 'isfcav_mlt qoce :', pqoce(:,:) ) 83 85 CALL debug( 'isfcav_mlt qfwf :', pqfwf(:,:) ) 86 IF(lwp) WRITE(numout,*) '' 84 87 END IF 85 88 ! … … 112 115 CALL eos_fzp( pstbl(:,:), ztfrz(:,:), risfdep(:,:) ) 113 116 ! 114 ! read input file 117 ! read input file of fwf (from isf to oce; ie melt) 115 118 CALL fld_read ( kt, 1, sf_isfcav_fwf ) 116 119 ! 117 120 ! define fwf and qoce 118 121 ! ocean heat flux is assume to be equal to the latent heat 119 pqfwf(:,:) = - sf_isfcav_fwf(1)%fnow(:,:,1) ! fwf ( >0 out)120 pqoce(:,:) = - pqfwf(:,:) * rLfusisf ! ocean heat flux ( > 0 out)121 pqhc (:,:) = pqfwf(:,:) * ztfrz(:,:) * rcp ! heat content flux ( > 0 out)122 pqfwf(:,:) = sf_isfcav_fwf(1)%fnow(:,:,1) ! fwf ( > 0 from isf to oce) 123 pqoce(:,:) = - pqfwf(:,:) * rLfusisf ! ocean heat flux ( > 0 from isf to oce) 124 pqhc (:,:) = pqfwf(:,:) * ztfrz(:,:) * rcp ! heat content flux ( > 0 from isf to oce) 122 125 ! 123 126 ! output freezing point at the interface 124 CALL iom_put('isftfrz_cav', ztfrz )127 CALL iom_put('isftfrz_cav', ztfrz(:,:) * mskisf_cav(:,:) ) 125 128 ! 126 129 END SUBROUTINE isfcav_mlt_spe … … 161 164 ! 162 165 ! compute ocean-ice heat flux and then derive fwf assuming that ocean heat flux equal latent heat 163 pqfwf(:,:) = - pgt(:,:) * rho0_rcp * zthd(:,:) / rLfusisf ! fresh water flux ( > 0 out)164 pqoce(:,:) = - pqfwf(:,:) * rLfusisf ! ocea-ice flux ( > 0 out)165 pqhc (:,:) = pqfwf(:,:) * ztfrz(:,:) * rcp ! heat content flux ( > 0 out)166 pqfwf(:,:) = pgt(:,:) * rho0_rcp * zthd(:,:) / rLfusisf ! fresh water flux ( > 0 from isf to oce) 167 pqoce(:,:) = - pqfwf(:,:) * rLfusisf ! ocea-ice flux ( > 0 from isf to oce) 168 pqhc (:,:) = pqfwf(:,:) * ztfrz(:,:) * rcp ! heat content flux ( > 0 from isf to oce) 166 169 ! 167 170 ! output thermal driving and freezinpoint at the ice shelf interface 168 171 CALL iom_put('isfthermald_cav', zthd ) 169 CALL iom_put('isftfrz_cav' , ztfrz )172 CALL iom_put('isftfrz_cav' , ztfrz(:,:) * mskisf_cav(:,:) ) 170 173 ! 171 174 END SUBROUTINE isfcav_mlt_2eq … … 210 213 ! compute upward heat flux zhtflx and upward water flux zwflx 211 214 ! Resolution of a 3d equation from equation 24, 25 and 26 (note conduction through the ice has been added to Eq 24) 212 DO_2D( 1, 1, 1, 1)215 DO_2D( nn_hls, nn_hls, nn_hls, nn_hls ) 213 216 ! 214 217 ! compute coeficient to solve the 2nd order equation … … 238 241 ! 239 242 ! compute the upward water and heat flux (eq. 24 and eq. 26) 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 pqhc (ji,jj) = rcp * pqfwf(ji,jj) * ztfrz(ji,jj) ! heat content flux (> 0 out)243 pqfwf(ji,jj) = - rho0 * pgs(ji,jj) * ( zsfrz - pstbl(ji,jj) ) / MAX(zsfrz,zeps) ! fresh water flux ( > 0 from isf to oce) 244 pqoce(ji,jj) = - rho0_rcp * pgt(ji,jj) * zthd (ji,jj) ! ocean-ice heat flux ( > 0 from isf to oce) 245 pqhc (ji,jj) = rcp * pqfwf(ji,jj) * ztfrz(ji,jj) ! heat content flux ( > 0 from isf to oce) 243 246 ! 244 247 zqcon(ji,jj) = zeps3 * ( ztfrz(ji,jj) - rtsurf ) … … 281 284 CALL eos_fzp( pstbl(:,:), ztfrz(:,:), risfdep(:,:) ) 282 285 ! 283 ! read input file 286 ! read input file of fwf from isf to oce 284 287 CALL fld_read ( kt, 1, sf_isfcav_fwf ) 285 288 ! 286 289 ! ice shelf 2d map 287 zfwf(:,:) = -sf_isfcav_fwf(1)%fnow(:,:,1)290 zfwf(:,:) = sf_isfcav_fwf(1)%fnow(:,:,1) 288 291 ! 289 292 ! compute glob sum from input file … … 300 303 ! define fwf and qoce 301 304 ! ocean heat flux is assume to be equal to the latent heat 302 pqfwf(:,:) = zfwf(:,:) ! fwf ( > 0 out)303 pqoce(:,:) = - pqfwf(:,:) * rLfusisf ! ocean heat flux ( > 0 out)304 pqhc (:,:) = pqfwf(:,:) * ztfrz(:,:) * rcp ! heat content flux ( > 0 out)305 pqfwf(:,:) = zfwf(:,:) ! fwf ( > 0 from isf to oce) 306 pqoce(:,:) = - pqfwf(:,:) * rLfusisf ! ocean heat flux ( > 0 from isf to oce) 307 pqhc (:,:) = pqfwf(:,:) * ztfrz(:,:) * rcp ! heat content flux ( > 0 from isf to oce) 305 308 ! 306 309 CALL iom_put('isftfrz_cav', ztfrz * mskisf_cav(:,:) )
Note: See TracChangeset
for help on using the changeset viewer.