- Timestamp:
- 2012-03-14T10:19:21+01:00 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2012/dev_r3309_LOCEAN12_Ediag/NEMOGCM/NEMO/OPA_SRC/TRA/traqsr.F90
r3318 r3326 13 13 14 14 !!---------------------------------------------------------------------- 15 !! tra_qsr : trend due to the solar radiation penetration16 !! tra_qsr_init : solar radiation penetration initialization15 !! tra_qsr : trend due to the solar radiation penetration 16 !! tra_qsr_init : solar radiation penetration initialization 17 17 !!---------------------------------------------------------------------- 18 USE oce 19 USE dom_oce 20 USE sbc_oce 21 USE trc_oce 22 USE trd_oce 23 USE trdtra 24 USE phycst 25 USE in_out_manager 26 USE prtctl 27 USE iom 28 USE fldread 29 USE restart 30 USE lib_mpp 18 USE oce ! ocean dynamics and active tracers 19 USE dom_oce ! ocean space and time domain 20 USE sbc_oce ! surface boundary condition: ocean 21 USE trc_oce ! share SMS/Ocean variables 22 USE trd_oce ! trends: ocean variables 23 USE trdtra ! trends manager: tracers 24 USE phycst ! physical constants 25 USE in_out_manager ! I/O manager 26 USE prtctl ! Print control 27 USE iom ! I/O manager 28 USE fldread ! read input fields 29 USE restart ! ocean restart 30 USE lib_mpp ! MPP library 31 31 USE wrk_nemo ! Memory Allocation 32 32 USE timing ! Timing … … 48 48 REAL(wp), PUBLIC :: rn_si1 = 23.0_wp !: deepest depth of extinction (water type I) (2 bands) 49 49 50 ! Module variables 51 REAL(wp) :: xsi0r !: inverse of rn_si0 52 REAL(wp) :: xsi1r !: inverse of rn_si1 50 INTEGER , PUBLIC :: nksr !: levels below which the light cannot penetrate ( depth larger than 391 m) 51 52 REAL(wp) :: xsi0r, xsi1r ! inverse of rn_si0 and rn_si1, resp. 53 REAL(wp), DIMENSION(3,61) :: rkrgb ! tabulated attenuation coefficients for RGB absorption 53 54 TYPE(FLD), ALLOCATABLE, DIMENSION(:) :: sf_chl ! structure of input Chl (file informations, fields read) 54 INTEGER, PUBLIC :: nksr ! levels below which the light cannot penetrate ( depth larger than 391 m)55 REAL(wp), DIMENSION(3,61) :: rkrgb !: tabulated attenuation coefficients for RGB absorption56 55 57 56 !! * Substitutions … … 92 91 !! Lengaigne et al. 2007, Clim. Dyn., V28, 5, 503-516. 93 92 !!---------------------------------------------------------------------- 94 !95 93 INTEGER, INTENT(in) :: kt ! ocean time-step 96 94 ! … … 116 114 ENDIF 117 115 118 IF( l_trdtra ) THEN ! Save t a and sa trends116 IF( l_trdtra ) THEN ! Save temperature trend 119 117 CALL wrk_alloc( jpi, jpj, jpk, ztrdt ) 120 118 ztrdt(:,:,:) = tsa(:,:,:,jp_tem) … … 141 139 ! Compute now qsr tracer content field 142 140 ! ************************************ 143 144 141 ! ! ============================================== ! 145 142 IF( lk_qsr_bio .AND. ln_qsr_bio ) THEN ! bio-model fluxes : all vertical coordinates ! … … 168 165 IF( nn_chldta == 1 .OR. lk_vvl ) THEN !* Variable Chlorophyll or ocean volume 169 166 ! 170 IF( nn_chldta == 1 ) THEN ! *Variable Chlorophyll167 IF( nn_chldta == 1 ) THEN !- Variable Chlorophyll 171 168 ! 172 169 CALL fld_read( kt, 1, sf_chl ) ! Read Chl data and provides it at the current time step … … 184 181 END DO 185 182 END DO 186 ELSE !Variable ocean volume but constant chrlorophyll187 zchl = 0.05 ! constant chlorophyll183 ELSE !- Variable ocean volume but constant chrlorophyll 184 zchl = 0.05 ! constant chlorophyll 188 185 irgb = NINT( 41 + 20.*LOG10( zchl ) + 1.e-15 ) 189 zekb(:,:) = rkrgb(1,irgb) ! Separation in R-G-B depending of the chlorophyll186 zekb(:,:) = rkrgb(1,irgb) ! Separation in R-G-B depending of the chlorophyll 190 187 zekg(:,:) = rkrgb(2,irgb) 191 188 zekr(:,:) = rkrgb(3,irgb) 192 189 ENDIF 193 190 ! 194 zcoef = ( 1. - rn_abs ) / 3.e0 !equi-partition in R-G-B195 ze0(:,:,1) = rn_abs 196 ze1(:,:,1) = zcoef * qsr(:,:)197 ze2(:,:,1) = zcoef * qsr(:,:)198 ze3(:,:,1) = zcoef * qsr(:,:)199 zea(:,:,1) = qsr(:,:)191 zcoef = ( 1. - rn_abs ) / 3.e0 !- equi-partition in R-G-B 192 ze0(:,:,1) = rn_abs * qsr(:,:) 193 ze1(:,:,1) = zcoef * qsr(:,:) 194 ze2(:,:,1) = zcoef * qsr(:,:) 195 ze3(:,:,1) = zcoef * qsr(:,:) 196 zea(:,:,1) = qsr(:,:) 200 197 ! 201 198 DO jk = 2, nksr+1
Note: See TracChangeset
for help on using the changeset viewer.