- Timestamp:
- 2017-12-04T18:06:36+01:00 (6 years ago)
- Location:
- branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/NEMO/OPA_SRC
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/NEMO/OPA_SRC/CRS/crsfld.F90
r8753 r8894 28 28 USE crslbclnk 29 29 USE iom 30 USE zdfmxl_crs31 30 USE eosbn2 32 31 USE zdftke … … 292 291 293 292 !2D fields 294 CALL crs_dom_ope( rnf , 'SUM', 'T', tmask, rnf_crs , p_e12=e1e2t, p_surf_crs=e1e2 t_crs, psgn=1.0 )295 CALL crs_dom_ope( h_rnf, 'MAX', 'T', tmask, h_rnf_crs , psgn=1.0 )293 CALL crs_dom_ope( rnf , 'SUM', 'T', tmask, rnf_crs , p_e12=e1e2t, p_surf_crs=e1e2w_msk(:,:,1), psgn=1.0 ) 294 CALL crs_dom_ope( h_rnf, 'MAX', 'T', tmask, h_rnf_crs , psgn=1.0 ) 296 295 297 296 z2d=REAL(nk_rnf,wp) 298 CALL crs_dom_ope( z2d , 'MAX', 'T', tmask, z2d_crs , p_e12=e1e2t, p_surf_crs=e1e2t_crs, psgn=1.0 ) 297 !cbr CALL crs_dom_ope( z2d , 'MAX', 'T', tmask, z2d_crs , p_e12=e1e2t, p_surf_crs=e1e2t_crs, psgn=1.0 ) 298 CALL crs_dom_ope( z2d , 'MAX', 'T', tmask, z2d_crs , psgn=1.0 ) 299 299 nk_rnf_crs=INT(z2d_crs) 300 300 … … 308 308 309 309 z2d=REAL(nmln,wp) 310 CALL crs_dom_ope( z2d , 'MAX', 'T', tmask, z2d_crs , p_e12=e1e2t, p_surf_crs=e1e2t_crs, psgn=1.0 ) 310 !cbr CALL crs_dom_ope( z2d , 'SUM', 'T', tmask, z2d_crs , p_e12=e1e2t, p_surf_crs=e1e2w_msk(:,:,1), psgn=1.0 ) 311 CALL crs_dom_ope( z2d , 'MAX', 'T', tmask, z2d_crs , psgn=1.0 ) 311 312 nmln_crs=INT(z2d_crs) 312 nmln_crs=MAX(nlb10,nmln_crs) 313 !cbr nmln_crs=MAX(nlb10,nmln_crs) 314 315 !cbr CALL crs_dom_ope( hmld , 'SUM', 'T', tmask, hmld_crs , p_e12=e1e2t, p_surf_crs=e1e2w_msk(:,:,1), psgn=1.0 ) 316 CALL crs_dom_ope( hmld , 'MAX', 'T', tmask, hmld_crs , psgn=1.0 ) 317 CALL crs_dom_ope( hmlp , 'SUM', 'T', tmask, hmlp_crs , p_e12=e1e2t, p_surf_crs=e1e2w_msk(:,:,1), psgn=1.0 ) 318 CALL crs_dom_ope( hmlpt, 'SUM', 'T', tmask, hmlpt_crs, p_e12=e1e2t, p_surf_crs=e1e2w_msk(:,:,1), psgn=1.0 ) 319 320 CALL iom_put( "mldkz5" , hmld_crs ) 313 321 314 322 CALL iom_put( "utau" , utau_crs ) ! i-tau output … … 316 324 CALL iom_put( "wspd" , wndm_crs ) ! wind speed output 317 325 CALL iom_put( "runoffs" , rnf_crs ) ! runoff output 326 318 327 CALL iom_put( "qsr" , qsr_crs ) ! qsr output 319 CALL iom_put( "empmr" , emp_crs ) ! water flux output 320 CALL iom_put( "saltflx" , fmmflx_crs ) ! salt flux output 328 CALL iom_put( "empmr" , emp_crs - rnf_crs ) ! water flux output 329 !CALL iom_put( "saltflx" , fmmflx_crs ) ! salt flux output 330 CALL iom_put( "fmmflx", fmmflx_crs ) ! Freezing-melting water flux 321 331 CALL iom_put( "ice_cover", fr_i_crs ) ! ice cover output 322 332 … … 370 380 & + z1_2dt * e1e2w_crs(:,:,jk) * ( e3t_a_crs(:,:,jk) - e3t_b_crs(:,:,jk) ) ) * tmask_crs(:,:,jk) 371 381 WHERE( e1e2w_msk(:,:,jk) .NE. 0._wp ) wn_crs(:,:,jk) = wn_crs(:,:,jk) /e1e2w_msk(:,:,jk) 382 372 383 373 384 ENDDO -
branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/NEMO/OPA_SRC/LDF/ldfslp_crs.F90
r7256 r8894 26 26 USE ldfdyn_oce ! lateral diffusion: dynamics 27 27 USE phycst ! physical constants 28 USE zdfmxl_crs ! mixed layer depth29 28 USE eosbn2_crs ! equation of states 30 29 USE crslbclnk ! ocean lateral boundary conditions (or mpp link) -
branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/NEMO/OPA_SRC/SBC/fldread.F90
r7520 r8894 24 24 USE lbclnk ! ocean lateral boundary conditions (C1D case) 25 25 USE ioipsl, ONLY : ymds2ju, ju2ymds ! for calendar 26 USE sbc_oce, ONLY : nn_components,nn_lsm,jp_iam_sas 26 USE sbc_oce, ONLY : nn_components,nn_lsm,jp_iam_sas,nn_fsbc 27 27 28 28 IMPLICIT NONE -
branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/NEMO/OPA_SRC/step.F90
r7806 r8894 242 242 IF( lk_crs ) CALL crs_fld( kstp ) ! ocean model: online field coarsening & output 243 243 244 CALL wrk_alloc( jpi, jpj, jpk, zrhop, zrhd )245 CALL eos( tsn, zrhd, zrhop, fsdept_n(:,:,:) ) ! now in situ and potential density246 zrhop(:,:,jpk) = 0._wp247 CALL iom_put( 'rhop', zrhop )248 249 CALL wrk_dealloc( jpi, jpj, jpk, zrhop, zrhd )250 251 244 #if defined key_top 252 245 !>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> … … 256 249 CALL dom_grid_crs 257 250 258 CALL zdf_mxl_crs(kstp)259 251 CALL eos_crs ( tsn_crs, rhd_crs, rhop_crs, fsdept_crs(:,:,:) ) ! now in situ density for hpg computation 260 252 -
branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/NEMO/OPA_SRC/step_oce.F90
r7806 r8894 101 101 USE crs 102 102 USE crsfld ! Standard output on coarse grid (crs_fld routine) 103 USE zdfmxl_crs104 103 USE eosbn2_crs 105 104 USE zpshde_crs -
branches/2015/dev_r5003_MERCATOR6_CRS/NEMOGCM/NEMO/OPA_SRC/trc_oce.F90
r5602 r8894 14 14 USE dom_oce ! ocean space and time domain 15 15 USE lib_mpp ! MPP library 16 16 #if defined key_crs 17 USE crs, ONLY: tmask_crs, gdepw_n_crs 18 #endif 17 19 IMPLICIT NONE 18 20 PRIVATE … … 21 23 PUBLIC trc_oce_rgb_read ! routine called by traqsr.F90 22 24 PUBLIC trc_oce_ext_lev ! function called by traqsr.F90 at least 23 PUBLIC trc_oce_alloc ! function called by nemogcm.F90 25 PUBLIC trc_oce_alloc 26 #if defined key_crs 27 PUBLIC trc_oce_ext_lev_crs ! function called by traqsr.F90 at least 28 #endif 24 29 25 30 INTEGER , PUBLIC :: nn_dttrc !: frequency of step on passive tracers … … 285 290 END FUNCTION trc_oce_ext_lev 286 291 292 293 #if defined key_crs 294 FUNCTION trc_oce_ext_lev_crs( prldex, pqsr_frc ) RESULT( pjl ) 295 !!---------------------------------------------------------------------- 296 !! *** ROUTINE trc_oce_ext_lev *** 297 !! 298 !! ** Purpose : compute max. level for light penetration 299 !! 300 !! ** Method : the function provides the level at which irradiance 301 !! becomes negligible (i.e. = 1.e-15 W/m2) for 3 or 2 bands light 302 !! penetration: I(z) = pqsr_frc * EXP(hext/prldex) = 1.e-15 W/m2 303 !! # prldex is the longest depth of extinction: 304 !! - prldex = 23 m (2 bands case) 305 !! - prldex = 62 m (3 bands case: blue waveband & 0.01 mg/m2 for the chlorophyll) 306 !! # pqsr_frc is the fraction of solar radiation which penetrates, 307 !! considering Qsr=240 W/m2 and rn_abs = 0.58: 308 !! - pqsr_frc = Qsr * (1-rn_abs) = 1.00e2 W/m2 (2 bands case) 309 !! - pqsr_frc = Qsr * (1-rn_abs)/3 = 0.33e2 W/m2 (3 bands case & equi-partition) 310 !! 311 !!---------------------------------------------------------------------- 312 REAL(wp), INTENT(in) :: prldex ! longest depth of extinction 313 REAL(wp), INTENT(in) :: pqsr_frc ! frac. solar radiation which penetrates 314 !! 315 INTEGER :: jk, pjl ! levels 316 REAL(wp) :: zhext ! deepest level till which light penetrates 317 REAL(wp) :: zprec = 15._wp ! precision to reach -LOG10(1.e-15) 318 REAL(wp) :: zem ! temporary scalar 319 !!---------------------------------------------------------------------- 320 ! 321 ! It is not necessary to compute anything below the following depth 322 zhext = prldex * ( LOG(10._wp) * zprec + LOG(pqsr_frc) ) 323 ! 324 ! Level of light extinction 325 pjl = jpkm1 326 DO jk = jpkm1, 1, -1 327 IF(SUM(tmask_crs(:,:,jk)) > 0 ) THEN 328 zem = MAXVAL( gdepw_n_crs(:,:,jk+1) * tmask_crs(:,:,jk) ) 329 IF( zem >= zhext ) pjl = jk ! last T-level reached by Qsr 330 ELSE 331 pjl = jk ! or regional sea-bed depth 332 ENDIF 333 END DO 334 ! 335 END FUNCTION trc_oce_ext_lev_crs 336 337 #endif 287 338 !!====================================================================== 288 339 END MODULE trc_oce
Note: See TracChangeset
for help on using the changeset viewer.