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

Ignore:
Timestamp:
2018-12-18T18:59:59+01:00 (5 years ago)
Author:
clem
Message:

merge dev_r9947_SI3_advection with the trunk. All sette tests passed. There is probably a conservation issue with the new advection scheme that I should solve but the routine icedyn_adv_umx.F90 is going to change anyway in the next couple of weeks. At worst, the old routine can be plugged without harm

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/trunk/src/ICE/icevar.F90

    r10332 r10413  
    557557      !!------------------------------------------------------------------- 
    558558      ! 
     559      ! 
     560      DO jl = 1, jpl       !==  loop over the categories  ==! 
     561         ! 
     562         !---------------------------------------- 
     563         ! zap ice energy and send it to the ocean 
     564         !---------------------------------------- 
     565         DO jk = 1, nlay_i 
     566            DO jj = 1 , jpj 
     567               DO ji = 1 , jpi 
     568                  IF( pe_i(ji,jj,jk,jl) < 0._wp .OR. pa_i(ji,jj,jl) < 0._wp ) THEN 
     569                     hfx_res(ji,jj)   = hfx_res(ji,jj) - pe_i(ji,jj,jk,jl) * r1_rdtice ! W.m-2 <0 
     570                     pe_i(ji,jj,jk,jl) = 0._wp 
     571                  ENDIF 
     572               END DO 
     573            END DO 
     574         END DO 
     575         ! 
     576         DO jk = 1, nlay_s 
     577            DO jj = 1 , jpj 
     578               DO ji = 1 , jpi 
     579                  IF( pe_s(ji,jj,jk,jl) < 0._wp .OR. pa_i(ji,jj,jl) < 0._wp ) THEN 
     580                     hfx_res(ji,jj)   = hfx_res(ji,jj) - pe_s(ji,jj,jk,jl) * r1_rdtice ! W.m-2 <0 
     581                     pe_s(ji,jj,jk,jl) = 0._wp 
     582                  ENDIF 
     583               END DO 
     584            END DO 
     585         END DO 
     586         ! 
     587         !----------------------------------------------------- 
     588         ! zap ice and snow volume, add water and salt to ocean 
     589         !----------------------------------------------------- 
     590         DO jj = 1 , jpj 
     591            DO ji = 1 , jpi 
     592               IF( pv_i(ji,jj,jl) < 0._wp .OR. pa_i(ji,jj,jl) < 0._wp ) THEN 
     593                  wfx_res(ji,jj)    = wfx_res(ji,jj) + pv_i (ji,jj,jl) * rhoi * r1_rdtice 
     594                  pv_i   (ji,jj,jl) = 0._wp 
     595               ENDIF 
     596               IF( pv_s(ji,jj,jl) < 0._wp .OR. pa_i(ji,jj,jl) < 0._wp ) THEN 
     597                  wfx_res(ji,jj)    = wfx_res(ji,jj) + pv_s (ji,jj,jl) * rhos * r1_rdtice 
     598                  pv_s   (ji,jj,jl) = 0._wp 
     599               ENDIF 
     600               IF( psv_i(ji,jj,jl) < 0._wp .OR. pa_i(ji,jj,jl) < 0._wp ) THEN 
     601                  sfx_res(ji,jj)    = sfx_res(ji,jj) + psv_i(ji,jj,jl) * rhoi * r1_rdtice 
     602                  psv_i  (ji,jj,jl) = 0._wp 
     603               ENDIF 
     604            END DO 
     605         END DO 
     606         ! 
     607      END DO  
     608      ! 
    559609      WHERE( pato_i(:,:)   < 0._wp )   pato_i(:,:)   = 0._wp 
    560610      WHERE( poa_i (:,:,:) < 0._wp )   poa_i (:,:,:) = 0._wp 
     
    563613      WHERE( pv_ip (:,:,:) < 0._wp )   pv_ip (:,:,:) = 0._wp ! in theory one should change wfx_pnd(-) and wfx_sum(+) 
    564614      !                                                        but it does not change conservation, so keep it this way is ok 
    565       ! 
    566       DO jl = 1, jpl       !==  loop over the categories  ==! 
    567          ! 
    568          !---------------------------------------- 
    569          ! zap ice energy and send it to the ocean 
    570          !---------------------------------------- 
    571          DO jk = 1, nlay_i 
    572             DO jj = 1 , jpj 
    573                DO ji = 1 , jpi 
    574                   IF( pe_i(ji,jj,jk,jl) < 0._wp ) THEN 
    575                      hfx_res(ji,jj)   = hfx_res(ji,jj) - pe_i(ji,jj,jk,jl) * r1_rdtice ! W.m-2 <0 
    576                      pe_i(ji,jj,jk,jl) = 0._wp 
    577                   ENDIF 
    578                END DO 
    579             END DO 
    580          END DO 
    581          ! 
    582          DO jk = 1, nlay_s 
    583             DO jj = 1 , jpj 
    584                DO ji = 1 , jpi 
    585                   IF( pe_s(ji,jj,jk,jl) < 0._wp ) THEN 
    586                      hfx_res(ji,jj)   = hfx_res(ji,jj) - pe_s(ji,jj,jk,jl) * r1_rdtice ! W.m-2 <0 
    587                      pe_s(ji,jj,jk,jl) = 0._wp 
    588                   ENDIF 
    589                END DO 
    590             END DO 
    591          END DO 
    592          ! 
    593          !----------------------------------------------------- 
    594          ! zap ice and snow volume, add water and salt to ocean 
    595          !----------------------------------------------------- 
    596          DO jj = 1 , jpj 
    597             DO ji = 1 , jpi 
    598               IF( pv_i(ji,jj,jl) < 0._wp ) THEN 
    599                   wfx_res(ji,jj)    = wfx_res(ji,jj) + pv_i (ji,jj,jl) * rhoi * r1_rdtice 
    600                   pv_i   (ji,jj,jl) = 0._wp 
    601                ENDIF 
    602                IF( pv_s(ji,jj,jl) < 0._wp ) THEN 
    603                   wfx_res(ji,jj)    = wfx_res(ji,jj) + pv_s (ji,jj,jl) * rhos * r1_rdtice 
    604                   pv_s   (ji,jj,jl) = 0._wp 
    605                ENDIF 
    606                IF( psv_i(ji,jj,jl) < 0._wp ) THEN 
    607                   sfx_res(ji,jj)    = sfx_res(ji,jj) + psv_i(ji,jj,jl) * rhoi * r1_rdtice 
    608                   psv_i  (ji,jj,jl) = 0._wp 
    609                ENDIF 
    610             END DO 
    611          END DO 
    612          ! 
    613       END DO  
    614615      ! 
    615616   END SUBROUTINE ice_var_zapneg 
Note: See TracChangeset for help on using the changeset viewer.