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 14644 for NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/src/ABL/ablmod.F90 – NEMO

Ignore:
Timestamp:
2021-03-26T15:33:49+01:00 (3 years ago)
Author:
sparonuz
Message:

Merge trunk -r14642:HEAD

Location:
NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final

    • Property svn:externals
      •  

        old new  
        99 
        1010# SETTE 
        11 ^/utils/CI/sette_wave@13990         sette 
         11^/utils/CI/sette@14244        sette 
  • NEMO/branches/2020/dev_r14116_HPC-04_mcastril_Mixed_Precision_implementation_final/src/ABL/ablmod.F90

    r14072 r14644  
    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 
     
    530531      !------------- 
    531532      !                            !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
    532       !                            !  6 *** MPI exchanges 
    533       !                            !<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< 
    534       ! 
    535       CALL lbc_lnk_multi( 'ablmod',  u_abl(:,:,:,nt_a      ), 'T', -1._wp,  v_abl(:,:,:,nt_a)      , 'T', -1._wp                            ) 
    536       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... 
    537       ! 
    538 #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 
    539540      ! 2D & first ABL level 
    540541      IF ( iom_use("pblh"   ) ) CALL iom_put (    "pblh",    pblh(:,:             ) ) 
     
    590591         psen( ji, jj ) =    - cp_air(zhumi) * zcff * psen(ji,jj) * ( psst(ji,jj) + rt0 - ztemp )   !GS: negative sign to respect aerobulk convention 
    591592         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 ) 
    592594         rhoa( ji, jj ) = zcff 
    593595      END_2D 
     
    598600      END_2D 
    599601      ! 
    600       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 ) 
    601603      ! 
    602604      ! ... scalar wind ( = | U10m - U_oce | ) at T-point (masked) 
     
    623625      END_2D 
    624626      ! 
    625       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 ) 
    626628 
    627629      CALL iom_put( "taum_oce", ptaum ) 
     
    643645            &                      * ( 0.5_wp * ( v_abl(ji,jj+1,2,nt_a) + v_abl(ji,jj,2,nt_a) ) - pssv_ice(ji,jj) ) 
    644646      END_2D 
    645       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 ) 
    646648      ! 
    647649      IF(sn_cfctl%l_prtctl)   CALL prt_ctl( tab2d_1=ptaui_ice  , clinfo1=' abl_stp: putaui : '   & 
     
    662664            &         * ( zztmp2 - pssv_ice(ji,jj) ) 
    663665      END_2D 
    664       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 ) 
    665667      ! 
    666668      IF(sn_cfctl%l_prtctl) THEN 
     
    12631265      smth_b = 1._wp / 4._wp 
    12641266      ! 
    1265       DO_2D( 1, 1, 1, 0 ) 
     1267      DO_2D( 1, 0, 1, 1 ) 
    12661268         zumsk = msk(ji,jj) * msk(ji+1,jj) 
    12671269         zdX ( ji, jj ) = ( pvar2d( ji+1,jj ) - pvar2d( ji  ,jj ) ) * zumsk 
    12681270      END_2D 
    12691271 
    1270       DO_2D( 1, 0, 1, 1 ) 
     1272      DO_2D( 1, 1, 1, 0 ) 
    12711273         zvmsk = msk(ji,jj) * msk(ji,jj+1) 
    12721274         zdY ( ji, jj ) = ( pvar2d( ji, jj+1 ) - pvar2d( ji  ,jj ) ) * zvmsk 
    12731275      END_2D 
    12741276 
    1275       DO_2D( 1, 0, 0, 0 ) 
     1277      DO_2D( 0, 0, 1, 0 ) 
    12761278         zFY ( ji, jj  ) =   zdY ( ji, jj   )                        & 
    12771279            & +  smth_a*  ( (zdX ( ji, jj+1 ) - zdX( ji-1, jj+1 ))   & 
     
    12791281      END_2D 
    12801282 
    1281       DO_2D( 0, 0, 1, 0 ) 
     1283      DO_2D( 1, 0, 0, 0 ) 
    12821284         zFX( ji, jj  ) =    zdX( ji, jj   )                         & 
    12831285           &    + smth_a*(  (zdY( ji+1, jj ) - zdY( ji+1, jj-1))     & 
Note: See TracChangeset for help on using the changeset viewer.