/[lmdze]/trunk/phylmd/physiq.f
ViewVC logotype

Diff of /trunk/phylmd/physiq.f

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 215 by guez, Tue Mar 28 12:46:28 2017 UTC revision 217 by guez, Thu Mar 30 14:25:18 2017 UTC
# Line 234  contains Line 234  contains
234    
235      INTEGER julien      INTEGER julien
236      REAL, save:: pctsrf(klon, nbsrf) ! percentage of surface      REAL, save:: pctsrf(klon, nbsrf) ! percentage of surface
237      REAL, save:: albsol(klon) ! albedo du sol total visible      REAL, save:: albsol(klon) ! albedo du sol total, visible, moyen par maille
238      REAL, SAVE:: wo(klon, llm) ! column density of ozone in a cell, in kDU      REAL, SAVE:: wo(klon, llm) ! column density of ozone in a cell, in kDU
239      real, parameter:: dobson_u = 2.1415e-05 ! Dobson unit, in kg m-2      real, parameter:: dobson_u = 2.1415e-05 ! Dobson unit, in kg m-2
240    
# Line 397  contains Line 397  contains
397    
398      ! Aerosol effects:      ! Aerosol effects:
399    
     REAL sulfate(klon, llm) ! SO4 aerosol concentration (micro g / m3)  
   
     REAL, save:: sulfate_pi(klon, llm)  
     ! SO4 aerosol concentration, in \mu g / m3, pre-industrial value  
   
     REAL cldtaupi(klon, llm)  
     ! cloud optical thickness for pre-industrial aerosols  
   
     REAL re(klon, llm) ! Cloud droplet effective radius  
     REAL fl(klon, llm) ! denominator of re  
   
     ! Aerosol optical properties  
     REAL, save:: tau_ae(klon, llm, 2), piz_ae(klon, llm, 2)  
     REAL, save:: cg_ae(klon, llm, 2)  
   
400      REAL, save:: topswad(klon), solswad(klon) ! aerosol direct effect      REAL, save:: topswad(klon), solswad(klon) ! aerosol direct effect
     REAL, save:: topswai(klon), solswai(klon) ! aerosol indirect effect  
   
401      LOGICAL:: ok_ade = .false. ! apply aerosol direct effect      LOGICAL:: ok_ade = .false. ! apply aerosol direct effect
     LOGICAL:: ok_aie = .false. ! apply aerosol indirect effect  
