Changeset 3353 for trunk/LMDZ.PLUTO.old


Ignore:
Timestamp:
May 31, 2024, 10:03:40 PM (6 months ago)
Author:
afalco
Message:

Pluto PCM:
Added zrecast & old sedim ;
Choose haze file ;
AF

Location:
trunk/LMDZ.PLUTO.old/libf/phypluto
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.PLUTO.old/libf/phypluto/aeroptproperties.F90

    r3175 r3353  
    3232!     ==============================================================
    3333
    34 !     Local variables 
     34!     Local variables
    3535!     ---------------
    3636
     
    247247        if(nuefftabsize.eq.1)then ! addded by RDW
    248248           !print*,'Warning: no variance range in aeroptproperties'
    249            nuefftab(1)=nueffrad(1,1,1)   ! 
     249           nuefftab(1)=nueffrad(1,1,1)   !
    250250        else
    251251           do i = 0, nuefftabsize-1
     
    253253           enddo
    254254        endif
    255      
     255
    256256      ! check that radiustab (table.dat) cover the reffrad used for haze : iaer=1
    257257        minrad=min(MINVAL(radiustab(1,1,1:nsize(1,1))),MINVAL(radiustab(1,2,1:nsize(1,2))))
    258258        maxrad=min(MAXVAL(radiustab(1,1,1:nsize(1,1))),MAXVAL(radiustab(1,2,1:nsize(1,2))))
    259         IF ((MINVAL(reffrad).LE.minrad).OR.(MAXVAL(reffrad).GE.maxrad)) then
     259        IF ((MINVAL(reffrad).LT.minrad).OR.(MAXVAL(reffrad).GT.maxrad)) then
    260260           WRITE(*,*) 'Warning: particle size in grid box #'
    261            WRITE(*,*) ig,' is too large to be used by the '
    262            WRITE(*,*) 'radiative transfer; please extend the '
    263            WRITE(*,*) 'interpolation grid to larger grain sizes.'
     261           WRITE(*,*) ig,' is larger than optical properties. '
     262           WRITE(*,*) 'reffrad=',MINVAL(reffrad),'-',MAXVAL(reffrad)
    264263           WRITE(*,*) 'radiustab=',minrad,'-',maxrad
    265            WRITE(*,*) 'reffrad=',MINVAL(reffrad),'-',MAXVAL(reffrad)
    266            stop
     264
     265           ! ensure reffrad is within bounds of radiustab
     266          !  WHERE(reffrad.LT.minrad)
     267          !     reffrad=minrad
     268          !  ENDWHERE
     269          !  WHERE(reffrad.GT.maxrad)
     270          !     reffrad=maxrad
     271          !  ENDWHERE
     272          !  WRITE(*,*) 'Truncated reffrad within radiustab bounds:'
     273          !  WRITE(*,*) 'New reffrad=',MINVAL(reffrad),'-',MAXVAL(reffrad)
    267274        ENDIF
    268275
     
    283290        DO gausind=1,ngau
    284291          drad=radiusr*radgaus(gausind)
    285           radGAUSa(gausind,iaer,idomain)=radiusm-drad 
     292          radGAUSa(gausind,iaer,idomain)=radiusm-drad
    286293
    287294          ! formule 2.33 dans these JB
     
    370377            qsqrefVISb(m,gausind,iaer)=                         &
    371378                    (1-kint)*QVISsQREF(m,iaer,radius_id) +      &
    372                     kint*QVISsQREF(m,iaer,radius_id+1)   
     379                    kint*QVISsQREF(m,iaer,radius_id+1)
    373380            omegVISb(m,gausind,iaer)=                           &
    374381                    (1-kint)*omegaVIS(m,iaer,radius_id) +       &
     
    420427          grid_i=floor(var_tmp)
    421428!         grid_i: get index of reffrad in refftab
    422          
     429
    423430          IF (grid_i.GE.refftabsize) THEN
    424431           WRITE(*,*) 'Warning: particle size in grid box #'
     
    428435           grid_i=refftabsize-1
    429436           kx = 1.
    430            stop 
     437           stop
    431438          ELSEIF (grid_i.LE.1) THEN
    432439           WRITE(*,*) 'Warning: particle size in grid box #'
     
    461468                    EXP(-dista(j,1,iaer,idomain,gausind) *            &
    462469                    dista(j,1,iaer,idomain,gausind) *                 &
    463                     0.5e0/sizedistk2)/(radiusm-drad)                 
     470                    0.5e0/sizedistk2)/(radiusm-drad)
    464471                  dista(j,1,iaer,idomain,gausind) =                   &
    465472                    dista(j,1,iaer,idomain,gausind) /                 &
     
    502509!                     Convolution:
    503510                      qextVISgrid(j,1,m,iaer) =              &
    504                         qextVISgrid(j,1,m,iaer) +            & 
     511                        qextVISgrid(j,1,m,iaer) +            &
    505512                        weightgaus(gausind) *                &
    506513                        (                                    &
     
    571578                      (                                      &
    572579                      omegrefVISb(gausind,iaer) *            &
    573                       qrefVISb(gausind,iaer) *               & 
     580                      qrefVISb(gausind,iaer) *               &
    574581                      pi*radGAUSb(gausind,iaer,idomain) *    &
    575582                      radGAUSb(gausind,iaer,idomain) *       &
     
    584591
    585592                  qrefVISgrid(j,1,iaer)=qrefVISgrid(j,1,iaer) /          &
    586                                 normd(j,1,iaer,idomain)       
     593                                normd(j,1,iaer,idomain)
    587594                  qscatrefVISgrid(j,1,iaer)=qscatrefVISgrid(j,1,iaer) /  &
    588595                                normd(j,1,iaer,idomain)
     
    699706                      )
    700707                  ENDDO
    701  
     708
    702709                  qrefIRgrid(j,1,iaer)=qrefIRgrid(j,1,iaer) /          &
    703710                                normd(j,1,iaer,idomain)
     
    752759            omegaIR3d(ig,lg,m,iaer) =                              &
    753760                        k1*omegIRgrid(grid_i,1,m,iaer) +           &
    754                         k2*omegIRgrid(grid_i+1,1,m,iaer) 
    755             gIR3d(ig,lg,m,iaer) =                                  & 
     761                        k2*omegIRgrid(grid_i+1,1,m,iaer)
     762            gIR3d(ig,lg,m,iaer) =                                  &
    756763                        k1*gIRgrid(grid_i,1,m,iaer) +              &
    757764                        k2*gIRgrid(grid_i+1,1,m,iaer)
     
    782789
    783790
    784      
     791
  • trunk/LMDZ.PLUTO.old/libf/phypluto/aerosol_mod.F90

    r3175 r3353  
    6262      IF (firstcall) then
    6363        firstcall=.false.
    64         file_path=trim(datadir)//'/haze_prop/hazemmr.txt'
     64      !   file_path=trim(datadir)//'/haze_prop/hazemmr.txt'
     65        file_path=trim(datadir)//'/haze_prop/dens_haze.txt'
    6566        open(224,file=file_path,form='formatted')
    6667        do ifine=1,Nfine
     
    6869        enddo
    6970        close(224)
    70         print*, 'TB22 read Haze MMR profile'
     71        print*, 'AF24 read Haze MMR profile ',file_path
    7172      ENDIF
    7273
     
    7980      !                                --> kg m-3 --> kg/kg
    8081      do iaer=1,naerkind
    81             if(iaer.eq.iaero_haze.and.1.eq.2) then !TB22 activate/deactivate mmr or part density   
     82            if(iaer.eq.iaero_haze.and.1.eq.1) then !TB22 activate/deactivate mmr or part density   
    8283              !print*, 'Haze profile is fixed'
    8384              do ig=1,ngrid
  • trunk/LMDZ.PLUTO.old/libf/phypluto/datafile_mod.F90

    r3175 r3353  
    1414     
    1515      ! aerdir stores aerosol properties files (optprop_*dat files)
    16       character(LEN=7),parameter :: aerdir="optprop"
     16      character(LEN=18),parameter :: aerdir="aerosol_properties"
    1717
    1818      ! Data haze properties
  • trunk/LMDZ.PLUTO.old/libf/phypluto/radii_mod.F90

    r3175 r3353  
    9191      IF (firstcall) then
    9292        firstcall=.false.
    93         file_path=trim(datadir)//'/haze_prop/hazerad.txt'
     93        file_path=trim(datadir)//'/haze_prop/rad_haze.txt'
     94      !   file_path=trim(datadir)//'/haze_prop/hazerad.txt'
    9495        open(223,file=file_path,form='formatted')
    9596        do ifine=1,Nfine
     
    9798        enddo
    9899        close(223)
    99         print*, 'TB22 READ HAZERAD'
     100        print*, 'AF24 READ HAZERAD ', file_path
    100101      ENDIF
    101102
Note: See TracChangeset for help on using the changeset viewer.