Changeset 14072 for NEMO/trunk/src/OCE/TRA/traqsr.F90
- Timestamp:
- 2020-12-04T08:48:38+01:00 (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/trunk/src/OCE/TRA/traqsr.F90
r14053 r14072 9 9 !! NEMO 1.0 ! 2002-06 (G. Madec) F90: Free form and module 10 10 !! - ! 2005-11 (G. Madec) zco, zps, sco coordinate 11 !! 3.2 ! 2009-04 (G. Madec & NEMO team) 12 !! 3.6 ! 2012-05 (C. Rousset) store attenuation coef for use in ice model 11 !! 3.2 ! 2009-04 (G. Madec & NEMO team) 12 !! 3.6 ! 2012-05 (C. Rousset) store attenuation coef for use in ice model 13 13 !! 3.6 ! 2015-12 (O. Aumont, J. Jouanno, C. Ethe) use vertical profile of chlorophyll 14 !! 3.7 ! 2015-11 (G. Madec, A. Coward) remove optimisation for fix volume 14 !! 3.7 ! 2015-11 (G. Madec, A. Coward) remove optimisation for fix volume 15 15 !!---------------------------------------------------------------------- 16 16 17 17 !!---------------------------------------------------------------------- 18 !! tra_qsr : temperature trend due to the penetration of solar radiation 19 !! tra_qsr_init : initialization of the qsr penetration 18 !! tra_qsr : temperature trend due to the penetration of solar radiation 19 !! tra_qsr_init : initialization of the qsr penetration 20 20 !!---------------------------------------------------------------------- 21 21 USE oce ! ocean dynamics and active tracers … … 45 45 ! !!* Namelist namtra_qsr: penetrative solar radiation 46 46 LOGICAL , PUBLIC :: ln_traqsr !: light absorption (qsr) flag 47 LOGICAL , PUBLIC :: ln_qsr_rgb !: Red-Green-Blue light absorption flag 47 LOGICAL , PUBLIC :: ln_qsr_rgb !: Red-Green-Blue light absorption flag 48 48 LOGICAL , PUBLIC :: ln_qsr_2bd !: 2 band light absorption flag 49 49 LOGICAL , PUBLIC :: ln_qsr_bio !: bio-model light absorption flag … … 54 54 ! 55 55 INTEGER , PUBLIC :: nksr !: levels below which the light cannot penetrate (depth larger than 391 m) 56 56 57 57 INTEGER, PARAMETER :: np_RGB = 1 ! R-G-B light penetration with constant Chlorophyll 58 58 INTEGER, PARAMETER :: np_RGBc = 2 ! R-G-B light penetration with Chlorophyll data … … 88 88 !! Considering the 2 wavebands case: 89 89 !! I(k) = Qsr*( rn_abs*EXP(z(k)/rn_si0) + (1.-rn_abs)*EXP(z(k)/rn_si1) ) 90 !! The temperature trend associated with the solar radiation penetration 90 !! The temperature trend associated with the solar radiation penetration 91 91 !! is given by : zta = 1/e3t dk[ I ] / (rho0*Cp) 92 92 !! At the bottom, boudary condition for the radiation is no flux : 93 93 !! all heat which has not been absorbed in the above levels is put 94 94 !! in the last ocean level. 95 !! The computation is only done down to the level where 96 !! I(k) < 1.e-15 W/m2 (i.e. over the top nksr levels) . 95 !! The computation is only done down to the level where 96 !! I(k) < 1.e-15 W/m2 (i.e. over the top nksr levels) . 97 97 !! 98 98 !! ** Action : - update ta with the penetrative solar radiation trend … … 193 193 DO_2D( isj, iej, isi, iei ) 194 194 ! zlogc = log(zchl) 195 zlogc = LOG ( MIN( 10. , MAX( 0.03, sf_chl(1)%fnow(ji,jj,1) ) ) ) 195 zlogc = LOG ( MIN( 10. , MAX( 0.03, sf_chl(1)%fnow(ji,jj,1) ) ) ) 196 196 ! zc1 : log(zCze) = log (1.12 * zchl**0.803) 197 zc1 = 0.113328685307 + 0.803 * zlogc 197 zc1 = 0.113328685307 + 0.803 * zlogc 198 198 ! zc2 : log(zCtot) = log(40.6 * zchl**0.459) 199 zc2 = 3.703768066608 + 0.459 * zlogc 199 zc2 = 3.703768066608 + 0.459 * zlogc 200 200 ! zc3 : log(zze) = log(568.2 * zCtot**(-0.746)) 201 zc3 = 6.34247346942 - 0.746 * zc2 201 zc3 = 6.34247346942 - 0.746 * zc2 202 202 ! IF( log(zze) > log(102.) ) log(zze) = log(200.0 * zCtot**(-0.293)) 203 IF( zc3 > 4.62497281328 ) zc3 = 5.298317366548 - 0.293 * zc2 204 ! 203 IF( zc3 > 4.62497281328 ) zc3 = 5.298317366548 - 0.293 * zc2 204 ! 205 205 ze0(ji,jj) = zlogc ! ze0 = log(zchl) 206 206 ze1(ji,jj) = EXP( zc1 ) ! ze1 = zCze … … 208 208 ze3(ji,jj) = EXP( - zc3 ) ! ze3 = 1/zze 209 209 END_2D 210 210 211 211 ! 212 212 DO_3D( isj, iej, isi, iei, 1, nksr + 1 ) … … 230 230 ELSE !* constant chlorophyll 231 231 zchl = 0.05 232 ! NB. make sure constant value is such that: 232 ! NB. make sure constant value is such that: 233 233 zchl = MIN( 10. , MAX( 0.03, zchl ) ) 234 234 ! Convert chlorophyll value to attenuation coefficient look-up table index … … 245 245 ze2(ji,jj) = zcoef * qsr(ji,jj) 246 246 ze3(ji,jj) = zcoef * qsr(ji,jj) 247 ! store the surface SW radiation; re-use the surface ztmp3d array 247 ! store the surface SW radiation; re-use the surface ztmp3d array 248 248 ! since the surface attenuation coefficient is not used 249 249 ztmp3d(ji,jj,1) = qsr(ji,jj) … … 269 269 END_3D 270 270 ! 271 DEALLOCATE( ze0 , ze1 , ze2 , ze3 , ztmp3d ) 271 DEALLOCATE( ze0 , ze1 , ze2 , ze3 , ztmp3d ) 272 272 ! 273 273 CASE( np_2BD ) !== 2-bands fluxes ==! … … 278 278 zc0 = zz0 * EXP( -gdepw(ji,jj,jk ,Kmm)*xsi0r ) + zz1 * EXP( -gdepw(ji,jj,jk ,Kmm)*xsi1r ) 279 279 zc1 = zz0 * EXP( -gdepw(ji,jj,jk+1,Kmm)*xsi0r ) + zz1 * EXP( -gdepw(ji,jj,jk+1,Kmm)*xsi1r ) 280 qsr_hc(ji,jj,jk) = qsr(ji,jj) * ( zc0 * wmask(ji,jj,jk) - zc1 * wmask(ji,jj,jk+1) ) 280 qsr_hc(ji,jj,jk) = qsr(ji,jj) * ( zc0 * wmask(ji,jj,jk) - zc1 * wmask(ji,jj,jk+1) ) 281 281 END_3D 282 282 ! … … 341 341 !! from two length scale of penetration (rn_si0,rn_si1) and a ratio 342 342 !! (rn_abs). These parameters are read in the namtra_qsr namelist. The 343 !! default values correspond to clear water (type I in Jerlov' 343 !! default values correspond to clear water (type I in Jerlov' 344 344 !! (1968) classification. 345 345 !! called by tra_qsr at the first timestep (nit000) … … 391 391 & ' 2 bands, 3 RGB bands or bio-model light penetration' ) 392 392 ! 393 IF( ln_qsr_rgb .AND. nn_chldta == 0 ) nqsr = np_RGB 393 IF( ln_qsr_rgb .AND. nn_chldta == 0 ) nqsr = np_RGB 394 394 IF( ln_qsr_rgb .AND. nn_chldta == 1 ) nqsr = np_RGBc 395 395 IF( ln_qsr_2bd ) nqsr = np_2BD … … 401 401 ! 402 402 SELECT CASE( nqsr ) 403 ! 403 ! 404 404 CASE( np_RGB , np_RGBc ) !== Red-Green-Blue light penetration ==! 405 ! 405 ! 406 406 IF(lwp) WRITE(numout,*) ' ==>>> R-G-B light penetration ' 407 407 ! 408 408 CALL trc_oce_rgb( rkrgb ) ! tabulated attenuation coef. 409 ! 409 ! 410 410 nksr = trc_oce_ext_lev( r_si2, 33._wp ) ! level of light extinction 411 411 ! … … 441 441 ! 442 442 CALL trc_oce_rgb( rkrgb ) ! tabulated attenuation coef. 443 ! 443 ! 444 444 nksr = trc_oce_ext_lev( r_si2, 33._wp ) ! level of light extinction 445 445 !
Note: See TracChangeset
for help on using the changeset viewer.