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 13662 for NEMO/branches/2019/dev_r11842_SI3-10_EAP/src/ICE/icecor.F90 – NEMO

Ignore:
Timestamp:
2020-10-22T20:49:56+02:00 (4 years ago)
Author:
clem
Message:

update to almost r4.0.4

Location:
NEMO/branches/2019/dev_r11842_SI3-10_EAP
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2019/dev_r11842_SI3-10_EAP

    • Property svn:externals
      •  

        old new  
        1 ^/utils/build/arch@HEAD       arch 
        2 ^/utils/build/makenemo@HEAD   makenemo 
        3 ^/utils/build/mk@HEAD         mk 
        4 ^/utils/tools@HEAD            tools 
        5 ^/vendors/AGRIF/dev@HEAD      ext/AGRIF 
        6 ^/vendors/FCM@HEAD            ext/FCM 
        7 ^/vendors/IOIPSL@HEAD         ext/IOIPSL 
         1^/utils/build/arch@12130      arch 
         2^/utils/build/makenemo@12191  makenemo 
         3^/utils/build/mk@11662        mk 
         4^/utils/tools_r4.0-HEAD@12672 tools 
         5^/vendors/AGRIF/dev@10586     ext/AGRIF 
         6^/vendors/FCM@10134           ext/FCM 
         7^/vendors/IOIPSL@9655         ext/IOIPSL 
         8 
         9# SETTE mapping (inactive) 
         10#^/utils/CI/sette@12135        sette 
  • NEMO/branches/2019/dev_r11842_SI3-10_EAP/src/ICE/icecor.F90

    r11536 r13662  
    5555      INTEGER  ::   ji, jj, jk, jl   ! dummy loop indices 
    5656      REAL(wp) ::   zsal, zzc 
    57       REAL(wp), DIMENSION(jpi,jpj) ::   zafx   ! concentration trends diag 
    5857      !!---------------------------------------------------------------------- 
    5958      ! controls 
     
    8180      DO jl = 1, jpl 
    8281         WHERE( at_i(:,:) > rn_amax_2d(:,:) )   a_i(:,:,jl) = a_i(:,:,jl) * rn_amax_2d(:,:) / at_i(:,:) 
    83       END DO 
    84      
     82      END DO     
     83      !                             !----------------------------------------------------- 
     84      !                             !  Rebin categories with thickness out of bounds     ! 
     85      !                             !----------------------------------------------------- 
     86      IF ( jpl > 1 )   CALL ice_itd_reb( kt ) 
     87      ! 
    8588      !                             !----------------------------------------------------- 
    8689      IF ( nn_icesal == 2 ) THEN    !  salinity must stay in bounds [Simin,Simax]        ! 
     
    9295                  zsal = sv_i(ji,jj,jl) 
    9396                  sv_i(ji,jj,jl) = MIN(  MAX( rn_simin*v_i(ji,jj,jl) , sv_i(ji,jj,jl) ) , rn_simax*v_i(ji,jj,jl)  ) 
    94                   sfx_res(ji,jj) = sfx_res(ji,jj) - ( sv_i(ji,jj,jl) - zsal ) * zzc   ! associated salt flux 
     97                  IF( kn /= 0 ) & ! no ice-ocean exchanges if kn=0 (for bdy for instance) otherwise conservation diags will fail 
     98                     &   sfx_res(ji,jj) = sfx_res(ji,jj) - ( sv_i(ji,jj,jl) - zsal ) * zzc   ! associated salt flux 
    9599               END DO 
    96100            END DO 
    97101         END DO 
    98102      ENDIF 
    99       !                             !----------------------------------------------------- 
    100       !                             !  Rebin categories with thickness out of bounds     ! 
    101       !                             !----------------------------------------------------- 
    102       IF ( jpl > 1 )   CALL ice_itd_reb( kt ) 
    103103 
    104       !                             !----------------------------------------------------- 
    105       CALL ice_var_zapsmall         !  Zap small values                                  ! 
    106       !                             !----------------------------------------------------- 
    107  
     104      IF( kn /= 0 ) THEN   ! no zapsmall if kn=0 (for bdy for instance) because we do not want ice-ocean exchanges (wfx,sfx,hfx) 
     105         !                                                              otherwise conservation diags will fail 
     106         !                          !----------------------------------------------------- 
     107         CALL ice_var_zapsmall      !  Zap small values                                  ! 
     108         !                          !----------------------------------------------------- 
     109      ENDIF 
    108110      !                             !----------------------------------------------------- 
    109111      IF( kn == 2 ) THEN            !  Ice drift case: Corrections to avoid wrong values ! 
     
    118120            END DO 
    119121         END DO 
    120          CALL lbc_lnk_multi( 'icecor', u_ice, 'U', -1., v_ice, 'V', -1. ) 
     122         CALL lbc_lnk_multi( 'icecor', u_ice, 'U', -1._wp, v_ice, 'V', -1._wp ) 
    121123      ENDIF 
    122  
    123       !                             !----------------------------------------------------- 
    124       SELECT CASE( kn )             !  Diagnostics                                       ! 
    125       !                             !----------------------------------------------------- 
    126       CASE( 1 )                        !--- dyn trend diagnostics 
    127          ! 
    128          IF( ln_icediachk .OR. iom_use('hfxdhc') ) THEN 
    129             diag_heat(:,:) = - SUM(SUM( e_i (:,:,1:nlay_i,:) - e_i_b (:,:,1:nlay_i,:), dim=4 ), dim=3 ) * r1_rdtice &      ! W.m-2 
    130                &             - SUM(SUM( e_s (:,:,1:nlay_s,:) - e_s_b (:,:,1:nlay_s,:), dim=4 ), dim=3 ) * r1_rdtice 
    131             diag_sice(:,:) =   SUM(     sv_i(:,:,:)          - sv_i_b(:,:,:)                  , dim=3 ) * r1_rdtice * rhoi 
    132             diag_vice(:,:) =   SUM(     v_i (:,:,:)          - v_i_b (:,:,:)                  , dim=3 ) * r1_rdtice * rhoi 
    133             diag_vsnw(:,:) =   SUM(     v_s (:,:,:)          - v_s_b (:,:,:)                  , dim=3 ) * r1_rdtice * rhos 
    134          ENDIF 
    135          !                       ! concentration tendency (dynamics) 
    136          IF( iom_use('afxdyn') .OR. iom_use('afxthd') .OR. iom_use('afxtot') ) THEN  
    137             zafx(:,:) = SUM( a_i(:,:,:) - a_i_b(:,:,:), dim=3 ) * r1_rdtice  
    138             CALL iom_put( 'afxdyn' , zafx ) 
    139          ENDIF 
    140          ! 
    141       CASE( 2 )                        !--- thermo trend diagnostics & ice aging 
    142          ! 
    143          oa_i(:,:,:) = oa_i(:,:,:) + a_i(:,:,:) * rdt_ice   ! ice natural aging incrementation 
    144          ! 
    145          IF( ln_icediachk .OR. iom_use('hfxdhc') ) THEN 
    146             diag_heat(:,:) = diag_heat(:,:) & 
    147                &             - SUM(SUM( e_i (:,:,1:nlay_i,:) - e_i_b (:,:,1:nlay_i,:), dim=4 ), dim=3 ) * r1_rdtice & 
    148                &             - SUM(SUM( e_s (:,:,1:nlay_s,:) - e_s_b (:,:,1:nlay_s,:), dim=4 ), dim=3 ) * r1_rdtice 
    149             diag_sice(:,:) = diag_sice(:,:) & 
    150                &             + SUM(     sv_i(:,:,:)          - sv_i_b(:,:,:)                  , dim=3 ) * r1_rdtice * rhoi 
    151             diag_vice(:,:) = diag_vice(:,:) & 
    152                &             + SUM(     v_i (:,:,:)          - v_i_b (:,:,:)                  , dim=3 ) * r1_rdtice * rhoi 
    153             diag_vsnw(:,:) = diag_vsnw(:,:) & 
    154                &             + SUM(     v_s (:,:,:)          - v_s_b (:,:,:)                  , dim=3 ) * r1_rdtice * rhos 
    155             CALL iom_put ( 'hfxdhc' , diag_heat )  
    156          ENDIF 
    157          !                       ! concentration tendency (total + thermo) 
    158          IF( iom_use('afxdyn') .OR. iom_use('afxthd') .OR. iom_use('afxtot') ) THEN  
    159             zafx(:,:) = zafx(:,:) + SUM( a_i(:,:,:) - a_i_b(:,:,:), dim=3 ) * r1_rdtice 
    160             CALL iom_put( 'afxthd' , SUM( a_i(:,:,:) - a_i_b(:,:,:), dim=3 ) * r1_rdtice ) 
    161             CALL iom_put( 'afxtot' , zafx ) 
    162          ENDIF 
    163          ! 
    164       END SELECT 
    165124      ! 
    166125      ! controls 
Note: See TracChangeset for help on using the changeset viewer.