402    
403      REAL:: bl95_b0 = 2., bl95_b1 = 0.2      REAL:: bl95_b0 = 2., bl95_b1 = 0.2
404      ! Parameters in equation (D) of Boucher and Lohmann (1995, Tellus      ! Parameters in equation (D) of Boucher and Lohmann (1995, Tellus
# Line 429  contains Line 411  contains
411      integer, save:: ncid_startphy      integer, save:: ncid_startphy
412    
413      namelist /physiq_nml/ fact_cldcon, facttemps, ok_newmicro, iflag_cldcon, &      namelist /physiq_nml/ fact_cldcon, facttemps, ok_newmicro, iflag_cldcon, &
414           ratqsbas, ratqshaut, ok_ade, ok_aie, bl95_b0, bl95_b1, &           ratqsbas, ratqshaut, ok_ade, bl95_b0, bl95_b1, iflag_thermals, &
415           iflag_thermals, nsplit_thermals           nsplit_thermals
416    
417      !----------------------------------------------------------------      !----------------------------------------------------------------
418    
# Line 445  contains Line 427  contains
427         q2m = 0.         q2m = 0.
428         ffonte = 0.         ffonte = 0.
429         fqcalving = 0.         fqcalving = 0.
        piz_ae = 0.  
        tau_ae = 0.  
        cg_ae = 0.  
430         rain_con = 0.         rain_con = 0.
431         snow_con = 0.         snow_con = 0.
        topswai = 0.  
        topswad = 0.  
        solswai = 0.  
        solswad = 0.  
   
432         d_u_con = 0.         d_u_con = 0.
433         d_v_con = 0.         d_v_con = 0.
434         rnebcon0 = 0.         rnebcon0 = 0.
435         clwcon0 = 0.         clwcon0 = 0.
436         rnebcon = 0.         rnebcon = 0.
437         clwcon = 0.         clwcon = 0.
   
438         pblh =0. ! Hauteur de couche limite         pblh =0. ! Hauteur de couche limite
439         plcl =0. ! Niveau de condensation de la CLA         plcl =0. ! Niveau de condensation de la CLA
440         capCL =0. ! CAPE de couche limite         capCL =0. ! CAPE de couche limite
# Line 513  contains Line 486  contains
486    
487         ! Initialisation des sorties         ! Initialisation des sorties
488    
489         call ini_histins(dtphys)         call ini_histins(dtphys, ok_newmicro)
490         CALL ymds2ju(annee_ref, 1, day_ref, 0., date0)         CALL ymds2ju(annee_ref, 1, day_ref, 0., date0)
491         ! Positionner date0 pour initialisation de ORCHIDEE         ! Positionner date0 pour initialisation de ORCHIDEE
492         print *, 'physiq date0: ', date0         print *, 'physiq date0: ', date0
# Line 584  contains Line 557  contains
557    
558      CALL orbite(REAL(julien), longi, dist)      CALL orbite(REAL(julien), longi, dist)
559      CALL zenang(longi, time, dtphys * radpas, mu0, fract)      CALL zenang(longi, time, dtphys * radpas, mu0, fract)
   
     ! Calcul de l'abedo moyen par maille  
560      albsol = sum(falbe * pctsrf, dim = 2)      albsol = sum(falbe * pctsrf, dim = 2)
561    
562      ! R\'epartition sous maille des flux longwave et shortwave      ! R\'epartition sous maille des flux longwave et shortwave
# Line 897  contains Line 868  contains
868         ENDDO         ENDDO
869      ENDDO      ENDDO
870    
     ! Introduce the aerosol direct and first indirect radiative forcings:  
     tau_ae = 0.  
     piz_ae = 0.  
     cg_ae = 0.  
   
871      ! Param\`etres optiques des nuages et quelques param\`etres pour      ! Param\`etres optiques des nuages et quelques param\`etres pour
872      ! diagnostics :      ! diagnostics :
873      if (ok_newmicro) then      if (ok_newmicro) then
874         CALL newmicro(paprs, play, t_seri, cldliq, cldfra, cldtau, cldemi, &         CALL newmicro(paprs, play, t_seri, cldliq, cldfra, cldtau, cldemi, &
875              cldh, cldl, cldm, cldt, cldq, flwp, fiwp, flwc, fiwc, ok_aie, &              cldh, cldl, cldm, cldt, cldq, flwp, fiwp, flwc, fiwc)
             sulfate, sulfate_pi, bl95_b0, bl95_b1, cldtaupi, re, fl)  
876      else      else
877         CALL nuage(paprs, play, t_seri, cldliq, cldfra, cldtau, cldemi, cldh, &         CALL nuage(paprs, play, t_seri, cldliq, cldfra, cldtau, cldemi, cldh, &
878              cldl, cldm, cldt, cldq, ok_aie, sulfate, sulfate_pi, bl95_b0, &              cldl, cldm, cldt, cldq)
             bl95_b1, cldtaupi, re, fl)  
879      endif      endif
880    
881      IF (MOD(itap - 1, radpas) == 0) THEN      IF (MOD(itap - 1, radpas) == 0) THEN
        ! Prescrire l'ozone :  
882         wo = ozonecm(REAL(julien), paprs)         wo = ozonecm(REAL(julien), paprs)
   
        ! Appeler le rayonnement mais calculer tout d'abord l'albedo du sol.  
        ! Calcul de l'abedo moyen par maille  
883         albsol = sum(falbe * pctsrf, dim = 2)         albsol = sum(falbe * pctsrf, dim = 2)
   
        ! Rayonnement (compatible Arpege-IFS) :  
884         CALL radlwsw(dist, mu0, fract, paprs, play, ztsol, albsol, t_seri, &         CALL radlwsw(dist, mu0, fract, paprs, play, ztsol, albsol, t_seri, &
885              q_seri, wo, cldfra, cldemi, cldtau, heat, heat0, cool, cool0, &              q_seri, wo, cldfra, cldemi, cldtau, heat, heat0, cool, cool0, &
886              radsol, albpla, topsw, toplw, solsw, sollw, sollwdown, topsw0, &              radsol, albpla, topsw, toplw, solsw, sollw, sollwdown, topsw0, &
887              toplw0, solsw0, sollw0, lwdn0, lwdn, lwup0, lwup, swdn0, swdn, &              toplw0, solsw0, sollw0, lwdn0, lwdn, lwup0, lwup, swdn0, swdn, &
888              swup0, swup, ok_ade, ok_aie, tau_ae, piz_ae, cg_ae, topswad, &              swup0, swup, ok_ade, topswad, solswad)
             solswad, cldtaupi, topswai, solswai)  
889      ENDIF      ENDIF
890    
891      ! Ajouter la tendance des rayonnements (tous les pas)      ! Ajouter la tendance des rayonnements (tous les pas)

Legend:
Removed from v.215  
changed lines
  Added in v.217

  ViewVC Help
Powered by ViewVC 1.1.21