Ignore:
Timestamp:
Feb 8, 2019, 5:45:36 PM (6 years ago)
Author:
jvatant
Message:

Update radiative transfer with some of the latest updates in the generic model
Cf r2056 by AB and r1987-1991 by JL
--JVO

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.TITAN/libf/phytitan/optcv.F90

    r2050 r2095  
    154154  ! Rayleigh scattering
    155155  do NW=1,L_NSPECTV
    156      do K=2,L_LEVELS
     156     TRAY(1:4,NW)   = 1d-30
     157     do K=5,L_LEVELS
    157158        TRAY(K,NW)   = TAURAY(NW) * DPR(K)
    158159     end do                    ! levels
     
    189190          if (seashaze) dhaze_T(k,nw) = dhaze_T(k,nw)*seashazefact(k)
    190191        ENDIF
     192       
     193        !JL18 It seems to be good to have aerosols in the first "radiative layer" of the gcm in the IR
     194        !   but visible does not handle very well diffusion in first layer.
     195        !   The tauaero and tauray are thus set to 0 (a small value for rayleigh because the code crashes otherwise)
     196        !   in the 4 first semilayers in optcv, but not optci.
     197        !   This solves random variations of the sw heating at the model top.
     198        if (k<5)  dhaze_T(K,:) = 0.0
    191199         
    192200        DRAYAER = TRAY(K,NW)
     
    311319
    312320  ! Haze scattering
     321            !JL18 It seems to be good to have aerosols in the first "radiative layer" of the gcm in the IR
     322            !   but not in the visible
     323            !   The dhaze_s is thus set to 0 in the 4 first semilayers in optcv, but not optci.
     324            !   This solves random variations of the sw heating at the model top.
    313325  DO NW=1,L_NSPECTV
    314     DO K=2,L_LEVELS
     326      DHAZES_T(1:4,NW) = 0.d0
     327    DO K=5,L_LEVELS
    315328      DHAZES_T(K,NW) = DHAZE_T(K,NW) * SSA_T(K,NW) ! effect of scattering albedo on haze
    316329    ENDDO
     
    365378  DO NG=1,L_NGAUSS       ! full gauss loop
    366379     DO NW=1,L_NSPECTV       
    367         TAUV(1,NW,NG)=0.0D0
    368         DO L=1,L_NLAYRAD
    369            TAUV(L+1,NW,NG)=TAUV(L,NW,NG)+DTAUV(L,NW,NG)
    370         END DO
    371 
    372380        TAUCUMV(1,NW,NG)=0.0D0
    373381        DO K=2,L_LEVELS
    374382           TAUCUMV(K,NW,NG)=TAUCUMV(K-1,NW,NG)+DTAUKV(K,NW,NG)
    375383        END DO
     384
     385        DO L=1,L_NLAYRAD
     386           TAUV(L,NW,NG)=TAUCUMV(2*L,NW,NG)
     387        END DO
     388        TAUV(L,NW,NG)=TAUCUMV(2*L_NLAYRAD+1,NW,NG)
    376389     END DO           
    377390  END DO                 ! end full gauss loop
Note: See TracChangeset for help on using the changeset viewer.