Changeset 152 for trunk/NEMO/OPA_SRC
- Timestamp:
- 2004-10-19T15:35:09+02:00 (20 years ago)
- Location:
- trunk/NEMO/OPA_SRC/SBC
- Files:
-
- 1 added
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/NEMO/OPA_SRC/SBC/flxblk.F90
r84 r152 10 10 !!---------------------------------------------------------------------- 11 11 !! flx_blk : thermohaline fluxes from bulk 12 !! flx_blk_albedo : albedo for ocean and ice (clear and overcast skies)13 12 !! flx_blk_declin : solar declinaison 14 13 !!---------------------------------------------------------------------- … … 24 23 USE in_out_manager 25 24 USE lbclnk 25 USE albedo 26 26 27 27 IMPLICIT NONE … … 30 30 !! * Accessibility 31 31 PUBLIC flx_blk ! routine called by flx.F90 32 PUBLIC flx_blk_albedo ! routine called by limflx.F9033 32 34 33 !! * Module variables … … 60 59 zzero = 0.e0 , & 61 60 zone = 1.0 62 63 !! * constants for albedo computation (flx_blk_albedo)64 REAL(wp) :: &65 c1 = 0.05 , & ! constants values66 c2 = 0.10 , &67 albice = 0.50 , & ! albedo of melting ice in the arctic and antarctic (Shine & Hendersson-Sellers)68 cgren = 0.06 , & ! correction of the snow or ice albedo to take into account69 ! effects of cloudiness (Grenfell & Perovich, 1984)70 alphd = 0.80 , & ! coefficients for linear interpolation used to compute71 alphdi = 0.72 , & ! albedo between two extremes values (Pyane, 1972)72 alphc = 0.65 , &73 zmue = 0.40 ! cosine of local solar altitude74 61 75 62 !! * constants for solar declinaison computation (flx_blk_declin) … … 693 680 694 681 695 #if defined key_ice_lim696 !!----------------------------------------------------------------------697 !! 'key_ice_lim' LIM ice model698 !!----------------------------------------------------------------------699 700 SUBROUTINE flx_blk_albedo( palb , palcn , palbp , palcnp )701 !!----------------------------------------------------------------------702 !! *** ROUTINE flx_blk_albedo ***703 !!704 !! ** Purpose : Computation of the albedo of the snow/ice system705 !! as well as the ocean one706 !!707 !! ** Method : - Computation of the albedo of snow or ice (choose the708 !! rignt one by a large number of tests709 !! - Computation of the albedo of the ocean710 !!711 !! References :712 !! Shine and Hendersson-Sellers 1985, JGR, 90(D1), 2243-2250.713 !!714 !! History :715 !! 8.0 ! 01-04 (LIM 1.0)716 !! 8.5 ! 03-07 (C. Ethe, G. Madec) Optimization (old name:shine)717 !!----------------------------------------------------------------------718 !! * Modules used719 USE ice ! ???720 721 !! * Arguments722 REAL(wp), DIMENSION(jpi,jpj), INTENT(out) :: &723 palb , & ! albedo of ice under overcast sky724 palcn , & ! albedo of ocean under overcast sky725 palbp , & ! albedo of ice under clear sky726 palcnp ! albedo of ocean under clear sky727 728 !! * Local variables729 INTEGER :: &730 ji, jj ! dummy loop indices731 REAL(wp) :: &732 zmue14 , & ! zmue**1.4733 zalbpsnm , & ! albedo of ice under clear sky when snow is melting734 zalbpsnf , & ! albedo of ice under clear sky when snow is freezing735 zalbpsn , & ! albedo of snow/ice system when ice is coverd by snow736 zalbpic , & ! albedo of snow/ice system when ice is free of snow737 zithsn , & ! = 1 for hsn >= 0 ( ice is cov. by snow ) ; = 0 otherwise (ice is free of snow)738 zitmlsn , & ! = 1 freezinz snow (sist >=rt0_snow) ; = 0 melting snow (sist<rt0_snow)739 zihsc1 , & ! = 1 hsn <= c1 ; = 0 hsn > c1740 zihsc2 ! = 1 hsn >= c2 ; = 0 hsn < c2741 REAL(wp), DIMENSION(jpi,jpj) :: &742 zalbfz , & ! ( = alphdi for freezing ice ; = albice for melting ice )743 zficeth ! function of ice thickness744 LOGICAL , DIMENSION(jpi,jpj) :: &745 llmask746 !!---------------------------------------------------------------------747 748 !-------------------------749 ! Computation of zficeth750 !--------------------------751 752 llmask = (hsnif == 0.e0) .AND. ( sist >= rt0_ice )753 WHERE ( llmask ) ! ice free of snow and melts754 zalbfz = albice755 ELSEWHERE756 zalbfz = alphdi757 END WHERE758 759 DO jj = 1, jpj760 DO ji = 1, jpi761 IF( hicif(ji,jj) > 1.5 ) THEN762 zficeth(ji,jj) = zalbfz(ji,jj)763 ELSEIF( hicif(ji,jj) > 1.0 .AND. hicif(ji,jj) <= 1.5 ) THEN764 zficeth(ji,jj) = 0.472 + 2.0 * ( zalbfz(ji,jj) - 0.472 ) * ( hicif(ji,jj) - 1.0 )765 ELSEIF( hicif(ji,jj) > 0.05 .AND. hicif(ji,jj) <= 1.0 ) THEN766 zficeth(ji,jj) = 0.2467 + 0.7049 * hicif(ji,jj) &767 & - 0.8608 * hicif(ji,jj) * hicif(ji,jj) &768 & + 0.3812 * hicif(ji,jj) * hicif(ji,jj) * hicif (ji,jj)769 ELSE770 zficeth(ji,jj) = 0.1 + 3.6 * hicif(ji,jj)771 ENDIF772 END DO773 END DO774 775 !-----------------------------------------------776 ! Computation of the snow/ice albedo system777 !-------------------------- ---------------------778 779 ! Albedo of snow-ice for clear sky.780 !-----------------------------------------------781 DO jj = 1, jpj782 DO ji = 1, jpi783 ! Case of ice covered by snow.784 785 ! melting snow786 zihsc1 = 1.0 - MAX ( zzero , SIGN ( zone , - ( hsnif(ji,jj) - c1 ) ) )787 zalbpsnm = ( 1.0 - zihsc1 ) * ( zficeth(ji,jj) + hsnif(ji,jj) * ( alphd - zficeth(ji,jj) ) / c1 ) &788 & + zihsc1 * alphd789 ! freezing snow790 zihsc2 = MAX ( zzero , SIGN ( zone , hsnif(ji,jj) - c2 ) )791 zalbpsnf = ( 1.0 - zihsc2 ) * ( albice + hsnif(ji,jj) * ( alphc - albice ) / c2 ) &792 & + zihsc2 * alphc793 794 zitmlsn = MAX ( zzero , SIGN ( zone , sist(ji,jj) - rt0_snow ) )795 zalbpsn = zitmlsn * zalbpsnf + ( 1.0 - zitmlsn ) * zalbpsnm796 797 ! Case of ice free of snow.798 zalbpic = zficeth(ji,jj)799 800 ! albedo of the system801 zithsn = 1.0 - MAX ( zzero , SIGN ( zone , - hsnif(ji,jj) ) )802 palbp(ji,jj) = zithsn * zalbpsn + ( 1.0 - zithsn ) * zalbpic803 END DO804 END DO805 806 ! Albedo of snow-ice for overcast sky.807 !----------------------------------------------808 palb(:,:) = palbp(:,:) + cgren809 810 !--------------------------------------------811 ! Computation of the albedo of the ocean812 !-------------------------- -----------------813 814 ! Parameterization of Briegled and Ramanathan, 1982815 zmue14 = zmue**1.4816 palcnp(:,:) = 0.05 / ( 1.1 * zmue14 + 0.15 )817 818 ! Parameterization of Kondratyev, 1969 and Payne, 1972819 palcn(:,:) = 0.06820 821 END SUBROUTINE flx_blk_albedo822 823 # else824 !!----------------------------------------------------------------------825 !! Default option : NO sea-ice model826 !!----------------------------------------------------------------------827 828 SUBROUTINE flx_blk_albedo( palb , palcn , palbp , palcnp )829 !!----------------------------------------------------------------------830 !! *** ROUTINE flx_blk_albedo ***831 !!832 !! ** Purpose : Computation of the albedo of the snow/ice system833 !! as well as the ocean one834 !!835 !! ** Method : Computation of the albedo of snow or ice (choose the836 !! wright one by a large number of tests Computation of the albedo837 !! of the ocean838 !!839 !! History :840 !! 8.0 ! 01-04 (LIM 1.0)841 !! 8.5 ! 03-07 (C. Ethe, G. Madec) Optimization (old name:shine)842 !!----------------------------------------------------------------------843 !! * Arguments844 REAL(wp), DIMENSION(jpi,jpj), INTENT(out) :: &845 palb , & ! albedo of ice under overcast sky846 palcn , & ! albedo of ocean under overcast sky847 palbp , & ! albedo of ice under clear sky848 palcnp ! albedo of ocean under clear sky849 850 REAL(wp) :: &851 zmue14 ! zmue**1.4852 !!----------------------------------------------------------------------853 854 !--------------------------------------------855 ! Computation of the albedo of the ocean856 !-------------------------- -----------------857 858 ! Parameterization of Briegled and Ramanathan, 1982859 zmue14 = zmue**1.4860 palcnp(:,:) = 0.05 / ( 1.1 * zmue14 + 0.15 )861 862 ! Parameterization of Kondratyev, 1969 and Payne, 1972863 palcn(:,:) = 0.06864 865 palb (:,:) = palcn(:,:)866 palbp(:,:) = palcnp(:,:)867 868 END SUBROUTINE flx_blk_albedo869 870 #endif871 872 682 SUBROUTINE flx_blk_declin( ky, kday, pdecl ) 873 683 !!---------------------------------------------------------------------------
Note: See TracChangeset
for help on using the changeset viewer.