- Timestamp:
- 2012-11-21T14:19:18+01:00 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2012/dev_NOC_2012_rev3555/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_core.F90
r3294 r3625 52 52 INTEGER , PARAMETER :: jp_wndi = 1 ! index of 10m wind velocity (i-component) (m/s) at T-point 53 53 INTEGER , PARAMETER :: jp_wndj = 2 ! index of 10m wind velocity (j-component) (m/s) at T-point 54 INTEGER , PARAMETER :: jp_humi = 3 ! index of specific humidity ( -)54 INTEGER , PARAMETER :: jp_humi = 3 ! index of specific humidity ( % ) 55 55 INTEGER , PARAMETER :: jp_qsr = 4 ! index of solar heat (W/m2) 56 56 INTEGER , PARAMETER :: jp_qlw = 5 ! index of Long wave (W/m2) … … 69 69 REAL(wp), PARAMETER :: Stef = 5.67e-8 ! Stefan Boltzmann constant 70 70 REAL(wp), PARAMETER :: Cice = 1.63e-3 ! transfer coefficient over ice 71 REAL(wp), PARAMETER :: albo = 0.066 ! ocean albedo assumed to be con tant71 REAL(wp), PARAMETER :: albo = 0.066 ! ocean albedo assumed to be constant 72 72 73 73 ! !!* Namelist namsbc_core : CORE bulk parameters … … 96 96 !! the 10m wind velocity (i-component) (m/s) at T-point 97 97 !! the 10m wind velocity (j-component) (m/s) at T-point 98 !! the specific humidity ( -)98 !! the 10m or 2m specific humidity ( % ) 99 99 !! the solar heat (W/m2) 100 100 !! the Long wave (W/m2) 101 !! the 10m air temperature(Kelvin)101 !! the 10m or 2m air temperature (Kelvin) 102 102 !! the total precipitation (rain+snow) (Kg/m2/s) 103 103 !! the snow (solid prcipitation) (kg/m2/s) 104 !! OPTIONAL parameter (see ln_taudif namelist flag): 105 !! the tau diff associated to HF tau (N/m2) at T-point 104 !! the tau diff associated to HF tau (N/m2) at T-point (ln_taudif=T) 106 105 !! (2) CALL blk_oce_core 107 106 !! 108 107 !! C A U T I O N : never mask the surface stress fields 109 !! the stress is assumed to be in the mesh referential 110 !! i.e. the (i,j) referential 108 !! the stress is assumed to be in the (i,j) mesh referential 111 109 !! 112 110 !! ** Action : defined at each time-step at the air-sea interface 113 111 !! - utau, vtau i- and j-component of the wind stress 114 !! - taum wind stress module at T-point 115 !! - wndm 10m wind module at T-point 116 !! - qns, qsr non-slor and solar heat flux 117 !! - emp, emps evaporation minus precipitation 112 !! - taum, wndm wind stress and 10m wind modules at T-point 113 !! - qns, qsr non-solar and solar heat fluxes 114 !! - emp upward mass flux (evapo. - precip.) 115 !! - sfx salt flux due to freezing/melting (non-zero only if ice is present) 116 !! (set in limsbc(_2).F90) 118 117 !!---------------------------------------------------------------------- 119 118 INTEGER, INTENT(in) :: kt ! ocean time step … … 125 124 CHARACTER(len=100) :: cn_dir ! Root directory for location of core files 126 125 TYPE(FLD_N), DIMENSION(jpfld) :: slf_i ! array of namelist informations on the fields to read 127 TYPE(FLD_N) :: sn_wndi, sn_wndj, sn_humi, sn_qsr ! informations about the fields to be read 128 TYPE(FLD_N) :: sn_qlw , sn_tair, sn_prec, sn_snow ! " " 129 TYPE(FLD_N) :: sn_tdif ! " " 126 TYPE(FLD_N) :: sn_wndi, sn_wndj, sn_humi, sn_qsr ! informations about the fields to be read 127 TYPE(FLD_N) :: sn_qlw , sn_tair, sn_prec, sn_snow, sn_tdif ! - - 130 128 NAMELIST/namsbc_core/ cn_dir , ln_2m , ln_taudif, rn_pfac, & 131 129 & sn_wndi, sn_wndj, sn_humi , sn_qsr , & … … 181 179 CALL fld_fill( sf, slf_i, cn_dir, 'sbc_blk_core', 'flux formulation for ocean surface boundary condition', 'namsbc_core' ) 182 180 ! 183 ENDIF 184 185 CALL fld_read( kt, nn_fsbc, sf ) ! input fields provided at the current time-step 186 187 ! ! surface ocean fluxes computed with CLIO bulk formulea 181 sfx(:,:) = 0._wp ! salt flux; zero unless ice is present (computed in limsbc(_2).F90) 182 ! 183 ENDIF 184 185 CALL fld_read( kt, nn_fsbc, sf ) ! input fields provided at the current time-step 186 187 ! ! compute the surface ocean fluxes using CORE bulk formulea 188 188 IF( MOD( kt - 1, nn_fsbc ) == 0 ) CALL blk_oce_core( sf, sst_m, ssu_m, ssv_m ) 189 189 … … 221 221 !! - qns : Non Solar heat flux over the ocean (W/m2) 222 222 !! - evap : Evaporation over the ocean (kg/m2/s) 223 !! - emp (s): evaporation minus precipitation (kg/m2/s)223 !! - emp : evaporation minus precipitation (kg/m2/s) 224 224 !! 225 225 !! ** Nota : sf has to be a dummy argument for AGRIF on NEC … … 252 252 zcoef_qsatw = 0.98 * 640380. / rhoa 253 253 254 zst(:,:) = pst(:,:) + rt0 ! convert eCelcius to Kelvin (and set minimum value far above 0 K)254 zst(:,:) = pst(:,:) + rt0 ! convert SST from Celcius to Kelvin (and set minimum value far above 0 K) 255 255 256 256 ! ----------------------------------------------------------------------------- ! … … 378 378 379 379 !CDIR COLLAPSE 380 qns(:,:) = zqlw(:,:) - zqsb(:,:) - zqla(:,:) ! Downward Non Solar flux 381 !CDIR COLLAPSE 382 emp(:,:) = zevap(:,:) - sf(jp_prec)%fnow(:,:,1) * rn_pfac * tmask(:,:,1) 383 !CDIR COLLAPSE 384 emps(:,:) = emp(:,:) 380 emp (:,:) = ( zevap(:,:) & ! mass flux (evap. - precip.) 381 & - sf(jp_prec)%fnow(:,:,1) * rn_pfac ) * tmask(:,:,1) 382 !CDIR COLLAPSE 383 qns(:,:) = zqlw(:,:) - zqsb(:,:) - zqla(:,:) & ! Downward Non Solar flux 384 & - sf(jp_snow)%fnow(:,:,1) * lfus & ! remove latent melting heat for solid precip 385 & - zevap(:,:) * pst(:,:) * rcp & ! remove evap heat content at SST 386 & + ( sf(jp_prec)%fnow(:,:,1) - sf(jp_snow)%fnow(:,:,1) ) & ! add liquid precip heat content at Tair 387 & * ( sf(jp_tair)%fnow(:,:,1) - rt0 ) * rcp & 388 & + sf(jp_snow)%fnow(:,:,1) & ! add solid precip heat content at min(Tair,Tsnow) 389 & * ( MIN( sf(jp_tair)%fnow(:,:,1), rt0_snow ) - rt0 ) * cpic 385 390 ! 386 391 CALL iom_put( "qlw_oce", zqlw ) ! output downward longwave heat over the ocean 387 392 CALL iom_put( "qsb_oce", - zqsb ) ! output downward sensible heat over the ocean 388 393 CALL iom_put( "qla_oce", - zqla ) ! output downward latent heat over the ocean 394 CALL iom_put( "qhc_oce", qns-zqlw+zqsb+zqla ) ! output downward heat content of E-P over the ocean 389 395 CALL iom_put( "qns_oce", qns ) ! output downward non solar heat over the ocean 390 396 !
Note: See TracChangeset
for help on using the changeset viewer.