Ignore:
Timestamp:
May 15, 2024, 8:29:23 PM (8 months ago)
Author:
afalco
Message:

Pluto PCM:
Include cooling, hazes in radiative module
AF

File:
1 edited

Legend:

Unmodified
Added
Removed
  • TabularUnified trunk/LMDZ.PLUTO/libf/phypluto/dyn1d/rcm1d.F

    r3258 r3329  
    2222      use time_phylmdz_mod, only: daysec, dtphys, day_step, ecritphy,
    2323     &                            nday, iphysiq
    24       use callkeys_mod, only: tracer, specOLR,pceil
     24      use callkeys_mod, only: tracer, specOLR,pceil,haze
    2525      USE comvert_mod, ONLY: ap,bp,aps,bps,pa,preff, sig,
    2626     &                       presnivs,pseudoalt,scaleheight
     
    7878c
    7979      INTEGER day0          ! date initial (sol ; =0 a Ls=0)
     80      INTEGER lecttsoil     ! lecture of tsoil from proftsoil
     81      INTEGER lecthaze      ! lecture of haze from profhaze
    8082      REAL day              ! date durant le run
    8183      REAL time             ! time (0<time<1 ; time=0.5 a midi)
     
    329331            endif
    330332          enddo !of do iq=1,nq
    331 ! check for n2 / h2o_ice tracers:
     333! check for n2 / ch4_ice tracers:
    332334         i_n2=0
    333335         do iq=1,nq
     
    342344           elseif (tname(iq)=="co_gas") then
    343345             i_co_gas=iq
     346           elseif (tname(iq)=="haze") then
     347             i_haze=iq
    344348           endif
    345349         enddo
     
    657661                q(ilayer,iq) = 0.01*coref*28./28.
    658662                ENDDO
    659             ! else if ((iq.eq.i_haze10).or.(iq.eq.i_haze30).or.(iq.eq.i_haze).or.(iq.eq.i_haze50).or.(iq.eq.i_haze100)) then
    660             !     hazeref=0. ! default value for haze mmr
    661             !     PRINT *,'qhaze (kg/kg) ?'
    662             !     call getin("hazeref",hazeref)
    663             !     write(*,*) " haze ref (kg/kg) = ",hazeref
    664             !     DO ilayer=1,nlayer
    665             !         q(ilayer,iq) = hazeref
    666             !     ENDDO
    667             ! else if (iq.eq.i_prec_haze) then
    668             !     prechazeref=0. ! default value for vmr ch4
    669             !     PRINT *,'qprechaze (kg/kg) ?'
    670             !     call getin("prechazeref",prechazeref)
    671             !     write(*,*) " prec haze ref (kg/kg) = ",prechazeref
    672             !     DO ilayer=1,nlayer
    673             !         q(ilayer,iq) = prechazeref
    674             !     ENDDO
    675 
     663            else if ((iq.eq.i_haze10).or.(iq.eq.i_haze30)
     664     &               .or.(iq.eq.i_haze).or.(iq.eq.i_haze50)
     665     &               .or.(iq.eq.i_haze100)) then
     666                hazeref=0. ! default value for haze mmr
     667                PRINT *,'qhaze (kg/kg) ?'
     668                call getin("hazeref",hazeref)
     669                write(*,*) " haze ref (kg/kg) = ",hazeref
     670                DO ilayer=1,nlayer
     671                    q(ilayer,iq) = hazeref
     672                ENDDO
     673            else if (iq.eq.i_prec_haze) then
     674                prechazeref=0. ! default value for vmr ch4
     675                PRINT *,'qprechaze (kg/kg) ?'
     676                call getin("prechazeref",prechazeref)
     677                write(*,*) " prec haze ref (kg/kg) = ",prechazeref
     678                DO ilayer=1,nlayer
     679                    q(ilayer,iq) = prechazeref
     680                ENDDO
    676681            else
    677682                DO ilayer=1,nlayer
     
    856861! ------------------------------------------
    857862      volcapa=1.e6 ! volumetric heat capacity
    858       DO isoil=1,nsoil
     863      lecttsoil=0 ! default value for lecttsoil
     864      call getin("lecttsoil",lecttsoil)
     865      if (lecttsoil==1) then
     866         OPEN(14,file='proftsoil',status='old',form='formatted',err=101)
     867         DO isoil=1,nsoil
     868            READ (14,*) tsoil(isoil)
     869            inertiedat(1,isoil)=inertiedat(1,1) ! soil thermal inertia
     870         ENDDO
     871         GOTO 201
     872101      STOP'fichier proftsoil inexistant'
     873201      CONTINUE
     874         CLOSE(14)
     875
     876      else
     877        DO isoil=1,nsoil
    859878         inertiedat(1,isoil)=inertiedat(1,1) ! soil thermal inertia
    860879         tsoil(isoil)=tsurf(1)  ! soil temperature
    861       ENDDO
     880        ENDDO
     881      endif
     882
    862883
    863884! Initialize depths
     
    870891      enddo
    871892
     893!     Initialize haze profile
     894!     ------------------------------------------
     895      if (haze) then
     896
     897      lecthaze=0 ! default value for lecthaze
     898      call getin("lecthaze",lecthaze)
     899      if (lecthaze==1) then
     900         OPEN(15,file='profhaze',status='old',form='formatted',err=301)
     901         DO iq=1,nq
     902            if (iq.eq.i_haze) then
     903            DO ilayer=1,nlayer
     904               READ (15,*) q(ilayer,iq)
     905            ENDDO
     906            endif
     907         ENDDO
     908         GOTO 401
     909301      STOP'fichier profhaze inexistant'
     910401      CONTINUE
     911         CLOSE(15)
     912      endif
     913      endif
    872914! Initialize cloud fraction and oceanic ice !AF24: removed
    873915! Initialize slab ocean !AF24: removed
     
    10221064         CLOSE(12)
    10231065      endif
    1024 
     1066! save haze profile
     1067      if (haze.and.lecthaze.eq.1) then
     1068            OPEN(16,file='profhaze.out',form='formatted')
     1069            DO iq=1,nq
     1070             if (iq.eq.i_haze) then
     1071               DO ilayer=1,nlayer
     1072                 write(16,*) q(ilayer,iq)
     1073               ENDDO
     1074             endif
     1075            ENDDO
     1076            CLOSE(16)
     1077         endif
    10251078
    10261079      ENDDO   ! fin de la boucle temporelle
Note: See TracChangeset for help on using the changeset viewer.