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 13710 for NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/OCE/SBC/sbcice_cice.F90 – NEMO

Ignore:
Timestamp:
2020-11-02T10:56:42+01:00 (4 years ago)
Author:
emanuelaclementi
Message:

branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves: merge with trunk@13708, see #2155 and #2339

Location:
NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves

    • 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_r12970_AGRIF_CMEMS      ext/AGRIF 
        66^/vendors/FCM@HEAD            ext/FCM 
        77^/vendors/IOIPSL@HEAD         ext/IOIPSL 
        88 
        99# SETTE 
        10 ^/utils/CI/sette@HEAD         sette 
         10^/utils/CI/sette@13559        sette 
  • NEMO/branches/2020/dev_r12702_ASINTER-02_emanuelaclementi_Waves/src/OCE/SBC/sbcice_cice.F90

    r12489 r13710  
    1212   USE oce             ! ocean dynamics and tracers 
    1313   USE dom_oce         ! ocean space and time domain 
     14# if ! defined key_qco 
    1415   USE domvvl 
     16# else 
     17   USE domqco 
     18# endif 
    1519   USE phycst, only : rcp, rho0, r1_rho0, rhos, rhoi 
    1620   USE in_out_manager  ! I/O manager 
     
    213217! T point to U point 
    214218! T point to V point 
    215       DO_2D_10_10 
     219      DO_2D( 1, 0, 1, 0 ) 
    216220         fr_iu(ji,jj)=0.5*(fr_i(ji,jj)+fr_i(ji+1,jj))*umask(ji,jj,1) 
    217221         fr_iv(ji,jj)=0.5*(fr_i(ji,jj)+fr_i(ji,jj+1))*vmask(ji,jj,1) 
    218222      END_2D 
    219223 
    220       CALL lbc_lnk_multi( 'sbcice_cice', fr_iu , 'U', 1.,  fr_iv , 'V', 1. ) 
     224      CALL lbc_lnk_multi( 'sbcice_cice', fr_iu , 'U', 1.0_wp,  fr_iv , 'V', 1.0_wp ) 
    221225 
    222226      ! set the snow+ice mass 
     
    233237!!gm This should be put elsewhere....   (same remark for limsbc) 
    234238!!gm especially here it is assumed zstar coordinate, but it can be ztilde.... 
     239#if defined key_qco 
     240            IF( .NOT.ln_linssh )   CALL dom_qco_zgr( Kbb, Kmm, Kaa )   ! interpolation scale factor, depth and water column 
     241#else 
    235242            IF( .NOT.ln_linssh ) THEN 
    236243               ! 
    237244               DO jk = 1,jpkm1                     ! adjust initial vertical scale factors 
    238                   e3t(:,:,jk,Kmm) = e3t_0(:,:,jk)*( 1._wp + ssh(:,:,Kmm)*tmask(:,:,1)/(ht_0(:,:) + 1.0 - tmask(:,:,1)) ) 
    239                   e3t(:,:,jk,Kbb) = e3t_0(:,:,jk)*( 1._wp + ssh(:,:,Kbb)*tmask(:,:,1)/(ht_0(:,:) + 1.0 - tmask(:,:,1)) ) 
     245                  e3t(:,:,jk,Kmm) = e3t_0(:,:,jk)*( 1._wp + ssh(:,:,Kmm)*r1_ht_0(:,:)*tmask(:,:,jk) ) 
     246                  e3t(:,:,jk,Kbb) = e3t_0(:,:,jk)*( 1._wp + ssh(:,:,Kbb)*r1_ht_0(:,:)*tmask(:,:,jk) ) 
    240247               ENDDO 
    241248               e3t(:,:,:,Krhs) = e3t(:,:,:,Kbb) 
     
    267274               END DO 
    268275            ENDIF 
     276#endif 
    269277         ENDIF 
    270278      ENDIF 
     
    304312! x comp of wind stress (CI_1) 
    305313! U point to F point 
    306          DO_2D_10_11 
     314         DO_2D( 1, 0, 1, 1 ) 
    307315            ztmp(ji,jj) = 0.5 * (  fr_iu(ji,jj) * utau(ji,jj)      & 
    308316                                 + fr_iu(ji,jj+1) * utau(ji,jj+1) ) * fmask(ji,jj,1) 
     
    312320! y comp of wind stress (CI_2) 
    313321! V point to F point 
    314          DO_2D_11_10 
     322         DO_2D( 1, 1, 1, 0 ) 
    315323            ztmp(ji,jj) = 0.5 * (  fr_iv(ji,jj) * vtau(ji,jj)      & 
    316324                                 + fr_iv(ji+1,jj) * vtau(ji+1,jj) ) * fmask(ji,jj,1) 
     
    327335            qla_ice(:,:,1)= - ( emp_ice(:,:)+sprecip(:,:) ) * rLsub 
    328336! End of temporary code 
    329             DO_2D_11_11 
     337            DO_2D( 1, 1, 1, 1 ) 
    330338               IF(fr_i(ji,jj).eq.0.0) THEN 
    331339                  DO jl=1,ncat 
     
    429437! x comp and y comp of surface ocean current 
    430438! U point to F point 
    431       DO_2D_10_11 
     439      DO_2D( 1, 0, 1, 1 ) 
    432440         ztmp(ji,jj)=0.5*(ssu_m(ji,jj)+ssu_m(ji,jj+1))*fmask(ji,jj,1) 
    433441      END_2D 
     
    435443 
    436444! V point to F point 
    437       DO_2D_11_10 
     445      DO_2D( 1, 1, 1, 0 ) 
    438446         ztmp(ji,jj)=0.5*(ssv_m(ji,jj)+ssv_m(ji+1,jj))*fmask(ji,jj,1) 
    439447      END_2D 
     
    459467! x comp and y comp of sea surface slope (on F points) 
    460468! T point to F point 
    461       DO_2D_10_10 
     469      DO_2D( 1, 0, 1, 0 ) 
    462470         ztmp(ji,jj)=0.5 * (  (zpice(ji+1,jj  )-zpice(ji,jj  )) * r1_e1u(ji,jj  )    & 
    463471            &               + (zpice(ji+1,jj+1)-zpice(ji,jj+1)) * r1_e1u(ji,jj+1)  ) * fmask(ji,jj,1) 
     
    466474 
    467475! T point to F point 
    468       DO_2D_10_10 
     476      DO_2D( 1, 0, 1, 0 ) 
    469477         ztmp(ji,jj)=0.5 * (  (zpice(ji  ,jj+1)-zpice(ji  ,jj)) * r1_e2v(ji  ,jj)    & 
    470478            &               + (zpice(ji+1,jj+1)-zpice(ji+1,jj)) * r1_e2v(ji+1,jj)  ) *  fmask(ji,jj,1) 
     
    495503      ss_iou(:,:)=0.0 
    496504! F point to U point 
    497       DO_2D_00_00 
     505      DO_2D( 0, 0, 0, 0 ) 
    498506         ss_iou(ji,jj) = 0.5 * ( ztmp1(ji,jj-1) + ztmp1(ji,jj) ) * umask(ji,jj,1) 
    499507      END_2D 
    500       CALL lbc_lnk( 'sbcice_cice', ss_iou , 'U', -1. ) 
     508      CALL lbc_lnk( 'sbcice_cice', ss_iou , 'U', -1.0_wp ) 
    501509 
    502510! y comp of ocean-ice stress  
     
    505513! F point to V point 
    506514 
    507       DO_2D_10_00 
     515      DO_2D( 1, 0, 0, 0 ) 
    508516         ss_iov(ji,jj) = 0.5 * ( ztmp1(ji-1,jj) + ztmp1(ji,jj) ) * vmask(ji,jj,1) 
    509517      END_2D 
    510       CALL lbc_lnk( 'sbcice_cice', ss_iov , 'V', -1. ) 
     518      CALL lbc_lnk( 'sbcice_cice', ss_iov , 'V', -1.0_wp ) 
    511519 
    512520! x and y comps of surface stress 
     
    561569      fmmflx(:,:) = ztmp1(:,:) !!Joakim edit 
    562570       
    563       CALL lbc_lnk_multi( 'sbcice_cice', emp , 'T', 1., sfx , 'T', 1. ) 
     571      CALL lbc_lnk_multi( 'sbcice_cice', emp , 'T', 1.0_wp, sfx , 'T', 1.0_wp ) 
    564572 
    565573! Solar penetrative radiation and non solar surface heat flux 
     
    587595#endif 
    588596      qsr(:,:)=qsr(:,:)+ztmp1(:,:) 
    589       CALL lbc_lnk( 'sbcice_cice', qsr , 'T', 1. ) 
    590  
    591       DO_2D_11_11 
     597      CALL lbc_lnk( 'sbcice_cice', qsr , 'T', 1.0_wp ) 
     598 
     599      DO_2D( 1, 1, 1, 1 ) 
    592600         nfrzmlt(ji,jj)=MAX(nfrzmlt(ji,jj),0.0) 
    593601      END_2D 
     
    600608      qns(:,:)=qns(:,:)+nfrzmlt(:,:)+ztmp1(:,:) 
    601609 
    602       CALL lbc_lnk( 'sbcice_cice', qns , 'T', 1. ) 
     610      CALL lbc_lnk( 'sbcice_cice', qns , 'T', 1.0_wp ) 
    603611 
    604612! Prepare for the following CICE time-step 
     
    613621! T point to U point 
    614622! T point to V point 
    615       DO_2D_10_10 
     623      DO_2D( 1, 0, 1, 0 ) 
    616624         fr_iu(ji,jj)=0.5*(fr_i(ji,jj)+fr_i(ji+1,jj))*umask(ji,jj,1) 
    617625         fr_iv(ji,jj)=0.5*(fr_i(ji,jj)+fr_i(ji,jj+1))*vmask(ji,jj,1) 
    618626      END_2D 
    619627 
    620       CALL lbc_lnk_multi( 'sbcice_cice', fr_iu , 'U', 1., fr_iv , 'V', 1. ) 
     628      CALL lbc_lnk_multi( 'sbcice_cice', fr_iu , 'U', 1.0_wp, fr_iv , 'V', 1.0_wp ) 
    621629 
    622630      ! set the snow+ice mass 
     
    872880!        pcg(:,:)=0.0 
    873881         DO jn=1,jpnij 
    874             DO jj=nldjt(jn),nlejt(jn) 
    875                DO ji=nldit(jn),nleit(jn) 
     882            DO jj=njs0all(jn),nje0all(jn) 
     883               DO ji=nis0all(jn),nie0all(jn) 
    876884                  png2(ji+nimppt(jn)-1,jj+njmppt(jn)-1)=png(ji,jj,jn) 
    877885               ENDDO 
     
    973981 
    974982      pn(:,:)=0.0 
    975       DO_2D_10_10 
     983      DO_2D( 1, 0, 1, 0 ) 
    976984         pn(ji,jj)=pc(ji+1-ji_off,jj+1-jj_off,1) 
    977985      END_2D 
     
    9931001         png(:,:,:)=0.0 
    9941002         DO jn=1,jpnij 
    995             DO jj=nldjt(jn),nlejt(jn) 
    996                DO ji=nldit(jn),nleit(jn) 
     1003            DO jj=njs0all(jn),nje0all(jn) 
     1004               DO ji=nis0all(jn),nie0all(jn) 
    9971005                  png(ji,jj,jn)=pcg(ji+nimppt(jn)-1-ji_off,jj+njmppt(jn)-1-jj_off) 
    9981006               ENDDO 
Note: See TracChangeset for help on using the changeset viewer.