Ignore:
Timestamp:
Apr 30, 2015 7:05:52 AM (9 years ago)
Author:
maronga
Message:

Added support for RRTMG radiation code

File:
1 edited

Legend:

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

    r1552 r1585  
    2020! Current revisions:
    2121! -----------------
    22 !
     22! Adapted for RRTMG
    2323!
    2424! Former revisions:
     
    111111
    112112    USE radiation_model_mod,                                                   &
    113         ONLY: rad_net_av, rad_sw_in_av
     113        ONLY: rad_net, rad_net_av, rad_lw_in, rad_lw_in_av, rad_lw_out,        &
     114              rad_lw_out_av, rad_sw_in, rad_sw_in_av, rad_sw_out, rad_sw_out_av
    114115
    115116    USE random_function_mod,                                                   &
     
    333334!--    First compare the version numbers
    334335       READ ( 13 )  version_on_file
    335        binary_version = '4.0'
     336       binary_version = '4.1'
    336337       IF ( TRIM( version_on_file ) /= TRIM( binary_version ) )  THEN
    337338          WRITE( message_string, * ) 'version mismatch concerning data ',      &
     
    812813                             tmp_3d(:,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    813814
     815                CASE ( 'rad_net' )
     816                   IF ( .NOT. ALLOCATED( rad_net ) )  THEN
     817                      ALLOCATE( rad_net(nysg:nyng,nxlg:nxrg) )
     818                   ENDIF 
     819                   IF ( k == 1 )  READ ( 13 )  tmp_2d
     820                   rad_net(nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp)  = &
     821                                          tmp_2d(nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
     822
    814823                CASE ( 'rad_net_av' )
    815824                   IF ( .NOT. ALLOCATED( rad_net_av ) )  THEN
     
    819828                   rad_net_av(nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp)  = &
    820829                                          tmp_2d(nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
     830                CASE ( 'rad_lw_in' )
     831                   IF ( .NOT. ALLOCATED( rad_lw_in ) )  THEN
     832                      ALLOCATE( rad_lw_in(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
     833                   ENDIF 
     834                   IF ( k == 1 )  READ ( 13 )  tmp_3d
     835                   rad_lw_in(:,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) = &
     836                             tmp_3d(:,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
     837
     838                CASE ( 'rad_lw_in_av' )
     839                   IF ( .NOT. ALLOCATED( rad_lw_in_av ) )  THEN
     840                      ALLOCATE( rad_lw_in_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
     841                   ENDIF 
     842                   IF ( k == 1 )  READ ( 13 )  tmp_3d
     843                   rad_lw_in_av(:,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) = &
     844                             tmp_3d(:,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
     845
     846                CASE ( 'rad_lw_out' )
     847                   IF ( .NOT. ALLOCATED( rad_lw_out ) )  THEN
     848                      ALLOCATE( rad_lw_out(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
     849                   ENDIF 
     850                   IF ( k == 1 )  READ ( 13 )  tmp_3d
     851                   rad_lw_out(:,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) = &
     852                             tmp_3d(:,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
     853
     854                CASE ( 'rad_lw_out_av' )
     855                   IF ( .NOT. ALLOCATED( rad_lw_out_av ) )  THEN
     856                      ALLOCATE( rad_lw_out_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
     857                   ENDIF 
     858                   IF ( k == 1 )  READ ( 13 )  tmp_3d
     859                   rad_lw_out_av(:,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) = &
     860                             tmp_3d(:,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
     861
     862                CASE ( 'rad_sw_in' )
     863                   IF ( .NOT. ALLOCATED( rad_sw_in ) )  THEN
     864                      ALLOCATE( rad_sw_in(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
     865                   ENDIF 
     866                   IF ( k == 1 )  READ ( 13 )  tmp_3d
     867                   rad_sw_in(:,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) = &
     868                             tmp_3d(:,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    821869
    822870                CASE ( 'rad_sw_in_av' )
    823871                   IF ( .NOT. ALLOCATED( rad_sw_in_av ) )  THEN
    824                       ALLOCATE( rad_sw_in_av(nysg:nyng,nxlg:nxrg) )
    825                    ENDIF 
    826                    IF ( k == 1 )  READ ( 13 )  tmp_2d
    827                    rad_sw_in_av(nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp)  = &
    828                                           tmp_2d(nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
     872                      ALLOCATE( rad_sw_in_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
     873                   ENDIF 
     874                   IF ( k == 1 )  READ ( 13 )  tmp_3d
     875                   rad_sw_in_av(:,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) = &
     876                             tmp_3d(:,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
     877
     878                CASE ( 'rad_sw_out' )
     879                   IF ( .NOT. ALLOCATED( rad_sw_out ) )  THEN
     880                      ALLOCATE( rad_sw_out(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
     881                   ENDIF 
     882                   IF ( k == 1 )  READ ( 13 )  tmp_3d
     883                   rad_sw_out(:,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) = &
     884                             tmp_3d(:,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
     885
     886                CASE ( 'rad_sw_out_av' )
     887                   IF ( .NOT. ALLOCATED( rad_sw_out_av ) )  THEN
     888                      ALLOCATE( rad_sw_out_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
     889                   ENDIF 
     890                   IF ( k == 1 )  READ ( 13 )  tmp_3d
     891                   rad_sw_out_av(:,nysc-nbgp:nync+nbgp,nxlc-nbgp:nxrc+nbgp) = &
     892                             tmp_3d(:,nysf-nbgp:nynf+nbgp,nxlf-nbgp:nxrf+nbgp)
    829893
    830894                CASE ( 'random_iv' )  ! still unresolved issue
Note: See TracChangeset for help on using the changeset viewer.