Ignore:
Timestamp:
2007-10-10T10:14:32+02:00 (12 years ago)
Author:
smasson
Message:

code modifications associated with the new routines, see ticket:4

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/NEMO/OPA_SRC/SBC/albedo.F90

    r699 r703  
    44   !! Ocean forcing:  bulk thermohaline forcing of the ocean (or ice) 
    55   !!===================================================================== 
    6    !!---------------------------------------------------------------------- 
    7    !!   flx_blk_albedo : albedo for ocean and ice (clear and overcast skies) 
    8    !!---------------------------------------------------------------------- 
    9    !! * Modules used 
     6   !! History :  8.0  !  01-04  (LIM 1.0) 
     7   !!            8.5  !  03-07  (C. Ethe, G. Madec)  Optimization (old name:shine) 
     8   !!            9.0  !  04-11  (C. Talandier)  add albedo_init 
     9   !!            9.0  !  06-08  (G. Madec)  cleaning for surface module 
     10   !!---------------------------------------------------------------------- 
     11 
     12   !!---------------------------------------------------------------------- 
     13   !!   blk_albedo  : albedo for ocean and ice (clear and overcast skies) 
     14   !!   albedo_init : initialisation 
     15   !!---------------------------------------------------------------------- 
    1016   USE oce             ! ocean dynamics and tracers 
    11    USE dom_oce         ! ocean space and time domain 
    12    USE cpl_oce         ! ??? 
    1317   USE phycst          ! physical constants 
    14    USE daymod 
    15    USE blk_oce         ! bulk variables 
    16    USE flx_oce         ! forcings variables 
    17    USE ocfzpt          ! ??? 
    1818   USE in_out_manager 
    19    USE lbclnk 
    2019 
    2120   IMPLICIT NONE 
    2221   PRIVATE 
    2322 
    24    !! * Accessibility 
    25    PUBLIC flx_blk_albedo ! routine called by limflx.F90 in coupled 
    26                          ! and in flxblk.F90 in forced 
    27    !! * Module variables 
    28    INTEGER  ::             &  !: nameos : ocean physical parameters 
    29       albd_init = 0           !: control flag for initialization 
    30  
    31    REAL(wp)  ::            &  ! constant values 
    32       zzero   = 0.e0    ,  & 
    33       zone    = 1.0 
    34  
    35    !! * constants for albedo computation (flx_blk_albedo) 
     23   PUBLIC   blk_albedo   ! routine called by sbcice_lim module 
     24 
     25   INTEGER  ::   albd_init = 0    !: control flag for initialization 
     26 
     27   REAL(wp) ::   zzero   = 0.e0   ! constant values 
     28   REAL(wp) ::   zone    = 1.e0   !    "       " 
     29 
     30   REAL(wp) ::   c1     = 0.05    ! constants values 
     31   REAL(wp) ::   c2     = 0.10    !    "        " 
     32   REAL(wp) ::   cmue   = 0.40    !  cosine of local solar altitude 
     33 
     34   !!* namelist namalb 
    3635   REAL(wp) ::   & 
    37       c1     = 0.05  ,     &   ! constants values 
    38       c2     = 0.10  ,     & 
     36      cgren  = 0.06  ,     &   !  correction of the snow or ice albedo to take into account 
     37      !                        !  effects of cloudiness (Grenfell & Perovich, 1984) 
    3938      albice = 0.50  ,     &   !  albedo of melting ice in the arctic and antarctic (Shine & Hendersson-Sellers) 
    40       cgren  = 0.06  ,     &   !  correction of the snow or ice albedo to take into account 
    41                                !  effects of cloudiness (Grenfell & Perovich, 1984) 
    4239      alphd  = 0.80  ,     &   !  coefficients for linear interpolation used to compute 
    4340      alphdi = 0.72  ,     &   !  albedo between two extremes values (Pyane, 1972) 
    44       alphc  = 0.65  ,     & 
    45       zmue   = 0.40            !  cosine of local solar altitude 
    46  
    47    !!---------------------------------------------------------------------- 
    48    !!   OPA 9.0 , LOCEAN-IPSL (2005)  
     41      alphc  = 0.65  
     42   NAMELIST/namalb/ cgren, albice, alphd, alphdi, alphc 
     43 
     44   !!---------------------------------------------------------------------- 
     45   !!   OPA 9.0 , LOCEAN-IPSL (2006)  
    4946   !! $Id$ 
    50    !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt  
     47   !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 
    5148   !!---------------------------------------------------------------------- 
    5249 
     
    5855   !!---------------------------------------------------------------------- 
    5956 
    60    SUBROUTINE flx_blk_albedo( palb , palcn , palbp , palcnp ) 
    61       !!---------------------------------------------------------------------- 
    62       !!               ***  ROUTINE flx_blk_albedo  *** 
     57   SUBROUTINE blk_albedo( palb , palcn , palbp , palcnp ) 
     58      !!---------------------------------------------------------------------- 
     59      !!               ***  ROUTINE blk_albedo  *** 
    6360      !!           
    6461      !! ** Purpose :   Computation of the albedo of the snow/ice system  
    65       !!      as well as the ocean one 
     62      !!                as well as the ocean one 
    6663      !!        
    6764      !! ** Method  : - Computation of the albedo of snow or ice (choose the  
    68       !!      rignt one by a large number of tests 
     65      !!                rignt one by a large number of tests 
    6966      !!              - Computation of the albedo of the ocean 
    7067      !! 
    71       !! References : 
    72       !!      Shine and Hendersson-Sellers 1985, JGR, 90(D1), 2243-2250. 
    73       !! 
    74       !! History : 
    75       !!  8.0   !  01-04  (LIM 1.0) 
    76       !!  8.5   !  03-07  (C. Ethe, G. Madec)  Optimization (old name:shine) 
    77       !!---------------------------------------------------------------------- 
    78       !! * Modules used 
    79       USE ice                   ! ??? 
    80  
    81       !! * Arguments 
    82       REAL(wp), DIMENSION(jpi,jpj), INTENT(out) ::  & 
    83          palb         ,     &    !  albedo of ice under overcast sky 
    84          palcn        ,     &    !  albedo of ocean under overcast sky 
    85          palbp        ,     &    !  albedo of ice under clear sky  
    86          palcnp                  !  albedo of ocean under clear sky 
    87  
    88       !! * Local variables 
    89       INTEGER ::    & 
    90          ji, jj                   ! dummy loop indices 
    91       REAL(wp) ::   &  
    92          zmue14         ,     &   !  zmue**1.4 
     68      !! References :   Shine and Hendersson-Sellers 1985, JGR, 90(D1), 2243-2250. 
     69      !!---------------------------------------------------------------------- 
     70      USE ice             ! ??? 
     71      !! 
     72      REAL(wp), INTENT(out), DIMENSION(jpi,jpj) ::   palb     ! albedo of ice under overcast sky 
     73      REAL(wp), INTENT(out), DIMENSION(jpi,jpj) ::   palcn    ! albedo of ocean under overcast sky 
     74      REAL(wp), INTENT(out), DIMENSION(jpi,jpj) ::   palbp    ! albedo of ice under clear sky  
     75      REAL(wp), INTENT(out), DIMENSION(jpi,jpj) ::   palcnp   ! albedo of ocean under clear sky 
     76      !! 
     77      INTEGER  ::   ji, jj                   ! dummy loop indices 
     78      REAL(wp) ::   zcoef,    &   ! temporary scalar 
    9379         zalbpsnm       ,     &   !  albedo of ice under clear sky when snow is melting 
    9480         zalbpsnf       ,     &   !  albedo of ice under clear sky when snow is freezing 
     
    9985         zihsc1         ,     &   !  = 1 hsn <= c1 ; = 0 hsn > c1 
    10086         zihsc2                   !  = 1 hsn >= c2 ; = 0 hsn < c2 
    101       REAL(wp), DIMENSION(jpi,jpj) ::  & 
    102          zalbfz         ,     &   !  ( = alphdi for freezing ice ; = albice for melting ice ) 
    103          zficeth                  !  function of ice thickness 
    104       LOGICAL , DIMENSION(jpi,jpj) ::  & 
    105          llmask 
     87      LOGICAL , DIMENSION(jpi,jpj) ::   llmask    !  
     88      REAL(wp), DIMENSION(jpi,jpj) ::   zalbfz    ! ( = alphdi for freezing ice ; = albice for melting ice ) 
     89      REAL(wp), DIMENSION(jpi,jpj) ::   zficeth   ! function of ice thickness 
    10690      !!--------------------------------------------------------------------- 
    10791       
    108       ! initialization  
    109       IF( albd_init == 0 )   CALL albedo_init 
    110  
    111       !-------------------------                                                              
     92      IF( albd_init == 0 )   CALL albedo_init      ! initialization  
     93 
     94      !--------------------------- 
    11295      !  Computation of  zficeth 
    113       !--------------------------  
     96      !--------------------------- 
    11497       
    11598      llmask = (hsnif == 0.e0) .AND. ( sist >= rt0_ice ) 
     
    175158      !-------------------------- -----------------                                                           
    176159       
    177       !  Parameterization of Briegled and Ramanathan, 1982  
    178       zmue14      = zmue**1.4                                        
    179       palcnp(:,:) = 0.05 / ( 1.1 * zmue14 + 0.15 )                 
    180        
    181       !  Parameterization of Kondratyev, 1969 and Payne, 1972 
    182       palcn(:,:)  = 0.06                                                  
    183        
    184    END SUBROUTINE flx_blk_albedo 
     160      zcoef = 0.05 / ( 1.1 * cmue**1.4 + 0.15 )        ! Parameterization of Briegled and Ramanathan, 1982  
     161      palcnp(:,:) = zcoef 
     162      palcn(:,:)  = 0.06                               ! Parameterization of Kondratyev, 1969 and Payne, 1972 
     163      ! 
     164   END SUBROUTINE blk_albedo 
    185165 
    186166# else 
     
    189169   !!---------------------------------------------------------------------- 
    190170 
    191    SUBROUTINE flx_blk_albedo( palb , palcn , palbp , palcnp ) 
    192       !!---------------------------------------------------------------------- 
    193       !!               ***  ROUTINE flx_blk_albedo  *** 
     171   SUBROUTINE blk_albedo( palb , palcn , palbp , palcnp ) 
     172      !!---------------------------------------------------------------------- 
     173      !!               ***  ROUTINE blk_albedo  *** 
    194174      !!  
    195       !! ** Purpose :   Computation of the albedo of the snow/ice system 
    196       !!      as well as the ocean one 
    197       !! 
    198       !! ** Method  :   Computation of the albedo of snow or ice (choose the 
    199       !!      wright one by a large number of tests Computation of the albedo 
    200       !!      of the ocean 
    201       !! 
    202       !! History : 
    203       !!  8.0   !  01-04  (LIM 1.0) 
    204       !!  8.5   !  03-07  (C. Ethe, G. Madec)  Optimization (old name:shine) 
    205       !!---------------------------------------------------------------------- 
    206       !! * Arguments 
    207       REAL(wp), DIMENSION(jpi,jpj), INTENT(out) ::  & 
    208          palb         ,     &    !  albedo of ice under overcast sky 
    209          palcn        ,     &    !  albedo of ocean under overcast sky 
    210          palbp        ,     &    !  albedo of ice under clear sky 
    211          palcnp                  !  albedo of ocean under clear sky 
    212  
    213       REAL(wp) ::   & 
    214          zmue14                 !  zmue**1.4 
    215       !!---------------------------------------------------------------------- 
    216  
    217       !-------------------------------------------- 
    218       !    Computation of the albedo of the ocean 
    219       !-------------------------- ----------------- 
    220  
    221       !  Parameterization of Briegled and Ramanathan, 1982 
    222       zmue14      = zmue**1.4 
    223       palcnp(:,:) = 0.05 / ( 1.1 * zmue14 + 0.15 ) 
    224  
    225       !  Parameterization of Kondratyev, 1969 and Payne, 1972 
    226       palcn(:,:)  = 0.06 
    227  
    228       palb (:,:)  = palcn(:,:) 
    229       palbp(:,:)  = palcnp(:,:) 
    230  
    231    END SUBROUTINE flx_blk_albedo 
     175      !! ** Purpose :   Computation of the albedo of the ocean 
     176      !! 
     177      !! ** Method  :   .... 
     178      !!---------------------------------------------------------------------- 
     179      REAL(wp), INTENT(out), DIMENSION(jpi,jpj) ::   palb     ! albedo of ice under overcast sky 
     180      REAL(wp), INTENT(out), DIMENSION(jpi,jpj) ::   palcn    ! albedo of ocean under overcast sky 
     181      REAL(wp), INTENT(out), DIMENSION(jpi,jpj) ::   palbp    ! albedo of ice under clear sky 
     182      REAL(wp), INTENT(out), DIMENSION(jpi,jpj) ::   palcnp   ! albedo of ocean under clear sky 
     183      !! 
     184      REAL(wp) ::   zcoef    ! temporary scalar 
     185      !!---------------------------------------------------------------------- 
     186      ! 
     187      zcoef = 0.05 / ( 1.1 * cmue**1.4 + 0.15 ) 
     188 
     189      palcnp(:,:) = zcoef           ! Parameterization of Briegled and Ramanathan, 1982 
     190      palcn(:,:)  = 0.06            ! Parameterization of Kondratyev, 1969 and Payne, 1972 
     191 
     192      palb (:,:)  = zcoef           ! ice overcast  albedo set to oceanvalue 
     193      palbp(:,:)  = 0.06            ! ice clear sky albedo set to oceanvalue 
     194      ! 
     195   END SUBROUTINE blk_albedo 
    232196 
    233197#endif 
     
    240204      !! 
    241205      !! ** Method  :   Read the namelist namalb 
    242       !! 
    243       !! ** Action  :   
    244       !! 
    245       !! 
    246       !! History : 
    247       !!   9.0  !  04-11  (C. Talandier)  Original code 
    248       !!---------------------------------------------------------------------- 
    249       NAMELIST/namalb/ cgren, albice, alphd, alphdi, alphc 
    250       !!---------------------------------------------------------------------- 
    251       !!  OPA 9.0, LODYC-IPSL (2004) 
    252       !!---------------------------------------------------------------------- 
    253  
    254       ! set the initialization flag to 1 
    255       albd_init = 1           ! indicate that the initialization has been done 
    256  
    257       ! Read Namelist namalb : albedo parameters 
    258       REWIND( numnam ) 
     206      !!---------------------------------------------------------------------- 
     207      ! 
     208      albd_init = 1              ! set the initialization flag to 1 (done) 
     209 
     210      REWIND( numnam )           ! Read Namelist namalb : albedo parameters 
    259211      READ  ( numnam, namalb ) 
    260212 
    261       ! Control print 
    262       IF(lwp) THEN 
     213      IF(lwp) THEN               ! Control print 
    263214         WRITE(numout,*) 
    264          WRITE(numout,*) 'albedo_init : albedo ' 
     215         WRITE(numout,*) 'albedo_init : set albedo parameters from namelist namalb' 
    265216         WRITE(numout,*) '~~~~~~~~~~~' 
    266          WRITE(numout,*) '          Namelist namalb : set albedo parameters' 
    267          WRITE(numout,*) 
    268          WRITE(numout,*) '             correction of the snow or ice albedo to take into account cgren = ', cgren 
    269          WRITE(numout,*) '             albedo of melting ice in the arctic and antarctic        albice = ', albice 
    270          WRITE(numout,*) '             coefficients for linear                                   alphd = ', alphd 
    271          WRITE(numout,*) '             interpolation used to compute albedo                     alphdi = ', alphdi 
    272          WRITE(numout,*) '             between two extremes values (Pyane, 1972)                 alphc = ', alphc 
    273          WRITE(numout,*) 
     217         WRITE(numout,*) '             correction for snow and ice albedo                    cgren  = ', cgren 
     218         WRITE(numout,*) '             albedo of melting ice in the arctic and antarctic     albice = ', albice 
     219         WRITE(numout,*) '             coefficients for linear                               alphd  = ', alphd 
     220         WRITE(numout,*) '             interpolation used to compute albedo                  alphdi = ', alphdi 
     221         WRITE(numout,*) '             between two extremes values (Pyane, 1972)             alphc  = ', alphc 
    274222      ENDIF 
    275  
     223      ! 
    276224   END SUBROUTINE albedo_init 
     225 
    277226   !!====================================================================== 
    278227END MODULE albedo 
Note: See TracChangeset for help on using the changeset viewer.