Changeset 4148
- Timestamp:
- Mar 23, 2026, 3:43:50 PM (5 days ago)
- File:
-
- 1 edited
-
trunk/LMDZ.TITAN/libf/phytitan/callcorrk.F90 (modified) (10 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/LMDZ.TITAN/libf/phytitan/callcorrk.F90
r4099 r4148 14 14 use gases_h 15 15 USE tracer_h 16 use callkeys_mod, only: global1d, szangle17 16 use comcstfi_mod, only: pi, mugaz, cpp 18 use callkeys_mod, only: diurnal,tracer,seashaze,corrk_recombin, & 19 strictboundcorrk,specOLR,diagdtau, & 17 use callkeys_mod, only: global1d, szangle, & 18 diurnal,tracer,seashaze,corrk_recombin, & 19 strictboundcorrk,specOLR,diagdtau, & 20 20 tplanckmin,tplanckmax,callclouds,Fcloudy 21 21 use geometry_mod, only: latitude … … 60 60 INTEGER,INTENT(IN) :: nq ! Number of tracers. 61 61 REAL,INTENT(IN) :: qsurf(ngrid,nq) ! Tracers on surface (kg.m-2). 62 REAL,INTENT(IN) :: zday ! Time elapsed since Ls=0 (sols).62 REAL,INTENT(IN) :: zday ! Time elapsed since Ls=0 (sols). 63 63 REAL,INTENT(IN) :: albedo(ngrid,L_NSPECTV) ! Spectral Short Wavelengths Albedo. By MT2015 64 64 REAL,INTENT(IN) :: emis(ngrid) ! Long Wave emissivity. … … 198 198 ! I. Initialization on every call 199 199 !======================================================================= 200 200 201 201 202 202 ! How much light do we get ? … … 513 513 dtauv_dc,tauv_dc,taucumv_dc,wbarv_dc,cosbv_dc,tauray,taugsurf,seashazefact,& 514 514 diag_opthv,diag_opttv_dc,cdcolumn) 515 515 516 516 ! Mean opacity, ssa and asf : 517 where ( (exp(-dtauv_cc(:,:,:)).ge.1.d-40) .and. (exp(-dtauv_dc(:,:,:)).ge.1.d-40))518 dtauv(:,:,:) = -log((1-Fcloudy)*exp(-dtauv_cc(:,:,:)) + Fcloudy*exp(-dtauv_dc(:,:,:)))517 where (dtauv_cc(:,:,:) .le. 100 .and. dtauv_dc(:,:,:) .le. 100.) 518 dtauv(:,:,:) = (1-Fcloudy)*dtauv_cc(:,:,:) + Fcloudy*dtauv_dc(:,:,:) 519 519 elsewhere 520 520 dtauv(:,:,:) = dtauv_dc(:,:,:) ! No need to average... … … 524 524 taucumv(1,nw,ng) = 0.0d0 525 525 do k = 2, L_LEVELS 526 if (( exp(-taucumv_cc(k,nw,ng)).ge.1.d-40) .and. (exp(-taucumv_dc(k,nw,ng)).ge.1.d-40)) then527 taucumv(k,nw,ng) = taucumv(k-1,nw,ng) - log((1-Fcloudy)*exp(-taucumv_cc(k,nw,ng)) + Fcloudy*exp(-taucumv_dc(k,nw,ng)))526 if ((taucumv_cc(k,nw,ng).le.100.) .and. (taucumv_dc(k,nw,ng).le.100.)) then 527 taucumv(k,nw,ng) = taucumv(k-1,nw,ng) + (1-Fcloudy)*taucumv_cc(k,nw,ng) + Fcloudy*taucumv_dc(k,nw,ng) 528 528 else 529 529 taucumv(k,nw,ng) = taucumv(k-1,nw,ng) + taucumv_dc(k,nw,ng) ! No need to average... … … 536 536 end do 537 537 end do 538 wbarv = (1-Fcloudy) * wbarv_cc + Fcloudy * wbarv_dc 539 cosbv = (1-Fcloudy) * cosbv_cc + Fcloudy * cosbv_dc 540 538 539 wbarv = ((1-Fcloudy) * wbarv_cc*dtauv_cc + Fcloudy * wbarv_dc *dtauv_dc) 540 wbarv = wbarv /((1-Fcloudy) * dtauv_cc + Fcloudy * dtauv_dc + 1.e-30) 541 542 cosbv = ((1-Fcloudy) * cosbv_cc * wbarv_cc*dtauv_cc + Fcloudy * cosbv_dc * wbarv_dc *dtauv_dc) 543 cosbv = cosbv /((1-Fcloudy) * wbarv_cc*dtauv_cc + Fcloudy * wbarv_dc *dtauv_dc + 1.e-30) 544 !------------------------------------------------------------------------------ 545 541 546 ! Diagnostics for clouds : 547 542 548 if (callclouds) then 543 549 where (diag_opttv_cc(:,:,1) .lt. 1.d-30) … … 585 591 end if 586 592 587 588 593 ! Equivalent Albedo Calculation (for OUTPUT). MT2015 589 594 if(fract(ig) .ge. 1.0e-4) then ! equivalent albedo makes sense only during daylight. … … 620 625 621 626 ! Mean opacity, ssa and asf : 622 where ( (exp(-dtaui_cc(:,:,:)).ge.1.d-40) .and. (exp(-dtaui_dc(:,:,:)).ge.1.d-40))623 dtaui(:,:,:) = -log((1-Fcloudy)*exp(-dtaui_cc(:,:,:)) + Fcloudy*exp(-dtaui_dc(:,:,:)))627 where (dtaui_cc(:,:,:).le.100. .and. dtaui_dc(:,:,:).le.100.) 628 dtaui(:,:,:) = (1-Fcloudy)*dtaui_cc(:,:,:) + Fcloudy*dtaui_dc(:,:,:) 624 629 elsewhere 625 630 dtaui(:,:,:) = dtaui_dc(:,:,:) ! No need to average... … … 629 634 taucumi(1,nw,ng) = 0.0d0 630 635 do k = 2, L_LEVELS 631 if ( (exp(-taucumi_cc(k,nw,ng)).ge.1.d-40) .and. (exp(-taucumi_dc(k,nw,ng)).ge.1.d-40)) then632 taucumi(k,nw,ng) = taucumi(k-1,nw,ng) - log((1-Fcloudy)*exp(-taucumi_cc(k,nw,ng)) + Fcloudy*exp(-taucumi_dc(k,nw,ng)))636 if (taucumi_cc(k,nw,ng).le.100. .and. taucumi_dc(k,nw,ng).le.100.) then 637 taucumi(k,nw,ng) = taucumi(k-1,nw,ng) + (1-Fcloudy)*taucumi_cc(k,nw,ng) + Fcloudy*taucumi_dc(k,nw,ng) 633 638 else 634 639 taucumi(k,nw,ng) = taucumi(k-1,nw,ng) + taucumi_dc(k,nw,ng) ! No need to average... … … 637 642 end do 638 643 end do 639 wbari = (1-Fcloudy) * wbari_cc + Fcloudy * wbari_dc 640 cosbi = (1-Fcloudy) * cosbi_cc + Fcloudy * cosbi_dc 644 wbari = ((1-Fcloudy) * wbari_cc*dtaui_cc + Fcloudy * wbari_dc *dtaui_dc) 645 wbari = wbari /((1-Fcloudy) * dtaui_cc+ Fcloudy * dtaui_dc+1.e-10) 646 cosbi = ((1-Fcloudy) * cosbi_cc * wbari_cc* dtaui_cc + Fcloudy * cosbi_dc * wbari_dc *dtaui_dc) 647 cosbi = cosbi /((1-Fcloudy) * wbari_cc*dtaui_cc + Fcloudy * wbari_dc *dtaui_dc+1.e-10) 648 649 !---------------------------------------------------------------------- 641 650 642 651 ! Diagnostics for clouds :
Note: See TracChangeset
for help on using the changeset viewer.
