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 12377 for NEMO/trunk/src/ICE/icealb.F90 – NEMO

Ignore:
Timestamp:
2020-02-12T15:39:06+01:00 (4 years ago)
Author:
acc
Message:

The big one. Merging all 2019 developments from the option 1 branch back onto the trunk.

This changeset reproduces 2019/dev_r11943_MERGE_2019 on the trunk using a 2-URL merge
onto a working copy of the trunk. I.e.:

svn merge --ignore-ancestry \

svn+ssh://acc@forge.ipsl.jussieu.fr/ipsl/forge/projets/nemo/svn/NEMO/trunk \
svn+ssh://acc@forge.ipsl.jussieu.fr/ipsl/forge/projets/nemo/svn/NEMO/branches/2019/dev_r11943_MERGE_2019 ./

The --ignore-ancestry flag avoids problems that may otherwise arise from the fact that
the merge history been trunk and branch may have been applied in a different order but
care has been taken before this step to ensure that all applicable fixes and updates
are present in the merge branch.

The trunk state just before this step has been branched to releases/release-4.0-HEAD
and that branch has been immediately tagged as releases/release-4.0.2. Any fixes
or additions in response to tickets on 4.0, 4.0.1 or 4.0.2 should be done on
releases/release-4.0-HEAD. From now on future 'point' releases (e.g. 4.0.2) will
remain unchanged with periodic releases as needs demand. Note release-4.0-HEAD is a
transitional naming convention. Future full releases, say 4.2, will have a release-4.2
branch which fulfills this role and the first point release (e.g. 4.2.0) will be made
immediately following the release branch creation.

2020 developments can be started from any trunk revision later than this one.

