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 15440 for NEMO/branches/2021/dev_r14383_PISCES_NEWDEV_PISCO/src/ICE/icewri.F90 – NEMO

Ignore:
Timestamp:
2021-10-23T12:18:24+02:00 (3 years ago)
Author:
cetlod
Message:

dev_PISCO : merge with trunk@15439

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2021/dev_r14383_PISCES_NEWDEV_PISCO/src/ICE/icewri.F90

    r15127 r15440  
    2020   USE ice            ! sea-ice: variables 
    2121   USE icevar         ! sea-ice: operations 
     22   USE icealb , ONLY : rn_alb_oce 
    2223   ! 
    2324   USE ioipsl         ! 
     
    5354      REAL(wp) ::   z2da, z2db, zrho1, zrho2 
    5455      REAL(wp) ::   zmiss_val       ! missing value retrieved from xios 
    55       REAL(wp), DIMENSION(jpi,jpj)     ::   z2d, zfast                     ! 2D workspace 
     56      REAL(wp), DIMENSION(jpi,jpj)     ::   z2d                            ! 2D workspace 
    5657      REAL(wp), DIMENSION(jpi,jpj)     ::   zmsk00, zmsk05, zmsk15, zmsksn ! O%, 5% and 15% concentration mask and snow mask 
    5758      REAL(wp), DIMENSION(jpi,jpj,jpl) ::   zmsk00l, zmsksnl               ! cat masks 
     59      REAL(wp), DIMENSION(:,:), ALLOCATABLE ::   zfast, zalb, zmskalb      ! 2D workspace 
    5860      ! 
    5961      ! Global ice diagnostics (SIMIP) 
     
    131133      IF( iom_use('vice'    ) )   CALL iom_put( 'vice'   , v_ice    )                                                       ! ice velocity v 
    132134      ! 
    133       IF( iom_use('icevel') .OR. iom_use('fasticepres') ) THEN                                                              ! module of ice velocity 
     135      IF( iom_use('icevel') .OR. iom_use('fasticepres') ) THEN                                                              ! module of ice velocity & fast ice 
     136         ALLOCATE( zfast(jpi,jpj) ) 
    134137         DO_2D( 0, 0, 0, 0 ) 
    135138            z2da  = u_ice(ji,jj) + u_ice(ji-1,jj) 
     
    144147         END WHERE 
    145148         CALL iom_put( 'fasticepres', zfast ) 
    146       ENDIF 
    147  
     149         DEALLOCATE( zfast ) 
     150      ENDIF 
     151      ! 
     152      IF( iom_use('icealb') .OR. iom_use('albedo') ) THEN                                                                   ! ice albedo and surface albedo 
     153         ALLOCATE( zalb(jpi,jpj), zmskalb(jpi,jpj) ) 
     154         ! ice albedo 
     155         WHERE( at_i_b < 1.e-03 ) 
     156            zmskalb(:,:) = 0._wp 
     157            zalb   (:,:) = rn_alb_oce 
     158         ELSEWHERE 
     159            zmskalb(:,:) = 1._wp 
     160            zalb   (:,:) = SUM( alb_ice * a_i_b, dim=3 ) / at_i_b 
     161         END WHERE 
     162         CALL iom_put( 'icealb' , zalb * zmskalb + zmiss_val * ( 1._wp - zmskalb ) ) 
     163         ! ice+ocean albedo 
     164         zalb(:,:) = SUM( alb_ice * a_i_b, dim=3 ) + rn_alb_oce * ( 1._wp - at_i_b ) 
     165         CALL iom_put( 'albedo' , zalb ) 
     166         DEALLOCATE( zalb, zmskalb ) 
     167      ENDIF 
     168      ! 
    148169      ! --- category-dependent fields --- ! 
    149170      IF( iom_use('icemask_cat' ) )   CALL iom_put( 'icemask_cat' ,                  zmsk00l                                   ) ! ice mask 0% 
Note: See TracChangeset for help on using the changeset viewer.