Changeset 5910


Ignore:
Timestamp:
Dec 4, 2025, 3:14:38 PM (2 hours ago)
Author:
evignon
Message:

commentaire de lmdz_cloud_optics_prop suite au dernier atelier nuages-rayonnement

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/trunk/libf/phylmd/lmdz_cloud_optics_prop.f90

    r5828 r5910  
    1818    IF (ANY(first)) THEN
    1919      IF (novlp==1) THEN
    20         WRITE (*, *) 'Hypothese de recouvrement: MAXIMUM_ &
     20        WRITE (*, *) 'Hypothesis on cloud overlap: MAXIMUM_ &
    2121                &                                             &
    2222                &                                          RANDOM'
    2323        first_first = .FALSE.
    2424      ELSEIF (novlp==2) THEN
    25         WRITE (*, *) 'Hypothese de recouvrement: MAXIMUM'
     25        WRITE (*, *) 'Hypothesis on cloud overlap: MAXIMUM'
    2626        first_first = .FALSE.
    2727      ELSEIF (novlp==3) THEN
    28         WRITE (*, *) 'Hypothese de recouvrement: RANDOM'
     28        WRITE (*, *) 'Hypothesis on cloud overlap: RANDOM'
    2929        first_first = .FALSE.
    3030      ENDIF
     
    7575  !          M. Coulon-Decorzens: replayisation of the routine + cleaning
    7676  !                               and commentaries
     77  !          "atelier optics of clouds": careful reading and comments
     78  !                                   things to address -> see ?aoc
    7779  !
    78   ! Aim: compute condensate optical properties,
    79   !      cloud optical depth and emissivity
     80  ! Aim: compute condensates' optical properties
     81  !      (cloud optical depth,) and emissivity ?aoc
    8082  ! ======================================================================
    8183 
    8284  ! List of arguments
    8385  !------------------
     86
     87  ! ?aoc all the pi arguments should be optional
    8488
    8589  ! input:
     
    9296  REAL, INTENT(IN) :: rnebcon(klon,klev) ! convection cloud fraction [-]
    9397  REAL, INTENT(IN) :: ccwcon(klon,klev)  ! condensed water from deep convection [kg/kg]
    94   ! jq for the aerosol indirect effect
    95   ! jq introduced by Johannes Quaas (quaas@lmd.jussieu.fr), 27/11/2003
    9698  REAL, INTENT(IN) :: mass_solu_aero(klon, klev)    ! total mass concentration for all soluble aerosols [ug m-3]
    9799  REAL, INTENT(IN) :: mass_solu_aero_pi(klon, klev) ! - (pre-industrial value)
    98100  REAL, INTENT(IN)  :: dNovrN(klon)         ! enhancement factor for cdnc
    99   REAL, INTENT(OUT) :: distcltop(klon,klev) ! distance from large scale cloud top [m]
    100   REAL, INTENT(OUT) :: temp_cltop(klon,klev)!temperature at large scale cloud top [K]
     101  REAL, INTENT(OUT) :: distcltop(klon,klev) ! distance from large scale cloud top [m] ?aoc
     102  REAL, INTENT(OUT) :: temp_cltop(klon,klev)! temperature at large scale cloud top [K] ?aoc
    101103
    102104  LOGICAL, INTENT(IN) :: ptconv(klon, klev) ! flag for grid points affected by deep convection
    103105
    104106  ! inout:
    105   REAL, INTENT(INOUT) :: pclc(klon, klev) ! cloud fraction for radiation [-]
     107  REAL, INTENT(INOUT) :: pclc(klon, klev) ! cloud fraction for radiation [-] ?aoc
     108  REAL, INTENT(INOUT) :: icefrac_optics(klon, klev)! ice fraction in clouds seen by radiation [-]
     109
    106110
    107111  ! out:
     112  ! only diagnostics:
    108113  REAL, INTENT(OUT) :: pct(klon)      ! 2D total cloud cover [-]
    109114  REAL, INTENT(OUT) :: pcl(klon)      ! 2D low cloud cover [-]
     
    119124                                      ! introduced to avoid problems in the averaging of the output
    120125                                      ! water clouds within a grid cell
    121 
     126 
     127  ! diagnostics or properties if one uses oldrad
    122128  REAL, INTENT(OUT) :: pcltau(klon, klev) ! cloud optical depth [m]
    123129  REAL, INTENT(OUT) :: pclemi(klon, klev) ! cloud emissivity [-]
     
    125131                                             ! values of optical thickness that does not account
    126132                                             ! for aerosol effects on cloud droplet radius [m]
    127 
    128   REAL, INTENT(OUT) :: reliq(klon, klev)   ! liquid droplet effective radius [m]
    129   REAL, INTENT(OUT) :: reice(klon, klev)   ! ice effective radius [m]
    130   REAL, INTENT(OUT) :: reliq_pi(klon, klev)! liquid droplet effective radius [m], pre-industrial
    131   REAL, INTENT(OUT) :: reice_pi(klon, klev)! ice effective radius [m], pre-industrial
    132133  REAL, INTENT(OUT) :: scdnc(klon, klev)   ! cloud droplet number concentration, mean over the whole mesh [m-3]
    133134  REAL, INTENT(OUT) :: cldncl(klon)        ! cloud droplet number concentration at top of cloud [m-3]
     
    142143  REAL, INTENT(OUT) :: icc3dcon(klon, klev)! cloud fraction for liquid part only, convective clouds [-]
    143144  REAL, INTENT(OUT) :: icc3dstra(klon, klev)! cloud fraction for ice part only, stratiform clouds [-]
    144   REAL, INTENT(INOUT) :: icefrac_optics(klon, klev)! ice fraction in clouds seen by radiation [-]
    145 
     145
     146  ! actual optical variables used as inputs for the radiative scheme
     147  REAL, INTENT(OUT) :: reliq(klon, klev)   ! liquid droplet effective radius [m]
     148  REAL, INTENT(OUT) :: reice(klon, klev)   ! ice effective radius [m]
     149  REAL, INTENT(OUT) :: reliq_pi(klon, klev)! liquid droplet effective radius [m], pre-industrial
     150  REAL, INTENT(OUT) :: reice_pi(klon, klev)! ice effective radius [m], pre-industrial
     151 
     152 
     153 
    146154  ! Local variables
    147155  !----------------
     
    158166  REAL rel, tc, rei, iwc, dei, deimin, deimax
    159167  REAL k_ice
    160 
    161   ! jq for the aerosol indirect effect
    162   ! jq introduced by Johannes Quaas (quaas@lmd.jussieu.fr), 27/11/2003
    163168  REAL cdnc(klon, klev) ! cloud droplet number concentration [m-3]
    164169  REAL cdnc_pi(klon, klev) ! cloud droplet number concentration [m-3] (pi value)
     
    222227    DO k = 1, klev
    223228
    224 
    225 !!$      IF (ok_new_lscp) THEN
    226 !!$          CALL icefrac_lscp(klon,temp(:,k),iflag_ice_thermo,distcltop(:,k),temp_cltop(:,k),icefrac_optics(:,k),dzfice(:,k))
    227 !!$      ELSE
    228 !!$          CALL icefrac_lsc(klon,temp(:,k),pplay(:,k)/paprs(:,1),icefrac_optics(:,k))
    229 !!$      ENDIF
    230229
    231230      DO i = 1, klon
Note: See TracChangeset for help on using the changeset viewer.