Changeset 7795 for branches/2015/dev_r5003_MERCATOR6_CRS
- Timestamp:
- 2017-03-15T09:04:30+01:00 (7 years ago)
- Location:
- branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/NEMO
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/NEMO/OPA_SRC/CRS/crs.F90
r7398 r7795 154 154 ! Physical and dynamical ocean fields for output or passing to TOP, time-mean fields 155 155 REAL(wp), DIMENSION(:,:,:,:), ALLOCATABLE :: tsb_crs,tsn_crs,tsa_crs,rab_crs_n 156 REAL(wp), DIMENSION(:,:,:) , ALLOCATABLE :: un_crs, vn_crs, wn_crs , rke_crs156 REAL(wp), DIMENSION(:,:,:) , ALLOCATABLE :: un_crs, vn_crs, wn_crs 157 157 REAL(wp), DIMENSION(:,:,:) , ALLOCATABLE :: ub_crs, vb_crs 158 158 REAL(wp), DIMENSION(:,:,:) , ALLOCATABLE :: hdivb_crs , hdivn_crs … … 296 296 297 297 ALLOCATE( ub_crs(jpi_crs,jpj_crs,jpk) , vb_crs(jpi_crs,jpj_crs,jpk) , & 298 & un_crs(jpi_crs,jpj_crs,jpk) , vn_crs(jpi_crs,jpj_crs,jpk) , wn_crs(jpi_crs,jpj_crs,jpk) , 298 & un_crs(jpi_crs,jpj_crs,jpk) , vn_crs(jpi_crs,jpj_crs,jpk) , wn_crs(jpi_crs,jpj_crs,jpk) ,& 299 299 & hdivb_crs(jpi_crs,jpj_crs,jpk) , hdivn_crs(jpi_crs,jpj_crs,jpk) , & 300 & r ke_crs(jpi_crs,jpj_crs,jpk), rhop_crs(jpi_crs,jpj_crs,jpk) , &300 & rhop_crs(jpi_crs,jpj_crs,jpk) , & 301 301 & rb2_crs(jpi_crs,jpj_crs,jpk) ,rn2_crs(jpi_crs,jpj_crs,jpk) , & 302 302 & rhd_crs(jpi_crs,jpj_crs,jpk) , rab_crs_n(jpi_crs,jpj_crs,jpk,jpts) , & -
branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/NEMO/OPA_SRC/CRS/crsfld.F90
r7520 r7795 141 141 emp_b_crs(:,:) = emp_crs(:,:) 142 142 rnf_b_crs(:,:) = rnf_crs(:,:) 143 hdivb_crs(:,:,:) = hdivn_crs(:,:,:)144 143 ELSE 145 144 emp_b_crs(:,: ) = 0._wp 146 145 rnf_b_crs(:,: ) = 0._wp 147 hdivb_crs(:,:,: ) = 0._wp148 146 ENDIF 149 147 … … 157 155 CALL crs_dom_ope( zs, 'VOL', 'T', tmask, zs_crs, p_e12=e1e2t, p_e3=zfse3t, psgn=1.0 ) 158 156 tsb_crs(:,:,:,jp_sal) = zs_crs(:,:,:) 159 160 ! U-velocity161 CALL crs_dom_ope( ub, 'SUM', 'U', umask, ub_crs, p_e12=e2u, p_e3=zfse3u, p_surf_crs=e2e3u_msk, psgn=-1.0 )162 163 ! V-velocity164 CALL crs_dom_ope( vb, 'SUM', 'V', vmask, vb_crs, p_e12=e1v, p_e3=zfse3v, p_surf_crs=e1e3v_msk, psgn=-1.0 )165 157 166 158 ! n2 … … 266 258 CALL iom_put( "voce" , vn_crs ) ! i-current 267 259 268 !n2269 CALL crs_dom_ope( rn2 , 'VOL', 'W', tmask, rn2_crs, p_e12=e1e2t, p_e3=zfse3t, psgn=1.0 )260 ! !n2 261 ! CALL crs_dom_ope( rn2 , 'VOL', 'W', tmask, rn2_crs, p_e12=e1e2t, p_e3=zfse3t, psgn=1.0 ) 270 262 271 263 ! Horizontal divergence ( following OPA_SRC/DYN/divcur.F90 ) … … 303 295 ! 304 296 CALL iom_put( "avt", avt_crs ) ! Kz 305 297 306 298 !2D fields 307 CALL crs_dom_ope( utau , 'SUM', 'U', umask, utau_crs , p_e12=e2u , p_surf_crs=e2u_crs , psgn=1.0 )308 CALL crs_dom_ope( vtau , 'SUM', 'V', vmask, vtau_crs , p_e12=e1v , p_surf_crs=e1v_crs , psgn=1.0 )309 CALL crs_dom_ope( wndm , 'SUM', 'T', tmask, wndm_crs , p_e12=e1e2t, p_surf_crs=e1e2t_crs, psgn=1.0 )310 299 CALL crs_dom_ope( rnf , 'MAX', 'T', tmask, rnf_crs , psgn=1.0 ) 311 300 CALL crs_dom_ope( h_rnf, 'MAX', 'T', tmask, h_rnf_crs , psgn=1.0 ) … … 319 308 CALL crs_dom_ope( emp ,'SUM', 'T', tmask, emp_crs , p_e12=e1e2t, p_surf_crs=e1e2t_crs, psgn=1.0 ) 320 309 CALL crs_dom_ope( fmmflx,'SUM', 'T', tmask, fmmflx_crs, p_e12=e1e2t, p_surf_crs=e1e2t_crs, psgn=1.0 ) 321 CALL crs_dom_ope( sfx ,'SUM', 'T', tmask, sfx_crs , p_e12=e1e2t, p_surf_crs=e1e2t_crs, psgn=1.0 )322 310 323 311 CALL crs_dom_ope( fr_i ,'SUM', 'T', tmask, fr_i_crs , p_e12=e1e2t, p_surf_crs=e1e2t_crs, psgn=1.0 ) … … 385 373 DO jk = jpkm1, 1, -1 386 374 wn_crs(:,:,jk) = wn_crs(:,:,jk+1)*e1e2w_msk(:,:,jk+1) - ( hdivn_crs(:,:,jk) & 387 & + z1_2dt * e1e2w_ crs(:,:,jk) * ( e3t_a_crs(:,:,jk) - e3t_b_crs(:,:,jk) ) ) * tmask_crs(:,:,jk)375 & + z1_2dt * e1e2w_msk(:,:,jk) * ( e3t_a_crs(:,:,jk) - e3t_b_crs(:,:,jk) ) ) * tmask_crs(:,:,jk) 388 376 WHERE( e1e2w_msk(:,:,jk) .NE. 0._wp ) wn_crs(:,:,jk) = wn_crs(:,:,jk) /e1e2w_msk(:,:,jk) 389 377 -
branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/NEMO/OPA_SRC/TRA/traadv_tvd_crs.F90
r6772 r7795 144 144 ! Surface value 145 145 IF( lk_vvl ) THEN ; zwz(:,:, 1 ) = 0.e0 ! volume variable 146 ELSE ; zwz(:,:, 1 ) = pwn(:,:,1) !cbr* ptb(:,:,1,jn) ! linear free surface146 ELSE ; zwz(:,:, 1 ) = pwn(:,:,1) * ptb(:,:,1,jn) ! linear free surface 147 147 ENDIF 148 148 ! Interior value -
branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/NEMO/OPA_SRC/TRA/trazdf_imp_crs.F90
r6772 r7795 149 149 150 150 #endif 151 151 152 DO jk = 1, jpkm1 152 153 DO jj = 2, jpj_crs-1 … … 154 155 155 156 #if defined key_vvl 156 ze3ta = ( 1. - r_vvl ) + r_vvl * fse3t_a_crs(ji,jj,jk) ! after scale factor at T-point157 ze3tn = r_vvl + ( 1. - r_vvl ) * fse3t_n_crs(ji,jj,jk) ! now scale factor at T-point157 ze3ta = ( 1. - r_vvl ) + r_vvl * e3t_a_crs(ji,jj,jk) ! after scale factor at T-point 158 ze3tn = r_vvl + ( 1. - r_vvl ) * e3t_n_crs(ji,jj,jk) ! now scale factor at T-point 158 159 #else 159 160 ze3ta = ( 1. - r_vvl ) + r_vvl * e3t_0_crs(ji,jj,jk) ! after scale factor at T-point 160 161 ze3tn = r_vvl + ( 1. - r_vvl ) * e3t_0_crs(ji,jj,jk) ! now scale factor at T-point 161 162 #endif 162 !cbr zwi(ji,jj,jk) = - p2dt(jk) * zwt(ji,jj,jk ) / ( ze3tn * e3w_1d(jk ) ) !cc 163 !cbr zws(ji,jj,jk) = - p2dt(jk) * zwt(ji,jj,jk+1) / ( ze3tn * e3w_1d(jk+1) ) !cc 163 164 164 zwi(ji,jj,jk) = - p2dt(jk) * zwt(ji,jj,jk ) / ( ze3tn * fse3w_max_crs(ji,jj,jk) ) 165 165 zws(ji,jj,jk) = - p2dt(jk) * zwt(ji,jj,jk+1) / ( ze3tn * fse3w_max_crs(ji,jj,jk+1) ) … … 209 209 DO ji = 2, jpi_crs-1 210 210 #if defined key_vvl 211 ze3tb = ( 1. - r_vvl ) + r_vvl * fse3t_b_crs(ji,jj,1)212 ze3tn = ( 1. - r_vvl ) + r_vvl * fse3t_n_crs(ji,jj,1)211 ze3tb = ( 1. - r_vvl ) + r_vvl * e3t_b_crs(ji,jj,1) 212 ze3tn = ( 1. - r_vvl ) + r_vvl * e3t_n_crs(ji,jj,1) 213 213 #else 214 214 ze3tb = ( 1. - r_vvl ) + r_vvl * e3t_0_crs(ji,jj,1) … … 223 223 DO ji = 2, jpi_crs-1 224 224 #if defined key_vvl 225 ze3tb = ( 1. - r_vvl ) + r_vvl * fse3t_b_crs(ji,jj,jk)226 ze3tn = ( 1. - r_vvl ) + r_vvl * fse3t_n_crs(ji,jj,jk)225 ze3tb = ( 1. - r_vvl ) + r_vvl * e3t_b_crs(ji,jj,jk) 226 ze3tn = ( 1. - r_vvl ) + r_vvl * e3t_n_crs(ji,jj,jk) 227 227 #else 228 228 ze3tb = ( 1. - r_vvl ) + r_vvl * e3t_0_crs(ji,jj,jk) -
branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/NEMO/TOP_SRC/oce_trc.F90
r7521 r7795 147 147 148 148 #if defined key_vvl 149 USE crs , ONLY : e3t => e3t_n_crs !: vertical scale factors at t-150 USE crs , ONLY : e3u => e3u_n_crs !: vertical scale factors at u-151 USE crs , ONLY : e3v => e3v_n_crs !: vertical scale factors v-152 USE crs , ONLY : e3w => e3w_n_crs !: w-points (m)153 149 USE crs , ONLY : e3t_b => e3t_b_crs !: vertical scale factors at t- 154 USE crs , ONLY : e3u_b => e3u_b_crs !: vertical scale factors at u-155 USE crs , ONLY : e3v_b => e3v_b_crs !: vertical scale factors v-156 USE crs , ONLY : e3w_b => e3w_b_crs !: w-points (m)157 150 USE crs , ONLY : e3t_n => e3t_n_crs !: vertical scale factors at t- 158 151 USE crs , ONLY : e3u_n => e3u_n_crs !: vertical scale factors at u- … … 160 153 USE crs , ONLY : e3w_n => e3w_n_crs !: w-points (m) 161 154 USE crs , ONLY : e3t_a => e3t_a_crs !: vertical scale factors at t- 162 USE crs , ONLY : e3u_a => e3u_a_crs !: vertical scale factors at u-163 USE crs , ONLY : e3v_a => e3v_a_crs !: vertical scale factors v-164 USE crs , ONLY : e3w_a => e3w_a_crs !: w-points (m)165 USE crs , ONLY : gdept => gdept_n_crs !: depth of t-points (m)166 USE crs , ONLY : gdept_crs => gdept_n_crs !: depth of t-points (m)167 155 USE crs , ONLY : gdept_n => gdept_n_crs !: depth of t-points (m) 168 USE crs , ONLY : gdepw_n => gdepw_n_crs !: depth of t-points (m)169 USE crs , ONLY : e3t_max_crs => e3t_max_n_crs170 USE crs , ONLY : e3u_max_crs => e3u_max_n_crs171 USE crs , ONLY : e3v_max_crs => e3v_max_n_crs172 USE crs , ONLY : e3w_max_crs => e3w_max_n_crs173 156 #else 174 157 USE crs , ONLY : e3t => e3t_0_crs !: vertical scale factors at t- … … 199 182 USE crs , ONLY : e3w_max_crs => e3w_max_0_crs 200 183 #endif 201 USE crs , ONLY : e3t_0 => e3t_0_crs !: vertical scale factors at t-202 USE crs , ONLY : e3u_0 => e3u_0_crs !: vertical scale factors at t-203 USE crs , ONLY : e3v_0 => e3v_0_crs !: vertical scale factors at t-204 USE crs , ONLY : e3w_0 => e3w_0_crs !: vertical scale factors at t-205 206 USE crs , ONLY : ff => ff_crs !: f-points (m)207 USE crs , ONLY : gdept_0 => gdept_0_crs !: depth of t-points (m)208 184 USE dom_oce , ONLY : gdept_1d => gdept_1d !: depth of t-points (m) 209 #if defined key_zco210 USE crs , ONLY : gdept => gdept_0_crs !: depth of t-points (m)211 USE crs , ONLY : gdepw => gdepw_crs !: depth of t-points (m)212 #endif213 185 !* masks, bathymetry * 214 186 USE crs , ONLY : mbkt => mbkt_crs !: vertical index of the bottom last T- ocean level 215 USE crs , ONLY : mbku => mbku_crs !: vertical index of the bottom last U- ocean level216 USE crs , ONLY : mbkv => mbkv_crs !: vertical index of the bottom last V- ocean level217 187 USE crs , ONLY : tmask_i => tmask_i_crs !: Interior mask at t-points 218 188 USE crs , ONLY : tmask => tmask_crs !: land/ocean mask at t-points 219 USE crs , ONLY : umask => umask_crs !: land/ocean mask at u-points220 USE crs , ONLY : vmask => vmask_crs !: land/ocean mask at v-points221 USE crs , ONLY : fmask => fmask_crs !: land/ocean mask at f-points222 189 223 190 !* ocean fields: here now and after fields * … … 226 193 USE crs , ONLY : wn => wn_crs !: vertical velocity (m s-1) 227 194 USE crs , ONLY : tsn => tsn_crs !: 4D array contaning ( tn, sn ) 228 USE crs , ONLY : tsb => tsb_crs !: 4D array contaning ( tb, sb )229 USE crs , ONLY : tsa => tsa_crs !: 4D array contaning ( ta, sa )230 195 USE crs , ONLY : rhop => rhop_crs !: potential volumic mass (kg m-3) 231 USE crs , ONLY : rhd => rhd_crs !: in situ density anomalie rhd=(rho-rau0)/rau0 (no units)232 USE crs , ONLY : rn2b => rb2_crs !: in situ density anomalie rhd=(rho-rau0)/rau0 (no units)233 USE crs , ONLY : rab_n => rab_crs_n !: in situ density anomalie rhd=(rho-rau0)/rau0 (no units)234 196 USE crs , ONLY : hdivn => hdivn_crs !: horizontal divergence (1/s) 235 USE crs , ONLY : hdivb => hdivb_crs !: horizontal divergence (1/s)236 197 USE crs , ONLY : sshb => sshb_crs !: sea surface height at t-point [m] 237 198 USE crs , ONLY : sshn => sshn_crs !: sea surface height at t-point [m] … … 239 200 240 201 !* surface fluxes * 241 USE crs , ONLY : utau => utau_crs !: i-surface stress component242 USE crs , ONLY : vtau => vtau_crs !: j-surface stress component243 USE crs , ONLY : wndm => wndm_crs !: 10m wind speed244 202 USE crs , ONLY : qsr => qsr_crs !: penetrative solar radiation (w m-2) 245 203 USE crs , ONLY : emp => emp_crs !: freshwater budget: volume flux [Kg/m2/s] 246 204 USE crs , ONLY : emp_b => emp_b_crs !: freshwater budget: volume flux [Kg/m2/s] 247 USE crs , ONLY : sfx => sfx_crs !: freshwater budget: concentration/dillution [Kg/m2/s]248 205 USE crs , ONLY : fmmflx => fmmflx_crs !: freshwater budget: volume flux [Kg/m2/s] 249 206 USE crs , ONLY : rnf => rnf_crs !: river runoff [Kg/m2/s] … … 251 208 USE crs , ONLY : nk_rnf => nk_rnf_crs !: depth of runoff in model level 252 209 USE crs , ONLY : fr_i => fr_i_crs !: ice fraction (between 0 to 1) 210 253 211 USE trcnam_trp , ONLY : aht0 => rn_ahtrc_0 !: horizontal eddy diffusivity for tracers (m2/s) 254 212 USE crs , ONLY : ahtu => ahtu_crs !: lateral diffusivity coef. at u-points … … 258 216 USE crs , ONLY : r_fact_lap => r_fact_lap_crs !: enhanced zonal diffusivity coefficient 259 217 USE ldftra_oce , ONLY : rldf => rldf 218 260 219 USE crs , ONLY : trc_i => trc_i_crs 261 220 USE crs , ONLY : trc_o => trc_o_crs 221 262 222 USE crs , ONLY : avt => avt_crs !: vert. diffusivity coef. at w-point for temp 263 #if defined key_zdfddm264 USE crs , ONLY : avs => avs_crs !: salinity vertical diffusivity coeff. at w-point265 #endif266 267 USE trc_oce, ONLY : nn_dttrc268 269 USE crs , ONLY : nmln => nmln_crs !: number of level in the mixed layer270 223 USE crs , ONLY : hmld => hmld_crs !: mixing layer depth (turbocline) 271 224 USE crs , ONLY : hmlp => hmlp_crs !: mixed layer depth (rho=rho0+zdcrit) (m) 272 USE crs , ONLY : hmlpt => hmlpt_crs !: mixed layer depth at t-points (m)273 225 274 226 !* direction of lateral diffusion * -
branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/NEMO/TOP_SRC/trcsub.F90
r7398 r7795 110 110 fmmflx_tm(:,:) = fmmflx_tm(:,:) + fmmflx(:,:) 111 111 qsr_tm (:,:) = qsr_tm (:,:) + qsr (:,:) 112 wndm_tm (:,:) = wndm_tm (:,:) + wndm (:,:)113 112 114 113 ELSE ! It is time to substep … … 152 151 fmmflx_temp(:,:) = fmmflx(:,:) 153 152 qsr_temp (:,:) = qsr (:,:) 154 wndm_temp (:,:) = wndm (:,:)155 153 ! ! Variables reset in trc_sub_ssh 156 154 #if ! defined key_crs 157 155 rotn_temp (:,:,:) = rotn (:,:,:) 158 156 # endif 159 hdivn_temp (:,:,:) = hdivn (:,:,:)160 157 #if ! defined key_crs 161 158 rotb_temp (:,:,:) = rotb (:,:,:) 162 159 # endif 163 hdivb_temp (:,:,:) = hdivb (:,:,:)164 160 ! 165 161 ! 2. Create averages and reassign variables … … 199 195 fmmflx_tm(:,:) = fmmflx_tm (:,:) + fmmflx(:,:) 200 196 qsr_tm (:,:) = qsr_tm (:,:) + qsr (:,:) 201 wndm_tm (:,:) = wndm_tm (:,:) + wndm (:,:)202 197 ! 203 198 sshn (:,:) = sshn_tm (:,:) * r1_ndttrcp1 … … 211 206 emp_b (:,:) = emp_b_hold (:,:) 212 207 IF( kt == nittrc000 ) THEN 213 wndm (:,:) = wndm_tm (:,:) * r1_ndttrc214 208 qsr (:,:) = qsr_tm (:,:) * r1_ndttrc 215 209 emp (:,:) = emp_tm (:,:) * r1_ndttrc … … 227 221 # endif 228 222 ELSE 229 wndm (:,:) = wndm_tm (:,:) * r1_ndttrcp1230 223 qsr (:,:) = qsr_tm (:,:) * r1_ndttrcp1 231 224 emp (:,:) = emp_tm (:,:) * r1_ndttrcp1 … … 389 382 emp_b (:,:) = emp_b_temp (:,:) 390 383 qsr (:,:) = qsr_temp (:,:) 391 wndm (:,:) = wndm_temp (:,:)392 384 # if defined key_trabbl 393 385 IF( nn_bbl_ldf == 1 ) THEN … … 402 394 ! 403 395 hdivn (:,:,:) = hdivn_temp (:,:,:) 404 hdivb (:,:,:) = hdivb_temp (:,:,:)405 396 #if ! defined key_crs 406 397 rotn (:,:,:) = rotn_temp (:,:,:) … … 438 429 fmmflx_tm (:,:) = fmmflx(:,:) 439 430 qsr_tm (:,:) = qsr (:,:) 440 wndm_tm (:,:) = wndm (:,:)441 431 # if defined key_trabbl 442 432 IF( nn_bbl_ldf == 1 ) THEN
Note: See TracChangeset
for help on using the changeset viewer.