Changeset 4558 for palm


Ignore:
Timestamp:
Jun 10, 2020 4:27:30 PM (4 years ago)
Author:
moh.hefny
Message:

Bugfix in RTM output average quantities

Location:
palm/trunk/SOURCE
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • palm/trunk/SOURCE/average_3d_data.f90

    r4514 r4558  
    2424! -----------------
    2525! $Id$
     26! bugfix: average_count_3d is set to integer 0
     27!
     28! 4514 2020-04-30 16:29:59Z suehring
    2629! Enable output of qsurf and ssurf
    2730!
     
    463466!
    464467!-- Reset the counter
    465     average_count_3d = 0.0
     468    average_count_3d = 0_iwp
    466469
    467470    CALL cpu_log( log_point(35), 'average_3d_data', 'stop' )
  • palm/trunk/SOURCE/radiation_model_mod.f90

    r4555 r4558  
    2828! -----------------
    2929! $Id$
     30! Bugfix: - reset RTM output average values after each averaging timestep to zero
     31!         - correct calculation of rtm_rad_net_av
     32!
     33! 4555 2020-06-05 21:52:00Z moh.hefny
    3034! Bugfix in averaging PC and MRT related quantities
    3135!
     
    99829986                 IF ( .NOT.  ALLOCATED(surfradnet_av) )  THEN
    99839987                     ALLOCATE( surfradnet_av(nsurfl) )
    9984                      surfradnet_av = 0.0_wp
    99859988                 ENDIF
     9989                 surfradnet_av = 0.0_wp
    99869990
    99879991             CASE ( 'rtm_rad_insw' )
     
    99899993                 IF ( .NOT.  ALLOCATED(surfinsw_av) )  THEN
    99909994                     ALLOCATE( surfinsw_av(nsurfl) )
    9991                      surfinsw_av = 0.0_wp
    99929995                 ENDIF
     9996                 surfinsw_av = 0.0_wp
    99939997
    99949998             CASE ( 'rtm_rad_inlw' )
     
    999610000                 IF ( .NOT.  ALLOCATED(surfinlw_av) )  THEN
    999710001                     ALLOCATE( surfinlw_av(nsurfl) )
    9998                      surfinlw_av = 0.0_wp
    999910002                 ENDIF
     10003                 surfinlw_av = 0.0_wp
    1000010004
    1000110005             CASE ( 'rtm_rad_inswdir' )
     
    1000310007                 IF ( .NOT.  ALLOCATED(surfinswdir_av) )  THEN
    1000410008                     ALLOCATE( surfinswdir_av(nsurfl) )
    10005                      surfinswdir_av = 0.0_wp
    1000610009                 ENDIF
     10010                 surfinswdir_av = 0.0_wp
    1000710011
    1000810012             CASE ( 'rtm_rad_inswdif' )
     
    1001010014                 IF ( .NOT.  ALLOCATED(surfinswdif_av) )  THEN
    1001110015                     ALLOCATE( surfinswdif_av(nsurfl) )
    10012                      surfinswdif_av = 0.0_wp
    1001310016                 ENDIF
     10017                 surfinswdif_av = 0.0_wp
    1001410018
    1001510019             CASE ( 'rtm_rad_inswref' )
     
    1001710021                 IF ( .NOT.  ALLOCATED(surfinswref_av) )  THEN
    1001810022                     ALLOCATE( surfinswref_av(nsurfl) )
    10019                      surfinswref_av = 0.0_wp
    1002010023                 ENDIF
     10024                 surfinswref_av = 0.0_wp
    1002110025
    1002210026             CASE ( 'rtm_rad_inlwdif' )
     
    1002410028                IF ( .NOT.  ALLOCATED(surfinlwdif_av) )  THEN
    1002510029                     ALLOCATE( surfinlwdif_av(nsurfl) )
    10026                      surfinlwdif_av = 0.0_wp
    1002710030                 ENDIF
     10031                 surfinlwdif_av = 0.0_wp
    1002810032
    1002910033             CASE ( 'rtm_rad_inlwref' )
     
    1003110035                 IF ( .NOT.  ALLOCATED(surfinlwref_av) )  THEN
    1003210036                     ALLOCATE( surfinlwref_av(nsurfl) )
    10033                      surfinlwref_av = 0.0_wp
    1003410037                 ENDIF
     10038                 surfinlwref_av = 0.0_wp
    1003510039
    1003610040             CASE ( 'rtm_rad_outsw' )
     
    1003810042                 IF ( .NOT.  ALLOCATED(surfoutsw_av) )  THEN
    1003910043                     ALLOCATE( surfoutsw_av(nsurfl) )
    10040                      surfoutsw_av = 0.0_wp
    1004110044                 ENDIF
     10045                 surfoutsw_av = 0.0_wp
    1004210046
    1004310047             CASE ( 'rtm_rad_outlw' )
     
    1005110055                 IF ( .NOT.  ALLOCATED(surfins_av) )  THEN
    1005210056                     ALLOCATE( surfins_av(nsurfl) )
    10053                      surfins_av = 0.0_wp
    1005410057                 ENDIF
     10058                 surfins_av = 0.0_wp
    1005510059
    1005610060             CASE ( 'rtm_rad_reslw' )
     
    1005810062                 IF ( .NOT.  ALLOCATED(surfinl_av) )  THEN
    1005910063                     ALLOCATE( surfinl_av(nsurfl) )
    10060                      surfinl_av = 0.0_wp
    1006110064                 ENDIF
     10065                 surfinl_av = 0.0_wp
    1006210066
    1006310067             CASE ( 'rtm_rad_pc_inlw' )
     
    1007210076                 IF ( .NOT.  ALLOCATED(pcbinsw_av) )  THEN
    1007310077                     ALLOCATE( pcbinsw_av(1:npcbl) )
    10074                      pcbinsw_av = 0.0_wp
    1007510078                 ENDIF
     10079                 pcbinsw_av = 0.0_wp
    1007610080
    1007710081             CASE ( 'rtm_rad_pc_inswdir' )
     
    1007910083                 IF ( .NOT.  ALLOCATED(pcbinswdir_av) )  THEN
    1008010084                     ALLOCATE( pcbinswdir_av(1:npcbl) )
    10081                      pcbinswdir_av = 0.0_wp
    1008210085                 ENDIF
     10086                 pcbinswdir_av = 0.0_wp
    1008310087
    1008410088             CASE ( 'rtm_rad_pc_inswdif' )
     
    1008610090                 IF ( .NOT.  ALLOCATED(pcbinswdif_av) )  THEN
    1008710091                     ALLOCATE( pcbinswdif_av(1:npcbl) )
    10088                      pcbinswdif_av = 0.0_wp
    1008910092                 ENDIF
     10093                 pcbinswdif_av = 0.0_wp
    1009010094
    1009110095             CASE ( 'rtm_rad_pc_inswref' )
     
    1009310097                 IF ( .NOT.  ALLOCATED(pcbinswref_av) )  THEN
    1009410098                     ALLOCATE( pcbinswref_av(1:npcbl) )
    10095                      pcbinswref_av = 0.0_wp
    1009610099                 ENDIF
     10100                 pcbinswref_av = 0.0_wp
    1009710101
    1009810102             CASE ( 'rtm_mrt_sw' )
     
    1033410338              DO isurf = dirstart(ids), dirend(ids)
    1033510339                 IF ( surfl(id,isurf) == idsint_u  .OR.  surfl(id,isurf) == idsint_l )  THEN
    10336                     surfradnet_av(isurf) = surfinsw(isurf) - surfoutsw(isurf) +  surfinlw(isurf) - surfoutlw(isurf)
     10340                    surfradnet_av(isurf) = surfradnet_av(isurf) +               &
     10341                                           surfinsw(isurf) - surfoutsw(isurf) + &
     10342                                           surfinlw(isurf) - surfoutlw(isurf)
    1033710343                 ENDIF
    1033810344              ENDDO
     
    1062910635              DO isurf = dirstart(ids), dirend(ids)
    1063010636                  IF ( surfl(id,isurf) == idsint_u  .OR.  surfl(id,isurf) == idsint_l )  THEN
    10631                       surfradnet_av(isurf) = surfinsw_av(isurf) / REAL( average_count_3d, kind=wp )
     10637                      surfradnet_av(isurf) = surfradnet_av(isurf) / REAL( average_count_3d, kind=wp )
    1063210638                  ENDIF
    1063310639              ENDDO
Note: See TracChangeset for help on using the changeset viewer.