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 14789 for NEMO/branches/2021/dev_r13747_HPC-11_mcastril_HPDAonline_DiagGPU/src/ABL/ablmod.F90 – NEMO

Ignore:
Timestamp:
2021-05-05T13:18:04+02:00 (3 years ago)
Author:
mcastril
Message:

[2021/HPC-11_mcastril_HPDAonline_DiagGPU] Update externals

Location:
NEMO/branches/2021/dev_r13747_HPC-11_mcastril_HPDAonline_DiagGPU
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2021/dev_r13747_HPC-11_mcastril_HPDAonline_DiagGPU

    • Property svn:externals
      •  

        old new  
        33^/utils/build/mk@HEAD         mk 
        44^/utils/tools@HEAD            tools 
        5 ^/vendors/AGRIF/dev_r12970_AGRIF_CMEMS      ext/AGRIF 
         5^/vendors/AGRIF/dev@HEAD      ext/AGRIF 
        66^/vendors/FCM@HEAD            ext/FCM 
        77^/vendors/IOIPSL@HEAD         ext/IOIPSL 
         8^/vendors/PPR@HEAD            ext/PPR 
        89 
        910# SETTE 
        10 ^/utils/CI/sette@13559        sette 
         11^/utils/CI/sette@14244        sette 
  • NEMO/branches/2021/dev_r13747_HPC-11_mcastril_HPDAonline_DiagGPU/src/ABL/ablmod.F90

    r13295 r14789  
    1818   USE dom_oce, ONLY  : tmask 
    1919   USE sbc_oce, ONLY  : ght_abl, ghw_abl, e3t_abl, e3w_abl, jpka, jpkam1, rhoa 
    20    USE sbcblk         ! use rn_efac, cdn_oce 
    21    USE sbcblk_phy     ! use some physical constants for flux computation 
     20   USE sbcblk         ! use rn_efac 
     21   USE sbc_phy        ! Catalog of functions for physical/meteorological parameters in the marine boundary layer 
    2222   ! 
    2323   USE prtctl         ! Print control                    (prt_ctl routine) 
     
    4141              &            pu_dta, pv_dta, pt_dta, pq_dta,    & 
    4242              &            pslp_dta, pgu_dta, pgv_dta,        & 
    43               &            pcd_du, psen, pevp,                &     ! in/out 
     43              &            pcd_du, psen, pevp, plat,          &     ! in/out 
    4444              &            pwndm, ptaui, ptauj, ptaum         & 
    4545#if defined key_si3 
     
    8484      REAL(wp) , INTENT(inout), DIMENSION(:,:  ) ::   pevp       ! Ce x Du 
    8585      REAL(wp) , INTENT(inout), DIMENSION(:,:  ) ::   pwndm      ! ||uwnd|| 
     86      REAL(wp) , INTENT(  out), DIMENSION(:,:  ) ::   plat       ! latent heat flux 
    8687      REAL(wp) , INTENT(  out), DIMENSION(:,:  ) ::   ptaui      ! taux 
    8788      REAL(wp) , INTENT(  out), DIMENSION(:,:  ) ::   ptauj      ! tauy 
     
    135136         ustar2(ji,jj) = zzoce 
    136137#endif 
    137          zrough(ji,jj) = ght_abl(2) * EXP( - vkarmn / SQRT( MAX( Cdn_oce(ji,jj), 1.e-4 ) ) ) !<-- recover the value of z0 from Cdn_oce 
     138         !#LB: sorry Cdn_oce is gone: 
     139         !zrough(ji,jj) = ght_abl(2) * EXP( - vkarmn / SQRT( MAX( Cdn_oce(ji,jj), 1.e-4 ) ) ) !<-- recover the value of z0 from Cdn_oce 
    138140      END_2D 
     141 
     142      zrough(:,:) = z0_from_Cd( ght_abl(2), pCd_du(:,:) / MAX( pwndm(:,:), 0.5_wp ) ) ! #LB: z0_from_Cd is define in sbc_phy.F90... 
     143 
    139144      ! 
    140145      !                            !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
     
    252257                  &                     + rDt_abl * fft_abl(ji, jj) * v_abl( ji, jj, jk, nt_n ) )  & 
    253258                  &                               / (1._wp + gamma_Cor*gamma_Cor*zcff) 
    254     
     259 
    255260               v_abl( ji, jj, jk, nt_a ) =  e3t_abl(jk) *(                                         & 
    256261                  &        (1._wp-gamma_Cor*(1._wp-gamma_Cor)*zcff) * v_abl( ji, jj, jk, nt_n )    & 
     
    526531      !------------- 
    527532      !                            !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
    528       !                            !  6 *** MPI exchanges 
    529       !                            !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
    530       ! 
    531       CALL lbc_lnk_multi( 'ablmod',  u_abl(:,:,:,nt_a      ), 'T', -1._wp,  v_abl(:,:,:,nt_a)      , 'T', -1._wp                            ) 
    532       CALL lbc_lnk_multi( 'ablmod', tq_abl(:,:,:,nt_a,jp_ta), 'T', 1._wp , tq_abl(:,:,:,nt_a,jp_qa), 'T',  1._wp , kfillmode = jpfillnothing )   ! ++++ this should not be needed... 
    533       ! 
    534 #if defined key_iomput 
     533      !                            !  6 *** MPI exchanges & IOM outputs 
     534      !                            !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
     535      ! 
     536      CALL lbc_lnk( 'ablmod',  u_abl(:,:,:,nt_a      ), 'T', -1._wp,  v_abl(:,:,:,nt_a)      , 'T', -1._wp                            ) 
     537      CALL lbc_lnk( 'ablmod', tq_abl(:,:,:,nt_a,jp_ta), 'T', 1._wp , tq_abl(:,:,:,nt_a,jp_qa), 'T',  1._wp , kfillmode = jpfillnothing )   ! ++++ this should not be needed... 
     538      ! 
     539#if defined key_xios 
    535540      ! 2D & first ABL level 
    536541      IF ( iom_use("pblh"   ) ) CALL iom_put (    "pblh",    pblh(:,:             ) ) 
     
    586591         psen( ji, jj ) =    - cp_air(zhumi) * zcff * psen(ji,jj) * ( psst(ji,jj) + rt0 - ztemp )   !GS: negative sign to respect aerobulk convention 
    587592         pevp( ji, jj ) = rn_efac*MAX( 0._wp,  zcff * pevp(ji,jj) * ( pssq(ji,jj)       - zhumi ) ) 
     593         plat( ji, jj ) = - L_vap( psst(ji,jj) ) * pevp( ji, jj ) 
    588594         rhoa( ji, jj ) = zcff 
    589595      END_2D 
    590596 
    591597      DO_2D( 0, 1, 0, 1 ) 
    592          zwnd_i(ji,jj) = u_abl(ji  ,jj,2,nt_a) - 0.5_wp * ( pssu(ji  ,jj) + pssu(ji-1,jj) )   
    593          zwnd_j(ji,jj) = v_abl(ji,jj  ,2,nt_a) - 0.5_wp * ( pssv(ji,jj  ) + pssv(ji,jj-1) )  
     598         zwnd_i(ji,jj) = u_abl(ji  ,jj,2,nt_a) - 0.5_wp * ( pssu(ji  ,jj) + pssu(ji-1,jj) ) 
     599         zwnd_j(ji,jj) = v_abl(ji,jj  ,2,nt_a) - 0.5_wp * ( pssv(ji,jj  ) + pssv(ji,jj-1) ) 
    594600      END_2D 
    595601      ! 
    596       CALL lbc_lnk_multi( 'ablmod', zwnd_i(:,:) , 'T', -1.0_wp, zwnd_j(:,:) , 'T', -1.0_wp ) 
     602      CALL lbc_lnk( 'ablmod', zwnd_i(:,:) , 'T', -1.0_wp, zwnd_j(:,:) , 'T', -1.0_wp ) 
    597603      ! 
    598604      ! ... scalar wind ( = | U10m - U_oce | ) at T-point (masked) 
     
    619625      END_2D 
    620626      ! 
    621       CALL lbc_lnk_multi( 'ablmod', ptaui(:,:), 'U', -1.0_wp, ptauj(:,:), 'V', -1.0_wp ) 
     627      CALL lbc_lnk( 'ablmod', ptaui(:,:), 'U', -1.0_wp, ptauj(:,:), 'V', -1.0_wp ) 
    622628 
    623629      CALL iom_put( "taum_oce", ptaum ) 
     
    633639      !    Wind stress relative to the moving ice ( U10m - U_ice )   ! 
    634640      ! ------------------------------------------------------------ ! 
    635       DO_2D( 0, 0, 0, 0 )            
     641      DO_2D( 0, 0, 0, 0 ) 
    636642         ptaui_ice(ji,jj) = 0.5_wp * ( rhoa(ji+1,jj) * pCd_du_ice(ji+1,jj) + rhoa(ji,jj) * pCd_du_ice(ji,jj)      )   & 
    637643            &                      * ( 0.5_wp * ( u_abl(ji+1,jj,2,nt_a) + u_abl(ji,jj,2,nt_a) ) - pssu_ice(ji,jj) ) 
     
    639645            &                      * ( 0.5_wp * ( v_abl(ji,jj+1,2,nt_a) + v_abl(ji,jj,2,nt_a) ) - pssv_ice(ji,jj) ) 
    640646      END_2D 
    641       CALL lbc_lnk_multi( 'ablmod', ptaui_ice, 'U', -1.0_wp, ptauj_ice, 'V', -1.0_wp ) 
     647      CALL lbc_lnk( 'ablmod', ptaui_ice, 'U', -1.0_wp, ptauj_ice, 'V', -1.0_wp ) 
    642648      ! 
    643649      IF(sn_cfctl%l_prtctl)   CALL prt_ctl( tab2d_1=ptaui_ice  , clinfo1=' abl_stp: putaui : '   & 
     
    658664            &         * ( zztmp2 - pssv_ice(ji,jj) ) 
    659665      END_2D 
    660       CALL lbc_lnk_multi( 'ablmod', ptaui_ice, 'U', -1.0_wp, ptauj_ice,'V', -1.0_wp ) 
     666      CALL lbc_lnk( 'ablmod', ptaui_ice, 'U', -1.0_wp, ptauj_ice,'V', -1.0_wp ) 
    661667      ! 
    662668      IF(sn_cfctl%l_prtctl) THEN 
     
    12591265      smth_b = 1._wp / 4._wp 
    12601266      ! 
    1261       DO_2D( 1, 1, 1, 0 ) 
     1267      DO_2D( 1, 0, 1, 1 ) 
    12621268         zumsk = msk(ji,jj) * msk(ji+1,jj) 
    12631269         zdX ( ji, jj ) = ( pvar2d( ji+1,jj ) - pvar2d( ji  ,jj ) ) * zumsk 
    12641270      END_2D 
    12651271 
    1266       DO_2D( 1, 0, 1, 1 ) 
     1272      DO_2D( 1, 1, 1, 0 ) 
    12671273         zvmsk = msk(ji,jj) * msk(ji,jj+1) 
    12681274         zdY ( ji, jj ) = ( pvar2d( ji, jj+1 ) - pvar2d( ji  ,jj ) ) * zvmsk 
    12691275      END_2D 
    12701276 
    1271       DO_2D( 1, 0, 0, 0 ) 
     1277      DO_2D( 0, 0, 1, 0 ) 
    12721278         zFY ( ji, jj  ) =   zdY ( ji, jj   )                        & 
    12731279            & +  smth_a*  ( (zdX ( ji, jj+1 ) - zdX( ji-1, jj+1 ))   & 
     
    12751281      END_2D 
    12761282 
    1277       DO_2D( 0, 0, 1, 0 ) 
     1283      DO_2D( 1, 0, 0, 0 ) 
    12781284         zFX( ji, jj  ) =    zdX( ji, jj   )                         & 
    12791285           &    + smth_a*(  (zdY( ji+1, jj ) - zdY( ji+1, jj-1))     & 
Note: See TracChangeset for help on using the changeset viewer.