Ignore:
Timestamp:
Jul 27, 2016 1:28:04 PM (8 years ago)
Author:
maronga
Message:

further modularization of land surface model (2D/3D output and restart data). Bugfix for restart runs without land surface model

File:
1 edited

Legend:

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

    r1973 r1976  
    1919! Current revisions:
    2020! -----------------
    21 !
     21! Output of radiation quantities is now done directly in the respective module
    2222!
    2323! Former revisions:
     
    2626!
    2727! 1972 2016-07-26 07:52:02Z maronga
    28 ! Output of land surface quantities is now done directly in the respective module
     28! Output of land surface quantities is now done directly in the respective
     29! module
    2930!
    3031! 1960 2016-07-12 16:34:24Z suehring
     
    195196
    196197    USE radiation_model_mod,                                                   &
    197         ONLY:  rad_net, rad_net_av, rad_sw_in, rad_sw_in_av, rad_sw_out,       &
    198                rad_sw_out_av, rad_sw_cs_hr, rad_sw_cs_hr_av, rad_sw_hr,        &
    199                rad_sw_hr_av, rad_lw_in, rad_lw_in_av, rad_lw_out,              &
    200                rad_lw_out_av, rad_lw_cs_hr, rad_lw_cs_hr_av, rad_lw_hr,        &
    201                rad_lw_hr_av
     198        ONLY:  radiation, radiation_data_output_2d
    202199
    203200    IMPLICIT NONE
     
    753750                IF ( mode == 'xy' )  level_z = zu
    754751
    755              CASE ( 'rad_net*_xy' )        ! 2d-array
    756                 IF ( av == 0 ) THEN
    757                    DO  i = nxlg, nxrg
    758                       DO  j = nysg, nyng
    759                          local_pf(i,j,nzb+1) =  rad_net(j,i)
    760                       ENDDO
    761                    ENDDO
    762                 ELSE
    763                    DO  i = nxlg, nxrg
    764                       DO  j = nysg, nyng
    765                          local_pf(i,j,nzb+1) =  rad_net_av(j,i)
    766                       ENDDO
    767                    ENDDO
    768                 ENDIF
    769                 resorted = .TRUE.
    770                 two_d = .TRUE.
    771                 level_z(nzb+1) = zu(nzb+1)
    772 
    773 
    774              CASE ( 'rad_lw_in_xy', 'rad_lw_in_xz', 'rad_lw_in_yz' )
    775                 IF ( av == 0 )  THEN
    776                    to_be_resorted => rad_lw_in
    777                 ELSE
    778                    to_be_resorted => rad_lw_in_av
    779                 ENDIF
    780                 IF ( mode == 'xy' )  level_z = zu
    781 
    782              CASE ( 'rad_lw_out_xy', 'rad_lw_out_xz', 'rad_lw_out_yz' )
    783                 IF ( av == 0 )  THEN
    784                    to_be_resorted => rad_lw_out
    785                 ELSE
    786                    to_be_resorted => rad_lw_out_av
    787                 ENDIF
    788                 IF ( mode == 'xy' )  level_z = zu
    789 
    790              CASE ( 'rad_lw_cs_hr_xy', 'rad_lw_cs_hr_xz', 'rad_lw_cs_hr_yz' )
    791                 IF ( av == 0 )  THEN
    792                    to_be_resorted => rad_lw_cs_hr
    793                 ELSE
    794                    to_be_resorted => rad_lw_cs_hr_av
    795                 ENDIF
    796                 IF ( mode == 'xy' )  level_z = zw
    797 
    798              CASE ( 'rad_lw_hr_xy', 'rad_lw_hr_xz', 'rad_lw_hr_yz' )
    799                 IF ( av == 0 )  THEN
    800                    to_be_resorted => rad_lw_hr
    801                 ELSE
    802                    to_be_resorted => rad_lw_hr_av
    803                 ENDIF
    804                 IF ( mode == 'xy' )  level_z = zw
    805 
    806              CASE ( 'rad_sw_in_xy', 'rad_sw_in_xz', 'rad_sw_in_yz' )
    807                 IF ( av == 0 )  THEN
    808                    to_be_resorted => rad_sw_in
    809                 ELSE
    810                    to_be_resorted => rad_sw_in_av
    811                 ENDIF
    812                 IF ( mode == 'xy' )  level_z = zu
    813 
    814              CASE ( 'rad_sw_out_xy', 'rad_sw_out_xz', 'rad_sw_out_yz' )
    815                 IF ( av == 0 )  THEN
    816                    to_be_resorted => rad_sw_out
    817                 ELSE
    818                    to_be_resorted => rad_sw_out_av
    819                 ENDIF
    820                 IF ( mode == 'xy' )  level_z = zu
    821 
    822              CASE ( 'rad_sw_cs_hr_xy', 'rad_sw_cs_hr_xz', 'rad_sw_cs_hr_yz' )
    823                 IF ( av == 0 )  THEN
    824                    to_be_resorted => rad_sw_cs_hr
    825                 ELSE
    826                    to_be_resorted => rad_sw_cs_hr_av
    827                 ENDIF
    828                 IF ( mode == 'xy' )  level_z = zw
    829 
    830              CASE ( 'rad_sw_hr_xy', 'rad_sw_hr_xz', 'rad_sw_hr_yz' )
    831                 IF ( av == 0 )  THEN
    832                    to_be_resorted => rad_sw_hr
    833                 ELSE
    834                    to_be_resorted => rad_sw_hr_av
    835                 ENDIF
    836                 IF ( mode == 'xy' )  level_z = zw
     752
    837753
    838754             CASE ( 'rho_xy', 'rho_xz', 'rho_yz' )
     
    1034950                   CALL lsm_data_output_2d( av, do2d(av,if), found, grid, mode,&
    1035951                                            local_pf, two_d, nzb_do, nzt_do )
     952                ENDIF
     953
     954!
     955!--             Radiation quantity
     956                IF ( .NOT. found  .AND.  radiation )  THEN
     957                   CALL radiation_data_output_2d( av, do2d(av,if), found, grid,&
     958                                                  mode, local_pf, two_d  )
    1036959                ENDIF
    1037960
Note: See TracChangeset for help on using the changeset viewer.