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 12154 for NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/ABL – NEMO

Ignore:
Timestamp:
2019-12-10T15:44:23+01:00 (4 years ago)
Author:
cetlod
Message:

commit

Location:
NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/ABL
Files:
2 edited
1 copied

Legend:

Unmodified
Added
Removed
  • NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/ABL/ablmod.F90

    r11937 r12154  
    1717   USE phycst         ! physical constants 
    1818   USE dom_oce, ONLY  : tmask   
    19    USE sbc_oce, ONLY  : ght_abl, ghw_abl, e3t_abl, e3w_abl, jpka, jpkam1 
    20    USE sbcblk         ! use some physical constants for flux computation 
     19   USE sbc_oce, ONLY  : ght_abl, ghw_abl, e3t_abl, e3w_abl, jpka, jpkam1, rhoa 
     20   USE sbcblk         ! use rn_?fac 
     21   USE sbcblk_phy     ! use some physical constants for flux computation 
    2122   ! 
    2223   USE prtctl         ! Print control                    (prt_ctl routine) 
     
    100101      REAL(wp) , INTENT(  out), DIMENSION(:,:  ) ::   ptauj_ice    ! ice-surface tauy stress (V-point)      
    101102#endif      
    102      ! 
    103       REAL(wp), DIMENSION(1:jpi,1:jpj   )        ::   zrhoa, zwnd_i, zwnd_j 
     103      ! 
     104      REAL(wp), DIMENSION(1:jpi,1:jpj   )        ::   zwnd_i, zwnd_j 
    104105      REAL(wp), DIMENSION(1:jpi,2:jpka  )        ::   zCF     
    105106      REAL(wp), DIMENSION(1:jpi,1:jpj,1:jpka)    ::   z_cft      !--FL--to be removed after the test phase    
     
    529530            ztemp             = tq_abl  ( ji, jj, 2, nt_a, jp_ta )  
    530531            zhumi             = tq_abl  ( ji, jj, 2, nt_a, jp_qa )  
    531             zcff              = pslp_dta( ji, jj ) /   &              !<-- At this point ztemp and zhumi should not be zero ... 
    532                &                        (  R_dry*ztemp * ( 1._wp + rctv0*zhumi )  ) 
     532            !zcff              = pslp_dta( ji, jj ) /   &              !<-- At this point ztemp and zhumi should not be zero ... 
     533            !   &                        (  R_dry*ztemp * ( 1._wp + rctv0*zhumi )  ) 
     534            zcff              = rho_air( ztemp, zhumi, pslp_dta( ji, jj ) ) 
    533535            psen ( ji, jj )   =      cp_air(zhumi) * zcff * psen(ji,jj) * ( psst(ji,jj) + rt0 - ztemp ) 
    534536            pevp ( ji, jj )   = rn_efac*MAX( 0._wp,  zcff * pevp(ji,jj) * ( pssq(ji,jj)       - zhumi ) ) 
    535             zrhoa( ji, jj )   = zcff               
     537            rhoa( ji, jj )   = zcff               
    536538         END DO 
    537539      END DO 
     
    551553            zcff          = SQRT(  zwnd_i(ji,jj) * zwnd_i(ji,jj)   & 
    552554               &                 + zwnd_j(ji,jj) * zwnd_j(ji,jj)  )  ! * msk_abl(ji,jj) 
    553             zztmp         = zrhoa(ji,jj) * pcd_du(ji,jj) 
     555            zztmp         = rhoa(ji,jj) * pcd_du(ji,jj) 
    554556             
    555557            pwndm (ji,jj) =         zcff 
     
    593595               zztmp2 = 0.5_wp * ( v_abl(ji,jj+1,2,nt_a) + v_abl(ji,jj,2,nt_a) ) 
    594596             
    595                ptaui_ice(ji,jj) = 0.5_wp * (  zrhoa(ji+1,jj) * pCd_du_ice(ji+1,jj)             & 
    596                   &                      +    zrhoa(ji  ,jj) * pCd_du_ice(ji  ,jj)  )          & 
     597               ptaui_ice(ji,jj) = 0.5_wp * (  rhoa(ji+1,jj) * pCd_du_ice(ji+1,jj)             & 
     598                  &                      +    rhoa(ji  ,jj) * pCd_du_ice(ji  ,jj)  )          & 
    597599                  &         * ( zztmp1 - rn_vfac * pssu_ice(ji,jj) ) 
    598                ptauj_ice(ji,jj) = 0.5_wp * (  zrhoa(ji,jj+1) * pCd_du_ice(ji,jj+1)             & 
    599                   &                      +    zrhoa(ji,jj  ) * pCd_du_ice(ji,jj  )  )          & 
     600               ptauj_ice(ji,jj) = 0.5_wp * (  rhoa(ji,jj+1) * pCd_du_ice(ji,jj+1)             & 
     601                  &                      +    rhoa(ji,jj  ) * pCd_du_ice(ji,jj  )  )          & 
    600602                  &         * ( zztmp2 - rn_vfac * pssv_ice(ji,jj) ) 
    601603            END DO 
  • NEMO/branches/2019/dev_r12072_MERGE_OPTION2_2019/src/ABL/sbcabl.F90

    r11858 r12154  
    2222   USE sbc_oce        ! Surface boundary condition: ocean fields 
    2323   USE sbcblk         ! Surface boundary condition: bulk formulae 
     24   USE sbcblk_phy     ! Surface boundary condition: bulk formulae 
    2425   USE dom_oce, ONLY  : tmask 
    2526   ! 
     
    9394      IF( nn_dyn_restore  < 0   .OR.  nn_dyn_restore  > 2 )   & 
    9495         &                 CALL ctl_stop( 'abl_init : bad flag, nn_dyn_restore must be  0, 1 or 2 ' )             
    95       ! 
     96 
    9697      !!--------------------------------------------------------------------- 
    9798      !! Control prints 
     
    215216            WRITE(numout,*) ' ABL Maximum value for dynamics restoring = ',zcff1 
    216217            ! Check that restoring coefficients are between 0 and 1 
    217             !IF( zcff1 > 1._wp .OR. zcff1 < 0._wp )   & 
    218             !IF( zcff1 > nn_fsbc .OR. zcff1 < 0._wp )   & 
    219218            IF( zcff1 - nn_fsbc > 0.001_wp .OR. zcff1 < 0._wp )   & 
    220219               &                   CALL ctl_stop( 'abl_init : wrong value for rn_ldyn_max' ) 
    221             !IF( zcff  > 1._wp .OR. zcff  < 0._wp )   & 
    222220            IF( zcff  - nn_fsbc > 0.001_wp .OR. zcff  < 0._wp )   & 
    223221               &                   CALL ctl_stop( 'abl_init : wrong value for rn_ldyn_min' ) 
     
    236234         WRITE(numout,*) ' ABL Maximum value for tracers restoring = ',zcff1 
    237235         ! Check that restoring coefficients are between 0 and 1 
    238          !IF( zcff1 > 1._wp .OR. zcff1 < 0._wp )   & 
    239236         IF( zcff1 - nn_fsbc > 0.001_wp .OR. zcff1 < 0._wp )   & 
    240237            &                   CALL ctl_stop( 'abl_init : wrong value for rn_ltra_max' ) 
    241          !IF( zcff  > 1._wp .OR. zcff  < 0._wp )   & 
    242238         IF( zcff  - nn_fsbc > 0.001_wp .OR. zcff  < 0._wp )   & 
    243239            &                   CALL ctl_stop( 'abl_init : wrong value for rn_ltra_min' ) 
     
    294290         tke_abl(:,:,:,nt_a     ) = 0._wp 
    295291      ENDIF 
     292 
     293      rhoa(:,:) = rho_air( tq_abl(:,:,2,nt_n,jp_ta), tq_abl(:,:,2,nt_n,jp_qa), sf(jp_slp)%fnow(:,:,1) ) !!GS: rhoa must be (re)computed here here to avoid division by zero in blk_ice_1 (TBI) 
    296294      
    297295   END SUBROUTINE sbc_abl_init 
     
    341339         &                tq_abl(:,:,2,nt_n,jp_ta), tq_abl(:,:,2,nt_n,jp_qa),   &   !   <<= in 
    342340         &                sf(jp_slp )%fnow(:,:,1) , sst_m, ssu_m, ssv_m     ,   &   !   <<= in 
     341         &                sf(jp_qsr )%fnow(:,:,1) , sf(jp_qlw )%fnow(:,:,1) ,   &   !   <<= in 
    343342         &                zssq, zcd_du, zsen, zevp                          )       !   =>> out 
    344343   
Note: See TracChangeset for help on using the changeset viewer.