Changeset 15457 for NEMO/trunk/src
- Timestamp:
- 2021-10-28T15:12:49+02:00 (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
NEMO/trunk/src/TOP/trcopt.F90
r15090 r15457 23 23 24 24 LOGICAL :: ln_varpar ! boolean for variable PAR fraction 25 REAL(wp) :: parlux ! Fraction of shortwave as PAR25 REAL(wp), PUBLIC :: parlux ! Fraction of shortwave as PAR 26 26 CHARACTER (len=25) :: light_loc ! Light location in the water cell ('center', 'integral') 27 27 … … 30 30 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:) :: par_varsw ! PAR fraction of shortwave 31 31 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: ekb, ekg, ekr ! wavelength (Red-Green-Blue) 32 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:) :: xeps ! weighted diffusion coefficient32 REAL(wp), ALLOCATABLE, SAVE, DIMENSION(:,:,:), PUBLIC :: zeps ! weighted diffusion coefficient 33 33 34 34 INTEGER :: nksrp ! levels below which the light cannot penetrate ( depth larger than 391 m) … … 59 59 INTEGER, INTENT(in) :: Kbb, Kmm ! time level indices 60 60 REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(in) :: zchl ! chlorophyll field 61 REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(out) ,OPTIONAL:: ze1, ze2, ze3 ! PAR for individual wavelength61 REAL(wp), DIMENSION(jpi,jpj,jpk), INTENT(out) :: ze1, ze2, ze3 ! PAR for individual wavelength 62 62 ! 63 63 INTEGER :: ji, jj, jk, irgb … … 149 149 DO_3D( nn_hls, nn_hls, nn_hls, nn_hls, 1, jpkm1 ) 150 150 ztmp = ze1(ji,jj,jk)* ekb(ji,jj,jk) + ze2(ji,jj,jk) * ekg(ji,jj,jk) + ze3(ji,jj,jk) * ekr(ji,jj,jk) 151 xeps(ji,jj,jk) = ztmp / e3t(ji,jj,jk,Kmm) / (etot(ji,jj,jk) + rtrn)151 zeps(ji,jj,jk) = ztmp / e3t(ji,jj,jk,Kmm) / (etot(ji,jj,jk) + rtrn) 152 152 END_3D 153 ! xeps = (ze1(:,:,:) * ekb(:,:,:) + ze2(:,:,:) * ekg(:,:,:) + ze3(:,:,:) * ekr(:,:,:)) / e3t(:,:,:,Kmm) / (etot(:,:,:) + rtrn)153 !zeps = (ze1(:,:,:) * ekb(:,:,:) + ze2(:,:,:) * ekg(:,:,:) + ze3(:,:,:) * ekr(:,:,:)) / e3t(:,:,:,Kmm) / (etot(:,:,:) + rtrn) 154 154 155 155 ! Light at the euphotic depth … … 182 182 ! 183 183 IF( lk_iomput ) THEN 184 CALL iom_put( "x eps" , xeps(:,:,:) * tmask(:,:,:) )184 CALL iom_put( "xbla" , zeps(:,:,:) * tmask(:,:,:) ) 185 185 CALL iom_put( "Heup" , heup(:,: ) * tmask(:,:,1) ) 186 186 ENDIF … … 263 263 IF( ln_timing ) CALL timing_start('trc_opt_sbc') 264 264 ! 265 ! Compute par_varsw at nit 000 or only if there is more than 1 time record in par coefficient file265 ! Compute par_varsw at nittrc000 or only if there is more than 1 time record in par coefficient file 266 266 IF( ln_varpar ) THEN 267 IF( kt == nit 000 .OR. ( kt /= nit000 .AND. ntimes_par > 1 ) ) THEN267 IF( kt == nittrc000 .OR. ( kt /= nittrc000 .AND. ntimes_par > 1 ) ) THEN 268 268 CALL fld_read( kt, 1, sf_par ) 269 269 par_varsw(:,:) = ( sf_par(1)%fnow(:,:,1) ) / 3.0 … … 350 350 ! 351 351 ALLOCATE( ekb(jpi,jpj,jpk), ekr(jpi,jpj,jpk), & 352 ekg(jpi,jpj,jpk), xeps(jpi,jpj,jpk),STAT= trc_opt_alloc )352 ekg(jpi,jpj,jpk),zeps(jpi,jpj,jpk), STAT= trc_opt_alloc ) 353 353 ! 354 354 IF( trc_opt_alloc /= 0 ) CALL ctl_stop( 'STOP', 'trc_opt_alloc : failed to allocate arrays.' )
Note: See TracChangeset
for help on using the changeset viewer.