Changeset 4160
- Timestamp:
- 2013-11-07T09:49:45+01:00 (11 years ago)
- Location:
- branches/2013/dev_r3856_MERCATOR3_QSRMEAN24H/NEMOGCM/NEMO
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2013/dev_r3856_MERCATOR3_QSRMEAN24H/NEMOGCM/NEMO/OPA_SRC/SBC/sbc_oce.F90
r3858 r4160 64 64 !! wndm is used onmpute surface gases exchanges in ice-free ocean or leads 65 65 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: wndm !: wind speed module at T-point (=|U10m-Uoce|) [m/s] 66 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: qsr !: sea heat flux: solar [W/m2]66 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:),TARGET :: qsr !: sea heat flux: solar [W/m2] 67 67 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:),TARGET :: qsr_mean !: daily mean sea heat flux: solar [W/m2] 68 68 REAL(wp), PUBLIC, ALLOCATABLE, SAVE, DIMENSION(:,:) :: qns , qns_b !: sea heat flux: non solar [W/m2] -
branches/2013/dev_r3856_MERCATOR3_QSRMEAN24H/NEMOGCM/NEMO/TOP_SRC/PISCES/P2Z/p2zopt.F90
r3443 r4160 89 89 90 90 ! ! surface irradiance 91 zpar0m (:,:) = qsr 91 zpar0m (:,:) = qsr_top(:,:) * 0.43 ! ------------------ 92 92 zpar100(:,:) = zpar0m(:,:) * 0.01 93 93 zparr (:,:,1) = zpar0m(:,:) * 0.5 -
branches/2013/dev_r3856_MERCATOR3_QSRMEAN24H/NEMOGCM/NEMO/TOP_SRC/PISCES/P4Z/p4zopt.F90
r3475 r4160 72 72 INTEGER :: irgb 73 73 REAL(wp) :: zchl, zxsi0r 74 REAL(wp) :: zmin,zmax 74 75 REAL(wp) :: zc0 , zc1 , zc2, zc3, z1_dep 75 76 REAL(wp), POINTER, DIMENSION(:,: ) :: zdepmoy, zetmp, zetmp1, zetmp2 … … 111 112 ! !* Photosynthetically Available Radiation (PAR) 112 113 ! ! -------------------------------------- 114 113 115 IF( ln_varpar ) THEN 114 ze1(:,:,1) = par_varsw(:,:) * qsr (:,:) * EXP( -0.5 * zekb(:,:,1) )115 ze2(:,:,1) = par_varsw(:,:) * qsr (:,:) * EXP( -0.5 * zekg(:,:,1) )116 ze3(:,:,1) = par_varsw(:,:) * qsr (:,:) * EXP( -0.5 * zekr(:,:,1) )116 ze1(:,:,1) = par_varsw(:,:) * qsr_top(:,:) * EXP( -0.5 * zekb(:,:,1) ) 117 ze2(:,:,1) = par_varsw(:,:) * qsr_top(:,:) * EXP( -0.5 * zekg(:,:,1) ) 118 ze3(:,:,1) = par_varsw(:,:) * qsr_top(:,:) * EXP( -0.5 * zekr(:,:,1) ) 117 119 ELSE 118 ze1(:,:,1) = xparsw * qsr (:,:) * EXP( -0.5 * zekb(:,:,1) )119 ze2(:,:,1) = xparsw * qsr (:,:) * EXP( -0.5 * zekg(:,:,1) )120 ze3(:,:,1) = xparsw * qsr (:,:) * EXP( -0.5 * zekr(:,:,1) )120 ze1(:,:,1) = xparsw * qsr_top(:,:) * EXP( -0.5 * zekb(:,:,1) ) 121 ze2(:,:,1) = xparsw * qsr_top(:,:) * EXP( -0.5 * zekg(:,:,1) ) 122 ze3(:,:,1) = xparsw * qsr_top(:,:) * EXP( -0.5 * zekr(:,:,1) ) 121 123 ENDIF 122 124 … … 157 159 zxsi0r = 1.e0 / rn_si0 158 160 ! 159 ze0(:,:,1) = rn_abs * qsr (:,:)161 ze0(:,:,1) = rn_abs * qsr_top(:,:) 160 162 ! ! surface value : separation in R-G-B + near surface 161 163 IF( ln_varpar ) THEN 162 ze0(:,:,1) = ( 1. - 3. * par_varsw(:,:) ) * qsr (:,:)163 ze1(:,:,1) = par_varsw(:,:) * qsr (:,:)164 ze2(:,:,1) = par_varsw(:,:) * qsr (:,:)165 ze3(:,:,1) = par_varsw(:,:) * qsr (:,:)164 ze0(:,:,1) = ( 1. - 3. * par_varsw(:,:) ) * qsr_top(:,:) 165 ze1(:,:,1) = par_varsw(:,:) * qsr_top(:,:) 166 ze2(:,:,1) = par_varsw(:,:) * qsr_top(:,:) 167 ze3(:,:,1) = par_varsw(:,:) * qsr_top(:,:) 166 168 ELSE 167 ze0(:,:,1) = ( 1. - 3. * xparsw ) * qsr (:,:)168 ze1(:,:,1) = xparsw * qsr (:,:)169 ze2(:,:,1) = xparsw * qsr (:,:)170 ze3(:,:,1) = xparsw * qsr (:,:)169 ze0(:,:,1) = ( 1. - 3. * xparsw ) * qsr_top(:,:) 170 ze1(:,:,1) = xparsw * qsr_top(:,:) 171 ze2(:,:,1) = xparsw * qsr_top(:,:) 172 ze3(:,:,1) = xparsw * qsr_top(:,:) 171 173 ENDIF 172 etot3(:,:,1) = qsr (:,:) * tmask(:,:,1)174 etot3(:,:,1) = qsr_top(:,:) * tmask(:,:,1) 173 175 ! 174 176 ! … … 202 204 DO jj = 1, jpj 203 205 DO ji = 1, jpi 204 IF( etot(ji,jj,jk) >= 0.0043 * qsr (ji,jj) ) THEN206 IF( etot(ji,jj,jk) >= 0.0043 * qsr_top(ji,jj) ) THEN 205 207 neln(ji,jj) = jk+1 ! Euphotic level : 1rst T-level strictly below Euphotic layer 206 208 ! ! nb: ensure the compatibility with nmld_trc definition in trd_mld_trc_zint -
branches/2013/dev_r3856_MERCATOR3_QSRMEAN24H/NEMOGCM/NEMO/TOP_SRC/oce_trc.F90
r3858 r4160 96 96 USE sbc_oce , ONLY : vtau => vtau !: j-surface stress component 97 97 USE sbc_oce , ONLY : wndm => wndm !: 10m wind speed 98 USE sbc_oce , ONLY : qsr => qsr !: penetrative solar radiation (w m-2)99 USE sbc_oce , ONLY : qsr_mean !: penetrative solar radiation (w m-2)100 98 USE sbc_oce , ONLY : emp => emp !: freshwater budget: volume flux [Kg/m2/s] 101 99 USE sbc_oce , ONLY : emp_b => emp_b !: freshwater budget: volume flux [Kg/m2/s] … … 150 148 # endif 151 149 150 REAL(wp),DIMENSION(:,:),POINTER :: qsr_top 151 152 CONTAINS 153 154 INTEGER FUNCTION oce_trc_alloc() 155 !!---------------------------------------------------------------------- 156 !! *** trc_oce_alloc *** 157 !!---------------------------------------------------------------------- 158 !!---------------------------------------------------------------------- 159 INTEGER :: ierr(1) ! Local variables 160 !!---------------------------------------------------------------------- 161 ierr(:) = 0 162 ALLOCATE( qsr_top(jpi,jpj), STAT=ierr(1) ) 163 oce_trc_alloc = MAXVAL( ierr ) 164 ! 165 IF( oce_trc_alloc /= 0 ) CALL ctl_warn('oce_trc_alloc: failed to allocate qsr_top array') 166 167 END FUNCTION oce_trc_alloc 168 152 169 #else 153 170 !!---------------------------------------------------------------------- -
branches/2013/dev_r3856_MERCATOR3_QSRMEAN24H/NEMOGCM/NEMO/TOP_SRC/trcini.F90
r3858 r4160 31 31 USE trcsub ! variables to substep passive tracers 32 32 USE lib_mpp ! distribued memory computing library 33 USE sbc_oce, ONLY : qsr_mean 34 USE sbc_oce, ONLY : qsr 33 35 34 36 IMPLICIT NONE … … 81 83 IF( ierr > 0 ) CALL ctl_warn('trc_ini: allocation of arrays qsr_mean failed') 82 84 85 qsr_top => qsr_mean 86 87 ELSE 88 89 qsr_top => qsr 90 83 91 ENDIF 84 92 … … 210 218 ierr = trc_adv_alloc() ! Start of TOP-related alloc routines... 211 219 ierr = ierr + trc_alloc () 220 ierr = ierr + oce_trc_alloc() 212 221 ierr = ierr + trc_nxt_alloc() 213 222 ierr = ierr + trc_zdf_alloc() -
branches/2013/dev_r3856_MERCATOR3_QSRMEAN24H/NEMOGCM/NEMO/TOP_SRC/trcstp.F90
r3858 r4160 66 66 ENDIF 67 67 ! 68 IF( ln_dm2dc .AND. lk_pisces )THEN69 qsr(:,:) = qsr_mean(:,:)70 ENDIF71 !72 68 IF( nn_dttrc /= 1 ) CALL trc_sub_stp( kt ) ! averaging physical variables for sub-stepping 73 69 ! -
branches/2013/dev_r3856_MERCATOR3_QSRMEAN24H/NEMOGCM/NEMO/TOP_SRC/trcsub.F90
r3680 r4160 27 27 USE divcur ! hor. divergence and curl (div & cur routines) 28 28 USE sbcrnf, ONLY: h_rnf, nk_rnf ! River runoff 29 USE sbc_oce ! surface boundary condition: ocean30 29 USE bdy_oce 31 30 #if defined key_obc … … 125 124 emp_tm (:,:) = emp_tm (:,:) + emp (:,:) 126 125 sfx_tm (:,:) = sfx_tm (:,:) + sfx (:,:) 127 qsr_tm (:,:) = qsr_tm (:,:) + qsr 126 qsr_tm (:,:) = qsr_tm (:,:) + qsr_top(:,:) 128 127 wndm_tm (:,:) = wndm_tm (:,:) + wndm (:,:) 129 128 ! … … 213 212 emp_b_temp (:,:) = emp_b (:,:) 214 213 sfx_temp (:,:) = sfx (:,:) 215 qsr_temp (:,:) = qsr (:,:)214 qsr_temp (:,:) = qsr_top (:,:) 216 215 wndm_temp (:,:) = wndm (:,:) 217 216 #if defined key_traldf_c3d … … 317 316 emp_tm (:,:) = emp_tm (:,:) + emp (:,:) 318 317 sfx_tm (:,:) = sfx_tm (:,:) + sfx (:,:) 319 qsr_tm (:,:) = qsr_tm (:,:) + qsr 318 qsr_tm (:,:) = qsr_tm (:,:) + qsr_top (:,:) 320 319 wndm_tm (:,:) = wndm_tm (:,:) + wndm (:,:) 321 320 ! … … 333 332 IF( kt == nittrc000 ) THEN 334 333 wndm (:,:) = wndm_tm (:,:) * r1_ndttrc 335 qsr (:,:) = qsr_tm (:,:) * r1_ndttrc334 qsr_top (:,:) = qsr_tm (:,:) * r1_ndttrc 336 335 emp (:,:) = emp_tm (:,:) * r1_ndttrc 337 336 sfx (:,:) = sfx_tm (:,:) * r1_ndttrc … … 349 348 ELSE 350 349 wndm (:,:) = wndm_tm (:,:) * r1_ndttrcp1 351 qsr (:,:) = qsr_tm (:,:) * r1_ndttrcp1350 qsr_top (:,:) = qsr_tm (:,:) * r1_ndttrcp1 352 351 emp (:,:) = emp_tm (:,:) * r1_ndttrcp1 353 352 sfx (:,:) = sfx_tm (:,:) * r1_ndttrcp1 … … 502 501 CALL lbc_lnk( emp_b (:,:) , 'T', 1. ) 503 502 CALL lbc_lnk( sfx (:,:) , 'T', 1. ) 504 CALL lbc_lnk( qsr (:,:) , 'T', 1. )503 CALL lbc_lnk( qsr_top (:,:) , 'T', 1. ) 505 504 CALL lbc_lnk( wndm (:,:) , 'T', 1. ) 506 505 # if defined key_trabbl … … 710 709 sfx (:,:) = sfx_temp (:,:) 711 710 emp_b (:,:) = emp_b_temp (:,:) 712 qsr (:,:) = qsr_temp (:,:)711 qsr_top (:,:) = qsr_temp (:,:) 713 712 wndm (:,:) = wndm_temp (:,:) 714 713 # if defined key_trabbl … … 828 827 emp_tm (:,:) = emp (:,:) 829 828 sfx_tm (:,:) = sfx (:,:) 830 qsr_tm (:,:) = qsr (:,:)829 qsr_tm (:,:) = qsr_top (:,:) 831 830 wndm_tm (:,:) = wndm (:,:) 832 831 # if defined key_trabbl
Note: See TracChangeset
for help on using the changeset viewer.