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 11380 for NEMO/branches/2019/dev_r10984_HPC-13_IRRMANN_DYN_optimization/src/ICE/icesbc.F90 – NEMO

Ignore:
Timestamp:
2019-07-31T15:56:02+02:00 (5 years ago)
Author:
girrmann
Message:

dev_r10984_HPC-13 : adding extra halos in dyn_spg_ts is now possible, only works with a single halo when used with tide or bdy, see #2308

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2019/dev_r10984_HPC-13_IRRMANN_DYN_optimization/src/ICE/icesbc.F90

    r11371 r11380  
    114114      INTEGER, INTENT(in) ::   ksbc   ! flux formulation (user defined, bulk or Pure Coupled) 
    115115      ! 
    116       INTEGER  ::   ji, jj, jl      ! dummy loop index 
    117       REAL(wp) ::   zmiss_val       ! missing value retrieved from xios  
    118       REAL(wp), DIMENSION(jpi,jpj,jpl)              ::   zalb_os, zalb_cs  ! ice albedo under overcast/clear sky 
    119       REAL(wp), DIMENSION(:,:)        , ALLOCATABLE ::   zalb, zmsk00      ! 2D workspace 
     116      INTEGER  ::   ji, jj, jl                                ! dummy loop index 
     117      REAL(wp), DIMENSION(jpi,jpj,jpl) ::   zalb_os, zalb_cs  ! ice albedo under overcast/clear sky 
     118      REAL(wp), DIMENSION(jpi,jpj)     ::   zalb              ! 2D workspace 
    120119      !!-------------------------------------------------------------------- 
    121120      ! 
     
    127126         WRITE(numout,*)'~~~~~~~~~~~~~~~' 
    128127      ENDIF 
    129  
    130       ! get missing value from xml 
    131       CALL iom_miss_val( "icetemp", zmiss_val ) 
    132128 
    133129      ! --- cloud-sky and overcast-sky ice albedos --- ! 
     
    156152 
    157153      !--- output ice albedo and surface albedo ---! 
    158       IF( iom_use('icealb') .OR. iom_use('albedo') ) THEN 
    159  
    160          ALLOCATE( zalb(jpi,jpj), zmsk00(jpi,jpj) ) 
    161  
    162          WHERE( at_i_b <= epsi06 ) 
    163             zmsk00(:,:) = 0._wp 
    164             zalb  (:,:) = rn_alb_oce 
    165          ELSEWHERE 
    166             zmsk00(:,:) = 1._wp             
    167             zalb  (:,:) = SUM( alb_ice * a_i_b, dim=3 ) / at_i_b 
     154      IF( iom_use('icealb') ) THEN 
     155         WHERE( at_i_b <= epsi06 )   ;   zalb(:,:) = rn_alb_oce 
     156         ELSEWHERE                   ;   zalb(:,:) = SUM( alb_ice * a_i_b, dim=3 ) / at_i_b 
    168157         END WHERE 
    169          ! ice albedo 
    170          CALL iom_put( 'icealb' , zalb * zmsk00 + zmiss_val * ( 1._wp - zmsk00 ) ) 
    171          ! ice+ocean albedo 
     158         CALL iom_put( "icealb" , zalb(:,:) ) 
     159      ENDIF 
     160      IF( iom_use('albedo') ) THEN 
    172161         zalb(:,:) = SUM( alb_ice * a_i_b, dim=3 ) + rn_alb_oce * ( 1._wp - at_i_b ) 
    173          CALL iom_put( 'albedo' , zalb ) 
    174  
    175          DEALLOCATE( zalb, zmsk00 ) 
    176  
     162         CALL iom_put( "albedo" , zalb(:,:) ) 
    177163      ENDIF 
    178164      ! 
Note: See TracChangeset for help on using the changeset viewer.