- Timestamp:
- 2012-05-17T18:33:12+02:00 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2012/dev_r3385_NOCS04_HAMF/NEMOGCM/NEMO/OPA_SRC/SBC/sbcblk_clio.F90
r3294 r3396 12 12 13 13 !!---------------------------------------------------------------------- 14 !! sbc_blk_clio : CLIO bulk formulation: read and update required input fields15 !! blk_clio_oce : ocean CLIO bulk formulea: compute momentum, heat and freswater fluxes for the ocean16 !! blk_ice_clio : ice CLIO bulk formulea: compute momentum, heat and freswater fluxes for the sea-ice14 !! sbc_blk_clio : CLIO bulk formulation: read and update required input fields 15 !! blk_clio_oce : ocean CLIO bulk formulea: compute momentum, heat and freswater fluxes for the ocean 16 !! blk_ice_clio : ice CLIO bulk formulea: compute momentum, heat and freswater fluxes for the sea-ice 17 17 !! blk_clio_qsr_oce : shortwave radiation for ocean computed from the cloud cover 18 18 !! blk_clio_qsr_ice : shortwave radiation for ice computed from the cloud cover 19 !! flx_blk_declin : solar declinaison19 !! flx_blk_declin : solar declination 20 20 !!---------------------------------------------------------------------- 21 21 USE oce ! ocean dynamics and tracers … … 50 50 INTEGER , PARAMETER :: jp_vtau = 2 ! index of wind stress (j-component) (N/m2) at V-point 51 51 INTEGER , PARAMETER :: jp_wndm = 3 ! index of 10m wind module (m/s) at T-point 52 INTEGER , PARAMETER :: jp_humi = 4 ! index of specific humidity ( -)53 INTEGER , PARAMETER :: jp_ccov = 5 ! index of cloud cover ( -)52 INTEGER , PARAMETER :: jp_humi = 4 ! index of specific humidity ( % ) 53 INTEGER , PARAMETER :: jp_ccov = 5 ! index of cloud cover ( % ) 54 54 INTEGER , PARAMETER :: jp_tair = 6 ! index of 10m air temperature (Kelvin) 55 55 INTEGER , PARAMETER :: jp_prec = 7 ! index of total precipitation (rain+snow) (Kg/m2/s) … … 100 100 !! the i-component of the stress (N/m2) 101 101 !! the j-component of the stress (N/m2) 102 !! the 10m wind pseed module (m/s)102 !! the 10m wind speed module (m/s) 103 103 !! the 10m air temperature (Kelvin) 104 !! the 10m specific humidity ( -)105 !! the cloud cover ( -)104 !! the 10m specific humidity (%) 105 !! the cloud cover (%) 106 106 !! the total precipitation (rain+snow) (Kg/m2/s) 107 107 !! (2) CALL blk_oce_clio 108 108 !! 109 109 !! C A U T I O N : never mask the surface stress fields 110 !! the stress is assumed to be in the mesh referential 111 !! i.e. the (i,j) referential 110 !! the stress is assumed to be in the (i,j) mesh referential 112 111 !! 113 112 !! ** Action : defined at each time-step at the air-sea interface … … 115 114 !! - taum wind stress module at T-point 116 115 !! - wndm 10m wind module at T-point 117 !! - qns, qsr non-slor and solar heat flux 118 !! - emp, emps evaporation minus precipitation 116 !! - qns non-solar heat flux including latent heat of solid 117 !! precip. melting and emp heat content 118 !! - qsr solar heat flux 119 !! - emp upward mass flux (evap. - precip) 119 120 !!---------------------------------------------------------------------- 120 INTEGER, INTENT( in) :: kt ! ocean time step121 INTEGER, INTENT( in ) :: kt ! ocean time step 121 122 !! 122 123 INTEGER :: ifpr, jfpr ! dummy indices … … 205 206 !! - taum wind stress module at T-point 206 207 !! - wndm 10m wind module at T-point 207 !! - qns, qsr non-slor and solar heat flux 208 !! - emp, emps evaporation minus precipitation 208 !! - qns non-solar heat flux including latent heat of solid 209 !! precip. melting and emp heat content 210 !! - qsr solar heat flux 211 !! - emp suface mass flux (evap.-precip.) 209 212 !! ** Nota : sf has to be a dummy argument for AGRIF on NEC 210 213 !!---------------------------------------------------------------------- … … 223 226 REAL(wp) :: zsst, ztatm, zcco1, zpatm, zcmax, zrmax ! - - 224 227 REAL(wp) :: zrhoa, zev, zes, zeso, zqatm, zevsqr ! - - 225 REAL(wp) :: ztx2, zty2 228 REAL(wp) :: ztx2, zty2, zcevap, zcprec ! - - 226 229 REAL(wp), POINTER, DIMENSION(:,:) :: zqlw ! long-wave heat flux over ocean 227 230 REAL(wp), POINTER, DIMENSION(:,:) :: zqla ! latent heat flux over ocean … … 363 366 ! III Total FLUXES ! 364 367 ! ----------------------------------------------------------------------------- ! 365 366 !CDIR COLLAPSE 367 emp (:,:) = zqla(:,:) / cevap - sf(jp_prec)%fnow(:,:,1) / rday * tmask(:,:,1) 368 qns (:,:) = zqlw(:,:) - zqsb(:,:) - zqla(:,:) ! Downward Non Solar flux 369 emps(:,:) = emp(:,:) 370 ! 368 zcevap = rcp / cevap ! convert zqla ==> evap (Kg/m2/s) ==> m/s ==> W/m2 369 zcprec = rcp / rday ! convert prec ( mm/day ==> m/s) ==> W/m2 370 371 !CDIR COLLAPSE 372 emp(:,:) = zqla(:,:) / cevap & ! freshwater flux 373 & - sf(jp_prec)%fnow(:,:,1) / rday * tmask(:,:,1) 374 ! 375 !CDIR COLLAPSE 376 qns(:,:) = zqlw(:,:) - zqsb(:,:) - zqla(:,:) & ! Downward Non Solar flux 377 & - zqla(:,:) * pst(:,:) * zcevap & ! remove evap. heat content at SST in Celcius 378 & + sf(jp_prec)%fnow(:,:,1) * sf(jp_tair)%fnow(:,:,1) * zcprec ! add precip. heat content at Tair in Celcius 379 ! NB: if sea-ice model, the snow precip are computed and the associated heat is added to qns (see blk_ice_clio) 380 371 381 CALL iom_put( "qlw_oce", zqlw ) ! output downward longwave heat over the ocean 372 382 CALL iom_put( "qsb_oce", - zqsb ) ! output downward sensible heat over the ocean … … 407 417 !! 408 418 !! ** Action : call albedo_oce/albedo_ice to compute ocean/ice albedo 409 !! computation of snow precipitation 410 !! computation of solar flux at the ocean and ice surfaces 411 !! computation of the long-wave radiation for the ocean and sea/ice 412 !! computation of turbulent heat fluxes over water and ice 413 !! computation of evaporation over water 414 !! computation of total heat fluxes sensitivity over ice (dQ/dT) 415 !! computation of latent heat flux sensitivity over ice (dQla/dT) 416 !! 419 !! - snow precipitation 420 !! - solar flux at the ocean and ice surfaces 421 !! - the long-wave radiation for the ocean and sea/ice 422 !! - turbulent heat fluxes over water and ice 423 !! - evaporation over water 424 !! - total heat fluxes sensitivity over ice (dQ/dT) 425 !! - latent heat flux sensitivity over ice (dQla/dT) 426 !! - qns : modified the non solar heat flux over the ocean 427 !! to take into account solid precip latent heat flux 417 428 !!---------------------------------------------------------------------- 418 429 REAL(wp), INTENT(in ), DIMENSION(:,:,:) :: pst ! ice surface temperature [Kelvin] … … 594 605 ! 595 606 ! ----------------------------------------------------------------------------- ! 596 ! Total FLUXES !607 ! Total FLUXES ! 597 608 ! ----------------------------------------------------------------------------- ! 598 609 ! … … 601 612 !CDIR COLLAPSE 602 613 p_tpr(:,:) = sf(jp_prec)%fnow(:,:,1) / rday ! total precipitation [kg/m2/s] 614 ! 615 ! ----------------------------------------------------------------------------- ! 616 ! Correct the OCEAN non solar flux with the existence of solid precipitation ! 617 ! ---------------=====--------------------------------------------------------- ! 618 !CDIR COLLAPSE 619 qns(:,:) = qns(:,:) & ! update the non-solar heat flux with: 620 & - p_spr(:,:) * lfus & ! remove melting solid precip 621 & + p_spr(:,:) * MIN( sf(jp_tair)%fnow(:,:,1), rt0_snow - rt0 ) * cpic & ! add solid P at least below melting 622 & - p_spr(:,:) * sf(jp_tair)%fnow(:,:,1) * rcp ! remove solid precip. at Tair 603 623 ! 604 624 !!gm : not necessary as all input data are lbc_lnk...
Note: See TracChangeset
for help on using the changeset viewer.