Changeset 4210 for dynamico_lmdz


Ignore:
Timestamp:
Jan 7, 2020, 10:53:19 AM (5 years ago)
Author:
dubos
Message:

simple_physics : cleanup PRINTs

Location:
dynamico_lmdz/simple_physics/phyparam/physics
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • dynamico_lmdz/simple_physics/phyparam/physics/astronomy.F90

    r4199 r4210  
    1414 
    1515  SUBROUTINE solarlong(pday,psollong)
    16 
    17 !=======================================================================
    18 !      Calcul de la distance soleil-planete et de la declinaison
    19 !   en fonction du jour de l'annee.
    20 !
    21 !   Methode:
    22 !   --------
    23 !      Calcul complet de l'ellipse
    24 !
    25 !   Input:
    26 !   ------
    27 !   pday          jour de l'annee (le jour 0 correspondant a l'equinoxe)
    28 !   lwrite        clef logique pour sorties de controle
    29 !
    30 !   Output:
    31 !   -------
    32 !   pdist_sol     distance entre le soleil et la planete
    33 !                 ( en unite astronomique pour utiliser la constante
    34 !                  solaire terrestre 1370 Wm-2 )
    35 !   pdecli        declinaison ( en radians )
    36 !
    37 !=======================================================================
    38 
    3916    USE planet
    40     REAL, INTENT(IN) :: pday
    41     REAL, INTENT(OUT) :: psollong
     17    REAL, INTENT(IN) :: pday               ! jour de l'annee (le jour 0 correspondant a l'equinoxe)
     18    REAL, INTENT(OUT) :: psollong          ! solar longitude
    4219    LOGICAL, PARAMETER ::  lwrite=.TRUE.
    43     REAL pdist_sol, pdecli
    4420
    4521! Local:
     
    8258   
    8359    IF (lwrite) THEN
    84        WRITELOG(*,*) 'jour de l"annee   :',pday
    85        WRITELOG(*,*) 'distance au soleil (en unite astronomique) :',pdist_sol
    86        WRITELOG(*,*) 'declinaison (en degres) :',pdecli*180./pi
    87        LOG_INFO('solarlong')
     60       WRITELOG(*,*) 'day of the year  :',pday
     61       WRITELOG(*,*) 'solar longitude : ',psollong
     62       LOG_DBG('solarlong')
    8863    ENDIF
    8964   
  • dynamico_lmdz/simple_physics/phyparam/physics/logging.F90

    r4206 r4210  
    2525
    2626  ! This module provides a default implementation of flush_plugin but the top-level driver is welcome to override it. 
    27   PROCEDURE(plugin), POINTER :: flush_plugin => default_flush
     27  PROCEDURE(plugin), POINTER :: flush_plugin => default_flush_plugin
    2828
    2929  ! The top-level driver MUST provide an implementation for log_gridpoint_plugin
    3030  PROCEDURE(plugin_log_gridpoint), POINTER :: log_gridpoint_plugin => NULL()
    3131
    32   INTEGER, PARAMETER :: bufsize=10000
    33   CHARACTER(bufsize) :: logging_buf(100)
     32  INTEGER, PARAMETER :: linesize=10000, logging_bufsize=100
     33  CHARACTER(linesize) :: logging_buf(logging_bufsize)
    3434
    3535  INTEGER :: logging_lineno=0
    3636
    37   INTEGER, PARAMETER, PUBLIC :: log_level_fatal=0, log_level_error=1, log_level_warn=2, log_level_info=3, log_level_dbg=4
     37  ! messages with a log level higher > max_log_level are not printed
     38  INTEGER, PARAMETER, PUBLIC :: log_level_fatal=1, log_level_error=2, log_level_warn=3, log_level_info=4, log_level_dbg=5
     39  INTEGER, PUBLIC :: max_log_level = log_level_info
    3840
    39   PUBLIC :: logging_buf, logging_lineno, flush_log, log_gridpoint, &
     41  PUBLIC :: logging_buf, logging_bufsize, logging_lineno, flush_log, log_gridpoint, &
    4042       flush_plugin, log_gridpoint_plugin
    4143
     
    4547    INTEGER, INTENT(IN) :: lev
    4648    CHARACTER(*), INTENT(IN) :: tag
    47     CALL flush_plugin(lev, TRIM(tag), logging_buf(1:logging_lineno))
     49    IF(logging_lineno>0 .AND. lev<=max_log_level) CALL flush_plugin(lev, TRIM(tag), logging_buf(1:logging_lineno))
    4850    logging_lineno=0
    4951  END SUBROUTINE flush_log
    5052
    51   SUBROUTINE default_flush(lev, tag, buf)
     53  SUBROUTINE default_flush_plugin(lev, tag, buf)
    5254    INTEGER, INTENT(IN) :: lev
    5355    CHARACTER(*), INTENT(IN) :: tag, buf(:)
     56    CHARACTER(3), DIMENSION(log_level_dbg) :: dbtag = (/ 'FAT', 'ERR', 'WRN', 'INF', 'DBG' /)
     57    CHARACTER(100) :: prefix
    5458    INTEGER :: i
     59    WRITE(prefix,*) '[', dbtag(lev), ' ', tag, ']'
    5560    DO i=1, SIZE(buf)
    56        PRINT *, '[INFO ',tag,']', TRIM(buf(i))
     61       PRINT *, TRIM(prefix), TRIM(buf(i))
    5762    END DO
    58   END SUBROUTINE default_flush
     63  END SUBROUTINE default_flush_plugin
    5964
    6065  SUBROUTINE log_gridpoint(index)
  • dynamico_lmdz/simple_physics/phyparam/physics/radiative_sw.F90

    r4205 r4210  
    11MODULE radiative_sw
     2
     3#include "use_logging.h"
     4
    25  IMPLICIT NONE
    36  SAVE
     
    135138    IF (lwrite) THEN
    136139       igout=ncount/2+1
    137        PRINT*
    138        PRINT*,'Diagnostique des transmission dans le spectre solaire'
    139        PRINT*,'zfract, zmu, zalb'
    140        PRINT*,zfract(igout), zmu(igout), zalb(igout)
    141        PRINT*,'Pression, quantite d abs, transmission'
     140       WRITELOG(*,*)
     141       WRITELOG(*,*) 'Diagnostique des transmission dans le spectre solaire'
     142       WRITELOG(*,*) 'zfract, zmu, zalb'
     143       WRITELOG(*,*) zfract(igout), zmu(igout), zalb(igout)
     144       WRITELOG(*,*) 'Pression, quantite d abs, transmission'
    142145       DO l=1,nlayer+1
    143           PRINT*,zplev(igout,l),zu(igout,l),ztrdir(igout,l)
     146          WRITELOG(*,*) zplev(igout,l),zu(igout,l),ztrdir(igout,l)
    144147       ENDDO
    145148    ENDIF
     
    157160    ENDDO
    158161    IF (lwrite) THEN
    159        PRINT*
    160        PRINT*,'Diagnostique des taux de chauffage solaires:'
    161        PRINT*,' 1 taux de chauffage lie au ray. solaire  direct'
     162       WRITELOG(*,*)
     163       WRITELOG(*,*) 'Diagnostique des taux de chauffage solaires:'
     164       WRITELOG(*,*) ' 1 taux de chauffage lie au ray. solaire  direct'
    162165       DO l=1,nlayer
    163           PRINT*,zdtsw(igout,l)
     166          WRITELOG(*,*) zdtsw(igout,l)
    164167       ENDDO
    165168    ENDIF
     
    176179    ENDDO
    177180    IF (lwrite) THEN
    178        PRINT*
    179        PRINT*,'Diagnostique des taux de chauffage solaires:'
    180        PRINT*,' 2 flux solaire net incident sur le sol'
    181        PRINT*,zflux(igout)
     181       WRITELOG(*,*)
     182       WRITELOG(*,*) 'Diagnostique des taux de chauffage solaires:'
     183       WRITELOG(*,*) ' 2 flux solaire net incident sur le sol'
     184       WRITELOG(*,*) zflux(igout)
    182185    ENDIF
    183186   
     
    194197   
    195198    IF (lwrite) THEN
    196        PRINT*
    197        PRINT*,'Diagnostique des taux de chauffage solaires'
    198        PRINT*,' 3 transmission avec les sol'
    199        PRINT*,'niveau     transmission'
     199       WRITELOG(*,*)
     200       WRITELOG(*,*) 'Diagnostique des taux de chauffage solaires'
     201       WRITELOG(*,*) ' 3 transmission avec les sol'
     202       WRITELOG(*,*) 'niveau     transmission'
    200203       DO l=1,nlevel
    201           PRINT*,l,ztrref(igout,l)
     204          WRITELOG(*,*) l,ztrref(igout,l)
    202205       ENDDO
    203206    ENDIF
     
    220223   
    221224    IF (lwrite) THEN
    222        PRINT*
    223        PRINT*,'Diagnostique des taux de chauffage solaires:'
    224        PRINT*,' 3 taux de chauffage total'
     225       WRITELOG(*,*)
     226       WRITELOG(*,*) 'Diagnostique des taux de chauffage solaires:'
     227       WRITELOG(*,*) ' 3 taux de chauffage total'
    225228       DO l=1,nlayer
    226           PRINT*,zdtsw(igout,l)
     229          WRITELOG(*,*) zdtsw(igout,l)
    227230       ENDDO
    228231    ENDIF
     
    236239       ENDDO
    237240    ELSE
    238        print*,'NOT DIURNE'
     241       WRITELOG(*,*) 'NOT DIURNE'
    239242       fsrfvis(:)=zflux(:)
    240243       dtsw(:,:)=zdtsw(:,:)
     
    247250    !        call dump2d(iim,jjm-1,albedo(2),'albedo     ')
    248251    !        call dump2d(iim,jjm-1,ztrdir(2,1),'ztrdir     ')
    249    
     252    LOG_INFO('rad_sw')
    250253   
    251254  END SUBROUTINE sw
  • dynamico_lmdz/simple_physics/phyparam/physics/solar.F90

    r4201 r4210  
    11MODULE solar
     2
     3#include "use_logging.h"
     4
    25  IMPLICIT NONE
    3 
    46  PRIVATE
    57
     
    143145    !                                                                       
    144146    !     incl=R_incl * pi_local / 180.                                     
    145     print*,'Obliquite =' ,obliquit
     147    WRITELOG(*,*) 'Obliquite =' ,obliquit
     148    LOG_INFO('solar')
     149
    146150    incl=obliquit * pi_local / 180.
    147151    !                                                                       
     
    303307    !-----------------------------------------------------------------------
    304308   
    305 !    print*,'npts,pdeclin',npts,pdeclin
    306309    z = pdeclin
    307310    cz = cos (z)
    308311    sz = sin (z)
    309 !    print*,'cz,sz',cz,sz
    310312   
    311313    DO j = 1, npts
  • dynamico_lmdz/simple_physics/phyparam/physics/surface.F90

    r4208 r4210  
    11MODULE surface
     2
     3#include "use_logging.h"
     4
    25  IMPLICIT NONE
    36  PRIVATE
     
    3437    !   --------------------------------------------------------           
    3538   
    36     print*,'nsoil,ngrid,firstcall=',nsoil,ngrid, .TRUE.
     39    WRITELOG(*,*) 'nsoil,ngrid,firstcall=',nsoil,ngrid, .TRUE.
     40
    3741    ALLOCATE(dz1(nsoil),dz2(nsoil))
    3842    ALLOCATE(zc(ngrid,nsoil),zd(ngrid,nsoil))
     
    5559    ENDDO
    5660    lambda=fz(.5)*dz1(1)
    57     PRINT*,'full layers, intermediate layers (secoonds)'
     61    WRITELOG(*,*) 'full layers, intermediate layers (secoonds)'
    5862    DO jk=1,nsoil
    5963       rk=jk
    6064       rk1=jk+.5
    6165       rk2=jk-.5
    62        PRINT*,fz(rk1)*fz(rk2)*pi,        &
    63             &      fz(rk)*fz(rk)*pi                                         
    64     ENDDO
    65    
     66       WRITELOG(*,*) fz(rk1)*fz(rk2)*pi,        &
     67            &        fz(rk)*fz(rk)*pi                                         
     68    ENDDO
     69   
     70    LOG_INFO('init_soil')
    6671  END SUBROUTINE init_soil
    6772 
     
    132137    REAL zdz2(nsoil),z1(ngrid)
    133138       
    134     print*,'firstcall soil ',firstcall
    135139    IF (firstcall) THEN
    136140       CALL init_soil(ngrid, nsoil)
  • dynamico_lmdz/simple_physics/phyparam/physics/turbulence.F90

    r4202 r4210  
    137137          ENDIF
    138138          pkh(ig,il)=pkv(ig,il)
    139           !           IF(ig.EQ.ngrid/2+1) PRINT*,il,lmix,pkv(ig,il),
    140           !    s      zdu,zdv,zdz,zdvodz2,ph(ig,il)+ph(ig,il-1),
    141           !    s      lmix*lmix*zdvodz2*(1-zri/.4),emin_turb,zri,ph(ig,il)-ph(ig,il-1),
    142           !    s      ph(ig,il),ph(ig,il-1)
    143139       ENDDO
    144140    ENDDO
     
    290286    ENDDO
    291287   
    292     IF(lwrite) THEN
    293        
     288    IF(lwrite) THEN       
    294289       WRITELOG(*,*) 'Diagnostique diffusion verticale'
    295290       WRITELOG(*,*) 'LMIXMIN',lmixmin
    296        PRINT*,'coefficients Cd pour v et h'
    297        PRINT*,zcdv(ngrid/2+1),zcdh(ngrid/2+1)
    298        PRINT*,'coefficients K pour v et h'
     291       WRITELOG(*,*) 'coefficients Cd pour v et h'
     292       WRITELOG(*,*) zcdv(ngrid/2+1),zcdh(ngrid/2+1)
     293       WRITELOG(*,*) ,'coefficients K pour v et h'
    299294       DO ilev=1,nlay
    300           PRINT*,zkv(ngrid/2+1,ilev),zkh(ngrid/2+1,ilev)
     295          WRITELOG(*,*) zkv(ngrid/2+1,ilev),zkh(ngrid/2+1,ilev)
    301296       ENDDO
    302297       LOG_DBG('vdif')
     
    433428   
    434429    IF(lwrite) THEN
    435        PRINT*
    436        PRINT*,'Diagnostique de la diffusion verticale'
    437        PRINT*,'h avant et apres diffusion verticale'
    438        PRINT*,ptsrf(ngrid/2+1),ztsrf2(ngrid/2+1)
     430       WRITELOG(*,*)
     431       WRITELOG(*,*) ,'Diagnostique de la diffusion verticale'
     432       WRITELOG(*,*) ,'h avant et apres diffusion verticale'
     433       WRITELOG(*,*) ,ptsrf(ngrid/2+1),ztsrf2(ngrid/2+1)
    439434       DO  ilev=1,nlay
    440           PRINT*,ph(ngrid/2+1,ilev),zh(ngrid/2+1,ilev)
    441        ENDDO
     435          WRITELOG(*,*) ph(ngrid/2+1,ilev),zh(ngrid/2+1,ilev)
     436       ENDDO
     437       LOG_DBG('vdif')
    442438    END IF
    443439
  • dynamico_lmdz/simple_physics/phyparam/physics/use_logging.h

    r4206 r4210  
    11   USE logging
    2 #define WRITELOG(junk, fmt) logging_lineno = logging_lineno+1 ; WRITE(logging_buf(logging_lineno), fmt)
     2#define WRITELOG(junk, fmt) logging_lineno = MIN(logging_bufsize, logging_lineno+1) ; WRITE(logging_buf(logging_lineno), fmt)
    33#define LOG_WARN(tag) CALL flush_log(log_level_warn, tag)
    44#define LOG_INFO(tag) CALL flush_log(log_level_info, tag)
Note: See TracChangeset for help on using the changeset viewer.