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 13229 for NEMO/branches/2020/dev_r12558_HPC-08_epico_Extra_Halo/src/ABL/sbcabl.F90 – NEMO

Ignore:
Timestamp:
2020-07-02T17:33:41+02:00 (4 years ago)
Author:
francesca
Message:

dev_r12558_HPC-08_epico_Extra_Halo: merge with trunk@13218, see #2366

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2020/dev_r12558_HPC-08_epico_Extra_Halo/src/ABL/sbcabl.F90

    r12939 r13229  
    7171         &                 ln_hpgls_frc, ln_geos_winds, nn_dyn_restore,           & 
    7272         &                 rn_ldyn_min , rn_ldyn_max, rn_ltra_min, rn_ltra_max,   & 
    73          &                 nn_amxl, rn_cm, rn_ct, rn_ce, rn_ceps, rn_Rod, rn_Ric, & 
     73         &                 nn_amxl, rn_Cm, rn_Ct, rn_Ce, rn_Ceps, rn_Rod, rn_Ric, & 
    7474         &                 ln_smth_pblh 
    7575      !!--------------------------------------------------------------------- 
    7676 
    77       ! Namelist namsbc_abl in reference namelist : ABL parameters 
     77                                        ! Namelist namsbc_abl in reference namelist : ABL parameters 
    7878      READ  ( numnam_ref, namsbc_abl, IOSTAT = ios, ERR = 901 ) 
    7979901   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_abl in reference namelist' ) 
    80       ! Namelist namsbc_abl in configuration namelist : ABL parameters 
     80      ! 
     81                                        ! Namelist namsbc_abl in configuration namelist : ABL parameters 
    8182      READ  ( numnam_cfg, namsbc_abl, IOSTAT = ios, ERR = 902 ) 
    8283902   IF( ios /= 0 ) CALL ctl_nam ( ios , 'namsbc_abl in configuration namelist' ) 
     
    165166      rn_Sch  = rn_ce / rn_cm 
    166167      mxl_min = (avm_bak / rn_cm) / sqrt( tke_min ) 
     168      rn_Esfc =  1._wp / SQRT(rn_cm*rn_ceps) 
     169      rn_Lsfc = vkarmn * SQRT(SQRT(rn_cm*rn_ceps)) / rn_cm 
    167170 
    168171      IF(lwp) THEN 
     
    171174         WRITE(numout,*) '    ~~~~~~~~~~~' 
    172175         IF(nn_amxl==0) WRITE(numout,*) 'Deardorff 80 length-scale ' 
    173          IF(nn_amxl==1) WRITE(numout,*) 'length-scale based on the distance to the PBL height ' 
     176         IF(nn_amxl==1) WRITE(numout,*) 'Modified Deardorff 80 length-scale ' 
     177         IF(nn_amxl==2) WRITE(numout,*) 'Bougeault and Lacarrere length-scale '       
     178         IF(nn_amxl==3) WRITE(numout,*) 'Rodier et al. length-scale '    
    174179         WRITE(numout,*) ' Minimum value of atmospheric TKE           = ',tke_min,' m^2 s^-2' 
    175180         WRITE(numout,*) ' Minimum value of atmospheric mixing length = ',mxl_min,' m' 
     
    178183         WRITE(numout,*) ' Constant for Schmidt number                = ',rn_Sch 
    179184         WRITE(numout,*) ' Constant for TKE dissipation               = ',rn_Ceps 
     185         WRITE(numout,*) ' Constant for TKE sfc boundary condition    = ',rn_Esfc 
     186         WRITE(numout,*) ' Constant for mxl sfc boundary condition    = ',rn_Lsfc 
    180187      END IF 
    181188 
     
    202209      ! ABL timestep 
    203210      rDt_abl = nn_fsbc * rn_Dt 
     211      IF(lwp) WRITE(numout,*) ' ABL timestep = ', rDt_abl,' s' 
    204212 
    205213      ! Check parameters for dynamics 
     
    248256         zcff         = 2._wp * omega * SIN( rad * 90._wp )   !++ fmax 
    249257         rest_eq(:,:) = SIN( 0.5_wp*rpi*( (fft_abl(:,:) - zcff) / zcff ) )**8 
    250          !!GS: alternative shape 
    251          !rest_eq(:,:) = SIN( 0.5_wp*rpi*(zcff - ABS(ff_t(:,:))) / (zcff - 3.e-5) )**8 
    252          !WHERE(ABS(ff_t(:,:)).LE.3.e-5) rest_eq(:,:) = 1._wp 
    253258      ELSE 
    254259         rest_eq(:,:) = 1._wp 
     
    271276         CALL fld_read( nit000, nn_fsbc, sf ) ! input fields provided at the first time-step 
    272277 
    273          u_abl(:,:,:,nt_n      ) = sf(jp_wndi)%fnow(:,:,:) 
    274          v_abl(:,:,:,nt_n      ) = sf(jp_wndj)%fnow(:,:,:) 
     278          u_abl(:,:,:,nt_n      ) = sf(jp_wndi)%fnow(:,:,:) 
     279          v_abl(:,:,:,nt_n      ) = sf(jp_wndj)%fnow(:,:,:) 
    275280         tq_abl(:,:,:,nt_n,jp_ta) = sf(jp_tair)%fnow(:,:,:) 
    276281         tq_abl(:,:,:,nt_n,jp_qa) = sf(jp_humi)%fnow(:,:,:) 
     
    279284         avm_abl(:,:,:          ) = avm_bak 
    280285         avt_abl(:,:,:          ) = avt_bak 
    281          mxl_abl(:,:,:          ) = mxl_min 
    282286         pblh   (:,:            ) = ghw_abl( 3 )  !<-- assume that the pbl contains 3 grid points 
    283287         u_abl  (:,:,:,nt_a     ) = 0._wp 
     
    285289         tq_abl (:,:,:,nt_a,:   ) = 0._wp 
    286290         tke_abl(:,:,:,nt_a     ) = 0._wp 
     291 
     292         mxlm_abl(:,:,:         ) = mxl_min 
     293         mxld_abl(:,:,:         ) = mxl_min 
    287294      ENDIF 
    288295 
     
    335342            &                tq_abl(:,:,2,nt_n,jp_ta), tq_abl(:,:,2,nt_n,jp_qa),   &   !   <<= in 
    336343            &                sf(jp_slp )%fnow(:,:,1) , sst_m, ssu_m, ssv_m     ,   &   !   <<= in 
     344            &                sf(jp_uoatm)%fnow(:,:,1), sf(jp_voatm)%fnow(:,:,1),   &   !   <<= in 
    337345            &                sf(jp_qsr )%fnow(:,:,1) , sf(jp_qlw )%fnow(:,:,1) ,   &   !   <<= in 
    338346            &                tsk_m, zssq, zcd_du, zsen, zevp                       )   !   =>> out 
Note: See TracChangeset for help on using the changeset viewer.