Location:
NEMO/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • NEMO/trunk

    • Property svn:externals
      •  

        old new  
        33^/utils/build/mk@HEAD         mk 
        44^/utils/tools@HEAD            tools 
        5 ^/vendors/AGRIF/dev@HEAD      ext/AGRIF 
         5^/vendors/AGRIF/dev_r11615_ENHANCE-04_namelists_as_internalfiles_agrif@HEAD      ext/AGRIF 
        66^/vendors/FCM@HEAD            ext/FCM 
        77^/vendors/IOIPSL@HEAD         ext/IOIPSL 
  • NEMO/trunk/src/ICE/icealb.F90

    r11536 r12377  
    3838   REAL(wp) ::   rn_alb_dpnd      ! ponded ice albedo 
    3939 
     40   !! * Substitutions 
     41#  include "do_loop_substitute.h90" 
    4042   !!---------------------------------------------------------------------- 
    4143   !! NEMO/ICE 4.0 , NEMO Consortium (2018) 
     
    117119      ! 
    118120      DO jl = 1, jpl 
    119          DO jj = 1, jpj 
    120             DO ji = 1, jpi 
    121                !                       !--- Specific snow, ice and pond fractions (for now, we prevent melt ponds and snow at the same time) 
    122                IF( ph_snw(ji,jj,jl) == 0._wp ) THEN 
    123                   zafrac_snw = 0._wp 
    124                   IF( ld_pnd_alb ) THEN 
    125                      zafrac_pnd = pafrac_pnd(ji,jj,jl) 
    126                   ELSE 
    127                      zafrac_pnd = 0._wp 
    128                   ENDIF 
    129                   zafrac_ice = 1._wp - zafrac_pnd 
     121         DO_2D_11_11 
     122            !                       !--- Specific snow, ice and pond fractions (for now, we prevent melt ponds and snow at the same time) 
     123            IF( ph_snw(ji,jj,jl) == 0._wp ) THEN 
     124               zafrac_snw = 0._wp 
     125               IF( ld_pnd_alb ) THEN 
     126                  zafrac_pnd = pafrac_pnd(ji,jj,jl) 
    130127               ELSE 
    131                   zafrac_snw = 1._wp      ! Snow fully "shades" melt ponds and ice 
    132128                  zafrac_pnd = 0._wp 
    133                   zafrac_ice = 0._wp 
    134129               ENDIF 
    135                ! 
    136                !                       !--- Bare ice albedo (for hi > 150cm) 
    137                IF( ld_pnd_alb ) THEN 
    138                   zalb_ice = rn_alb_idry 
    139                ELSE 
    140                   IF( ph_snw(ji,jj,jl) == 0._wp .AND. pt_su(ji,jj,jl) >= rt0 ) THEN  ;   zalb_ice = rn_alb_imlt 
    141                   ELSE                                                               ;   zalb_ice = rn_alb_idry   ;   ENDIF 
    142                ENDIF 
    143                !                       !--- Bare ice albedo (for hi < 150cm) 
    144                IF( 0.05 < ph_ice(ji,jj,jl) .AND. ph_ice(ji,jj,jl) <= 1.5 ) THEN      ! 5cm < hi < 150cm 
    145                   zalb_ice = zalb_ice    + ( 0.18 - zalb_ice   ) * z1_c1 * ( LOG(1.5) - LOG(ph_ice(ji,jj,jl)) ) 
    146                ELSEIF( ph_ice(ji,jj,jl) <= 0.05 ) THEN                               ! 0cm < hi < 5cm 
    147                   zalb_ice = rn_alb_oce  + ( 0.18 - rn_alb_oce ) * z1_c2 * ph_ice(ji,jj,jl) 
    148                ENDIF 
    149                ! 
    150                !                       !--- Snow-covered ice albedo (freezing, melting cases) 
    151                IF( pt_su(ji,jj,jl) < rt0 ) THEN 
    152                   zalb_snw = rn_alb_sdry - ( rn_alb_sdry - zalb_ice ) * EXP( - ph_snw(ji,jj,jl) * z1_c3 ) 
    153                ELSE 
    154                   zalb_snw = rn_alb_smlt - ( rn_alb_smlt - zalb_ice ) * EXP( - ph_snw(ji,jj,jl) * z1_c4 ) 
    155                ENDIF 
    156                !                       !--- Ponded ice albedo 
    157                IF( ld_pnd_alb ) THEN 
    158                   zalb_pnd = rn_alb_dpnd - ( rn_alb_dpnd - zalb_ice ) * EXP( - ph_pnd(ji,jj,jl) * z1_href_pnd )  
    159                ELSE 
    160                   zalb_pnd = rn_alb_dpnd 
    161                ENDIF 
    162                !                       !--- Surface albedo is weighted mean of snow, ponds and bare ice contributions 
    163                palb_os(ji,jj,jl) = ( zafrac_snw * zalb_snw + zafrac_pnd * zalb_pnd + zafrac_ice * zalb_ice ) * tmask(ji,jj,1) 
    164                ! 
    165                palb_cs(ji,jj,jl) = palb_os(ji,jj,jl)  & 
    166                   &                - ( - 0.1010 * palb_os(ji,jj,jl) * palb_os(ji,jj,jl)  & 
    167                   &                    + 0.1933 * palb_os(ji,jj,jl) - 0.0148 ) * tmask(ji,jj,1) 
    168                ! 
    169             END DO 
    170          END DO 
     130               zafrac_ice = 1._wp - zafrac_pnd 
     131            ELSE 
     132               zafrac_snw = 1._wp      ! Snow fully "shades" melt ponds and ice 
     133               zafrac_pnd = 0._wp 
     134               zafrac_ice = 0._wp 
     135            ENDIF 
     136            ! 
     137            !                       !--- Bare ice albedo (for hi > 150cm) 
     138            IF( ld_pnd_alb ) THEN 
     139               zalb_ice = rn_alb_idry 
     140            ELSE 
     141               IF( ph_snw(ji,jj,jl) == 0._wp .AND. pt_su(ji,jj,jl) >= rt0 ) THEN  ;   zalb_ice = rn_alb_imlt 
     142               ELSE                                                               ;   zalb_ice = rn_alb_idry   ;   ENDIF 
     143            ENDIF 
     144            !                       !--- Bare ice albedo (for hi < 150cm) 
     145            IF( 0.05 < ph_ice(ji,jj,jl) .AND. ph_ice(ji,jj,jl) <= 1.5 ) THEN      ! 5cm < hi < 150cm 
     146               zalb_ice = zalb_ice    + ( 0.18 - zalb_ice   ) * z1_c1 * ( LOG(1.5) - LOG(ph_ice(ji,jj,jl)) ) 
     147            ELSEIF( ph_ice(ji,jj,jl) <= 0.05 ) THEN                               ! 0cm < hi < 5cm 
     148               zalb_ice = rn_alb_oce  + ( 0.18 - rn_alb_oce ) * z1_c2 * ph_ice(ji,jj,jl) 
     149            ENDIF 
     150            ! 
     151            !                       !--- Snow-covered ice albedo (freezing, melting cases) 
     152            IF( pt_su(ji,jj,jl) < rt0 ) THEN 
     153               zalb_snw = rn_alb_sdry - ( rn_alb_sdry - zalb_ice ) * EXP( - ph_snw(ji,jj,jl) * z1_c3 ) 
     154            ELSE 
     155               zalb_snw = rn_alb_smlt - ( rn_alb_smlt - zalb_ice ) * EXP( - ph_snw(ji,jj,jl) * z1_c4 ) 
     156            ENDIF 
     157            !                       !--- Ponded ice albedo 
     158            IF( ld_pnd_alb ) THEN 
     159               zalb_pnd = rn_alb_dpnd - ( rn_alb_dpnd - zalb_ice ) * EXP( - ph_pnd(ji,jj,jl) * z1_href_pnd )  
     160            ELSE 
     161               zalb_pnd = rn_alb_dpnd 
     162            ENDIF 
     163            !                       !--- Surface albedo is weighted mean of snow, ponds and bare ice contributions 
     164            palb_os(ji,jj,jl) = ( zafrac_snw * zalb_snw + zafrac_pnd * zalb_pnd + zafrac_ice * zalb_ice ) * tmask(ji,jj,1) 
     165            ! 
     166            palb_cs(ji,jj,jl) = palb_os(ji,jj,jl)  & 
     167               &                - ( - 0.1010 * palb_os(ji,jj,jl) * palb_os(ji,jj,jl)  & 
     168               &                    + 0.1933 * palb_os(ji,jj,jl) - 0.0148 ) * tmask(ji,jj,1) 
     169            ! 
     170         END_2D 
    171171      END DO 
    172172      ! 
     
    190190      !!---------------------------------------------------------------------- 
    191191      ! 
    192       REWIND( numnam_ice_ref )              ! Namelist namalb in reference namelist : Albedo parameters 
    193192      READ  ( numnam_ice_ref, namalb, IOSTAT = ios, ERR = 901) 
    194193901   IF( ios /= 0 )   CALL ctl_nam ( ios , 'namalb in reference namelist' ) 
    195       REWIND( numnam_ice_cfg )              ! Namelist namalb in configuration namelist : Albedo parameters 
    196194      READ  ( numnam_ice_cfg, namalb, IOSTAT = ios, ERR = 902 ) 
    197195902   IF( ios >  0 )   CALL ctl_nam ( ios , 'namalb in configuration namelist' ) 
Note: See TracChangeset for help on using the changeset viewer.