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 11334 for NEMO/branches/2019/dev_r11265_ASINTER-01_Guillaume_ABL1D/src/ABL/sbcabl.F90 – NEMO

Ignore:
Timestamp:
2019-07-24T11:20:42+02:00 (5 years ago)
Author:
flemarie
Message:

Follow-on to the ABL implementation (see ticket #2131)

  • Modification of diawri.F90 to output ABL variables with IOIPSL (i.e. without key_iomput)
  • Modification of ice_var_agg in icevar.F90 to allow the use of tm_su in ABL and bulk
  • Error handling in case ln_abl = .true. and ABL sources were not compiled
  • ABL now works with SI3 considering an average over ice categories
  • Update reference namelist to avoid runtime warnings due to nam_tide
  • Sanity checks with ORCA2 for the following configurations :

1 - ABL src + ln_blk = .true.
2 - ABL src + ln_abl = .true.
3 - no ABL src + ln_blk = .true.

All configurations are MPP reproducible and configurations 1 and 3 results are identical

File:
1 edited

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2019/dev_r11265_ASINTER-01_Guillaume_ABL1D/src/ABL/sbcabl.F90

    r11322 r11334  
    3030   USE lbclnk         ! ocean lateral boundary conditions (or mpp link) 
    3131   USE prtctl         ! Print control 
    32  
     32#if defined key_si3 
     33   USE ice    , ONLY : u_ice, v_ice, tm_su, ato_i      ! ato_i = total open water fractional area 
     34   USE sbc_ice, ONLY : wndm_ice, utau_ice, vtau_ice 
     35#endif    
     36#if ! defined key_iomput 
     37   USE diawri    , ONLY : dia_wri_alloc_abl 
     38#endif 
    3339   IMPLICIT NONE 
    3440   PRIVATE 
     
    141147      CALL iom_get( inum, jpdom_unknown, 'ghw_abl', ghw_abl(:) ) 
    142148      CALL iom_close( inum ) 
     149      
     150#if ! defined key_iomput 
     151     IF( dia_wri_alloc_abl()  /= 0 ) CALL ctl_stop( 'STOP', 'abl_init : unable to allocate arrays' ) 
     152#endif 
    143153 
    144154      IF(lwp) THEN 
     
    303313      !! 
    304314      REAL(wp), DIMENSION(jpi,jpj) ::   zssq, zcd_du, zsen, zevp 
     315#if defined key_si3 
     316      REAL(wp), DIMENSION(jpi,jpj) ::   zssqi, zcd_dui, zseni, zevpi 
     317#endif      
    305318      INTEGER                      ::   jbak, jbak_dta, ji, jj 
    306319      !!--------------------------------------------------------------------- 
     
    319332              &           sf(jp_slp )%fnow(:,:,1), sst_m, ssu_m, ssv_m, & 
    320333              &              zssq, zcd_du, zsen, zevp ) 
    321    
     334 
     335#if defined key_si3 
     336     CALL blk_ice_1( u_abl(:,:,2,nt_n), v_abl(:,:,2,nt_n), tq_abl(:,:,2,nt_n,jp_ta), tq_abl(:,:,2,nt_n,jp_qa),   & 
     337        &            sf(jp_slp)%fnow(:,:,1), u_ice, v_ice,                                          & 
     338         &            pseni=zseni, pevpi=zevpi, ptsui=tm_su, pssqi=zssqi, pcd_dui=zcd_dui )   ! outputs   
     339#endif   
     340 
    322341      !!------------------------------------------------------------------------------------------- 
    323342      !! 3 - Advance ABL variables from now (n) to after (n+1) 
     
    329348              &         sf(jp_hpgi)%fnow(:,:,:), sf(jp_hpgj)%fnow(:,:,:),                          & 
    330349              &         zcd_du, zsen, zevp,    &                                ! in/out 
    331               &         wndm, utau, vtau, taum )                                ! out 
    332  
     350              &         wndm, utau, vtau, taum &                                 ! out 
     351#if defined key_si3           
     352              &          , tm_su, u_ice, v_ice, zssqi, zcd_dui   &  
     353              &          , zseni, zevpi, wndm_ice, ato_i,        &  
     354           &            utau_ice,     vtau_ice                & 
     355#endif            
     356              &                                                                ) 
    333357      !!------------------------------------------------------------------------------------------- 
    334358      !! 4 - Finalize flux computation using ABL variables at (n+1), nt_n corresponds to (n+1) since  
     
    340364              &           sst_m , zsen, zevp ) 
    341365 
     366#if defined key_si3 
     367! Avoid a USE abl in icesbc module 
     368      sf(jp_tair)%fnow(:,:,1) = tq_abl(:,:,2,nt_n,jp_ta);  sf(jp_humi)%fnow(:,:,1) = tq_abl(:,:,2,nt_n,jp_qa) 
     369#endif  
     370 
    342371   END SUBROUTINE sbc_abl 
    343372 
Note: See TracChangeset for help on using the changeset viewer.