New URL for NEMO forge!   http://forge.nemo-ocean.eu

Since March 2022 along with NEMO 4.2 release, the code development moved to a self-hosted GitLab.
This present forge is now archived and remained online for history.
Changeset 719 for trunk/NEMO/OPA_SRC/SBC/albedo.F90 – NEMO

Ignore:
Timestamp:
2007-10-16T16:59:56+02:00 (17 years ago)
Author:
ctlod
Message:

get back to the nemo_v2_3 version for trunk

File:
1 edited

Legend:

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

    • Property svn:keywords changed from Id to Author Date Id Revision
    r703 r719  
    44   !! Ocean forcing:  bulk thermohaline forcing of the ocean (or ice) 
    55   !!===================================================================== 
    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    !!---------------------------------------------------------------------- 
     6   !!---------------------------------------------------------------------- 
     7   !!   flx_blk_albedo : albedo for ocean and ice (clear and overcast skies) 
     8   !!---------------------------------------------------------------------- 
     9   !! * Modules used 
    1610   USE oce             ! ocean dynamics and tracers 
     11   USE dom_oce         ! ocean space and time domain 
     12   USE cpl_oce         ! ??? 
    1713   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 
    1920 
    2021   IMPLICIT NONE 
    2122   PRIVATE 
    2223 
    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 
     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) 
    3536   REAL(wp) ::   & 
     37      c1     = 0.05  ,     &   ! constants values 
     38      c2     = 0.10  ,     & 
     39      albice = 0.50  ,     &   !  albedo of melting ice in the arctic and antarctic (Shine & Hendersson-Sellers) 
    3640      cgren  = 0.06  ,     &   !  correction of the snow or ice albedo to take into account 
    37       !                        !  effects of cloudiness (Grenfell & Perovich, 1984) 
    38       albice = 0.50  ,     &   !  albedo of melting ice in the arctic and antarctic (Shine & Hendersson-Sellers) 
     41                               !  effects of cloudiness (Grenfell & Perovich, 1984) 
    3942      alphd  = 0.80  ,     &   !  coefficients for linear interpolation used to compute 
    4043      alphdi = 0.72  ,     &   !  albedo between two extremes values (Pyane, 1972) 
    41       alphc  = 0.65  
    42    NAMELIST/namalb/ cgren, albice, alphd, alphdi, alphc 
    43  
    44    !!---------------------------------------------------------------------- 
    45    !!   OPA 9.0 , LOCEAN-IPSL (2006)  
    46    !! $Id$ 
    47    !! Software governed by the CeCILL licence (modipsl/doc/NEMO_CeCILL.txt) 
     44      alphc  = 0.65  ,     & 
     45      zmue   = 0.40            !  cosine of local solar altitude 
     46 
     47   !!---------------------------------------------------------------------- 
     48   !!   OPA 9.0 , LOCEAN-IPSL (2005)  
     49   !! $Header$  
     50   !! This software is governed by the CeCILL licence see modipsl/doc/NEMO_CeCILL.txt  
    4851   !!---------------------------------------------------------------------- 
    4952 
     
    5558   !!---------------------------------------------------------------------- 
    5659 
    57    SUBROUTINE blk_albedo( palb , palcn , palbp , palcnp ) 
    58       !!---------------------------------------------------------------------- 
    59       !!               ***  ROUTINE blk_albedo  *** 
     60   SUBROUTINE flx_blk_albedo( palb , palcn , palbp , palcnp ) 
     61      !!---------------------------------------------------------------------- 
     62      !!               ***  ROUTINE flx_blk_albedo  *** 
    6063      !!           
    6164      !! ** Purpose :   Computation of the albedo of the snow/ice system  
    62       !!                as well as the ocean one 
     65      !!      as well as the ocean one 
    6366      !!        
    6467      !! ** Method  : - Computation of the albedo of snow or ice (choose the  
    65       !!                rignt one by a large number of tests 
     68      !!      rignt one by a large number of tests 
    6669      !!              - Computation of the albedo of the ocean 
    6770      !! 
    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 
     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 
    7993         zalbpsnm       ,     &   !  albedo of ice under clear sky when snow is melting 
    8094         zalbpsnf       ,     &   !  albedo of ice under clear sky when snow is freezing 
     
    8599         zihsc1         ,     &   !  = 1 hsn <= c1 ; = 0 hsn > c1 
    86100         zihsc2                   !  = 1 hsn >= c2 ; = 0 hsn < c2 
    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 
     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 
    90106      !!--------------------------------------------------------------------- 
    91107       
    92       IF( albd_init == 0 )   CALL albedo_init      ! initialization  
    93  
    94       !--------------------------- 
     108      ! initialization  
     109      IF( albd_init == 0 )   CALL albedo_init 
     110 
     111      !-------------------------                                                              
    95112      !  Computation of  zficeth 
    96       !--------------------------- 
     113      !--------------------------  
    97114       
    98115      llmask = (hsnif == 0.e0) .AND. ( sist >= rt0_ice ) 
     
    158175      !-------------------------- -----------------                                                           
    159176       
    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 
     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 
    165185 
    166186# else 
     
    169189   !!---------------------------------------------------------------------- 
    170190 
    171    SUBROUTINE blk_albedo( palb , palcn , palbp , palcnp ) 
    172       !!---------------------------------------------------------------------- 
    173       !!               ***  ROUTINE blk_albedo  *** 
     191   SUBROUTINE flx_blk_albedo( palb , palcn , palbp , palcnp ) 
     192      !!---------------------------------------------------------------------- 
     193      !!               ***  ROUTINE flx_blk_albedo  *** 
    174194      !!  
    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 
     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 
    196232 
    197233#endif 
     
    204240      !! 
    205241      !! ** Method  :   Read the namelist namalb 
    206       !!---------------------------------------------------------------------- 
    207       ! 
    208       albd_init = 1              ! set the initialization flag to 1 (done) 
    209  
    210       REWIND( numnam )           ! Read Namelist namalb : albedo parameters 
     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 ) 
    211259      READ  ( numnam, namalb ) 
    212260 
    213       IF(lwp) THEN               ! Control print 
     261      ! Control print 
     262      IF(lwp) THEN 
    214263         WRITE(numout,*) 
    215          WRITE(numout,*) 'albedo_init : set albedo parameters from namelist namalb' 
     264         WRITE(numout,*) 'albedo_init : albedo ' 
    216265         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 
     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,*) 
    222274      ENDIF 
    223       ! 
     275 
    224276   END SUBROUTINE albedo_init 
    225  
    226277   !!====================================================================== 
    227278END MODULE albedo 
Note: See TracChangeset for help on using the changeset viewer.