Changeset 3090 for trunk/LMDZ.TITAN/libf/phytitan/optcv.F90
- Timestamp:
- Oct 17, 2023, 9:40:14 AM (13 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.TITAN/libf/phytitan/optcv.F90
r3083 r3090 25 25 ! ------- 26 26 ! Adapted from the NASA Ames code by R. Wordsworth (2009) 27 ! Clean and adaptation to Titan by J. Vatant d'Ollone (2016-17) 28 ! Clean and correction to Titan by B. de Batz de Trenquelléon (2022) 29 ! New optics added for Titan's clouds by B. de Batz de Trenquelléon (2023) 30 ! The whole routine needs to be redone... 27 ! 28 ! Modified 29 ! -------- 30 ! J. Vatant d'Ollone (2016-17) 31 ! --> Clean and adaptation to Titan 32 ! B. de Batz de Trenquelléon (2022-2023) 33 ! --> Clean and correction to Titan 34 ! --> New optics added for Titan's clouds 31 35 ! 32 36 !================================================================== … … 116 120 ! Variables for new optics 117 121 integer iq, iw, FTYPE, CTYPE 118 real*8 m0as,m0af,m0ccn,m3as,m3af,m3ccn,m3 ices,m3cld122 real*8 m0as,m0af,m0ccn,m3as,m3af,m3ccn,m3cld 119 123 real*8 dtauaer_s,dtauaer_f,dtau_ccn,dtau_cld 120 124 real*8,save :: rhoaer_s(L_NSPECTV),ssa_s(L_NSPECTV),asf_s(L_NSPECTV) … … 202 206 m3as = pqmo(ilay,2) / 2.0 203 207 m3af = pqmo(ilay,4) / 2.0 204 ! Cut-off 205 IF (ilay .lt. 19) THEN206 m3as = pqmo( 19,2) / 2.0 * (zlev(ilay+1)-zlev(ilay)) / (zlev(20)-zlev(19))207 m3af = pqmo( 19,4) / 2.0 * (zlev(ilay+1)-zlev(ilay)) / (zlev(20)-zlev(19))208 ! Cut-off (here for p = 2.7e3Pa / alt = 70km) 209 IF (ilay .lt. 23) THEN 210 m3as = pqmo(23,2) / 2.0 * (zlev(ilay+1)-zlev(ilay)) / (zlev(24)-zlev(23)) 211 m3af = pqmo(23,4) / 2.0 * (zlev(ilay+1)-zlev(ilay)) / (zlev(24)-zlev(23)) 208 212 ENDIF 209 213 … … 226 230 m0as = pqmo(ilay,1) / 2.0 227 231 m3as = pqmo(ilay,2) / 2.0 228 ! If not callclouds : must have a cut-off 232 ! If not callclouds : must have a cut-off (here for p = 2.7e3Pa / alt = 70km) 229 233 IF (.NOT. callclouds) THEN 230 IF (ilay .lt. 19) THEN231 m0as = pqmo( 19,1) / 2.0 * (zlev(ilay+1)-zlev(ilay)) / (zlev(20)-zlev(19))232 m3as = pqmo( 19,2) / 2.0 * (zlev(ilay+1)-zlev(ilay)) / (zlev(20)-zlev(19))234 IF (ilay .lt. 23) THEN 235 m0as = pqmo(23,1) / 2.0 * (zlev(ilay+1)-zlev(ilay)) / (zlev(24)-zlev(23)) 236 m3as = pqmo(23,2) / 2.0 * (zlev(ilay+1)-zlev(ilay)) / (zlev(24)-zlev(23)) 233 237 ENDIF 234 238 ENDIF … … 240 244 m0af = pqmo(ilay,3) / 2.0 241 245 m3af = pqmo(ilay,4) / 2.0 242 ! If not callclouds : must have a cut-off 246 ! If not callclouds : must have a cut-off (here for p = 2.7e3Pa / alt = 70km) 243 247 IF (.NOT. callclouds) THEN 244 IF (ilay .lt. 19) THEN245 m0af = pqmo( 19,3) / 2.0 * (zlev(ilay+1)-zlev(ilay)) / (zlev(20)-zlev(19))246 m3af = pqmo( 19,4) / 2.0 * (zlev(ilay+1)-zlev(ilay)) / (zlev(20)-zlev(19))248 IF (ilay .lt. 23) THEN 249 m0af = pqmo(23,3) / 2.0 * (zlev(ilay+1)-zlev(ilay)) / (zlev(24)-zlev(23)) 250 m3af = pqmo(23,4) / 2.0 * (zlev(ilay+1)-zlev(ilay)) / (zlev(24)-zlev(23)) 247 251 ENDIF 248 252 ENDIF … … 273 277 m0ccn = pqmo(ilay,5) / 2.0 274 278 m3ccn = pqmo(ilay,6) / 2.0 275 m3ices = 0.0d0 276 m3cld = m3ccn 279 m3cld = 0.0d0 277 280 278 281 ! Clear / Dark column method : … … 285 288 IF (CDCOLUMN == 0) THEN 286 289 DO iq = 2, nice 287 m3ices = m3ices + (pqmo(ilay,ices_indx(iq)) / 2.0)288 290 m3cld = m3cld + (pqmo(ilay,ices_indx(iq)) / 2.0) 289 291 ENDDO … … 293 295 ELSEIF (CDCOLUMN == 1) THEN 294 296 DO iq = 1, nice 295 m3ices = m3ices + (pqmo(ilay,ices_indx(iq)) / 2.0)296 297 m3cld = m3cld + (pqmo(ilay,ices_indx(iq)) / 2.0) 297 298 ENDDO … … 302 303 WRITE(*,*) 'WE USE DARK COLUMN ...' 303 304 DO iq = 1, nice 304 m3ices = m3ices + (pqmo(ilay,ices_indx(iq)) / 2.0)305 305 m3cld = m3cld + (pqmo(ilay,ices_indx(iq)) / 2.0) 306 306 ENDDO … … 309 309 310 310 ! For small dropplets, opacity of nucleus dominates 311 !ssa_cld(nw) = (ssa_ccn(nw)*m3ccn + ssa_cld(nw)*m3ices) / (m3ccn + m3ices)312 311 ssa_cld(nw) = (ssa_ccn(nw)*m3ccn + ssa_cld(nw)*m3cld) / (m3ccn + m3cld) 313 312 ssa_cld(nw) = ssa_cld(nw) * Fssa
Note: See TracChangeset
for help on using the changeset viewer.