Changeset 130 for palm/trunk/SOURCE


Ignore:
Timestamp:
Nov 13, 2007 2:08:40 PM (16 years ago)
Author:
letzel
Message:

DVRP output modifications:

  • The user can now visualize user-defined quantities using dvrp.

data_output_dvrp calls the new user_interface subroutine
user_data_output_dvrp in case of unknown variables (CASE DEFAULT).

  • Two instead of one digit are allowed to specify isosurface and slicer

variables with the parameter mode_dvrp.

Location:
palm/trunk/SOURCE
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • palm/trunk/SOURCE/CURRENT_MODIFICATIONS

    r129 r130  
    11New:
    22---
     3
     4For unknown variables (CASE DEFAULT) call new subroutine user_data_output_dvrp
    35
    46Pressure boundary conditions for vertical walls added to the multigrid solver.
     
    1113advec_particles after the end of this loop.
    1214
    13 advec_particles, check_parameters, header, init_grid, init_particles, init_pegrid, modules, package_parin, read_var_list, user_interface, write_var_list
     15advec_particles, check_parameters, data_output_dvrp, header, init_grid, init_particles, init_pegrid, modules, package_parin, read_var_list, user_interface, write_var_list
    1416
    1517
    1618Changed:
    1719-------
     20
     21Allow two instead of one digit to specify isosurface and slicer variables.
    1822
    1923Status of 3D-volume NetCDF data file only depends on switch netcdf_64bit_3d (check_open)
     
    2933humidity/scalar/salinity in a future release.
    3034
    31 check_open, diffusion_s, modules, prognostic_equations
     35check_open, data_output_dvrp, diffusion_s, header, init_dvrp, modules, prognostic_equations
    3236
    3337
  • palm/trunk/SOURCE/data_output_dvrp.f90

    r106 r130  
    3232! Actual revisions:
    3333! -----------------
     34! allow two instead of one digit to specify isosurface and slicer variables
     35! for unknown variables (CASE DEFAULT) call new subroutine
     36! user_data_output_dvrp
    3437! TEST: different colours for isosurfaces
    3538! TEST: write statements
     
    116119!--    isosurfaces)
    117120       IF ( mode_dvrp(m)(1:10) == 'isosurface' )  THEN
    118           READ ( mode_dvrp(m), '(10X,I1)' )  vn
     121          READ ( mode_dvrp(m), '(10X,I2)' )  vn
    119122          output_variable = do3d(0,vn)
    120123          tv = tv + 1
    121124       ELSEIF ( mode_dvrp(m)(1:6) == 'slicer' )  THEN
    122           READ ( mode_dvrp(m), '(6X,I1)' )  vn
     125          READ ( mode_dvrp(m), '(6X,I2)' )  vn
    123126          output_variable = do2d(0,vn)
    124127          l = MAX( 2, LEN_TRIM( do2d(0,vn) ) )
     
    410413
    411414             CASE DEFAULT
    412                 IF ( myid == 0 )  THEN
    413                    PRINT*,'+++ data_output_dvrp: no output possible for: ', &
    414                           output_variable
    415                 ENDIF
     415!
     416!--             The DEFAULT case is reached either if output_variable contains
     417!--             unsupported variable or if the user has coded a special case in
     418!--             the user interface. There, the subroutine user_data_output_dvrp
     419!--             checks which of these two conditions applies.
     420                CALL user_data_output_dvrp( output_variable, local_pf )
     421
    416422
    417423          END SELECT
  • palm/trunk/SOURCE/header.f90

    r117 r130  
    44! Actual revisions:
    55! -----------------
     6! allow two instead of one digit to specify isosurface and slicer variables
    67! Output of sorting frequency of particles
    78!
     
    866867       DO WHILE ( mode_dvrp(i) /= ' ' )
    867868          IF ( mode_dvrp(i)(1:10) == 'isosurface' )  THEN
    868              READ ( mode_dvrp(i), '(10X,I1)' )  j
     869             READ ( mode_dvrp(i), '(10X,I2)' )  j
    869870             l = l + 1
    870871             IF ( do3d(0,j) /= ' ' )  THEN
     
    872873             ENDIF
    873874          ELSEIF ( mode_dvrp(i)(1:6) == 'slicer' )  THEN
    874              READ ( mode_dvrp(i), '(6X,I1)' )  j
     875             READ ( mode_dvrp(i), '(6X,I2)' )  j
    875876             IF ( do2d(0,j) /= ' ' )  WRITE ( io, 362 )  TRIM( do2d(0,j) )
    876877          ELSEIF ( mode_dvrp(i)(1:9) == 'particles' )  THEN
  • palm/trunk/SOURCE/init_dvrp.f90

    r83 r130  
    44! Actual revisions:
    55! -----------------
     6! allow two instead of one digit to specify isosurface and slicer variables
    67! Test output of isosurface on camera file
    78! TEST: print* statements
     
    395396             IF ( mode_dvrp(pn)(1:10) == 'isosurface' )  THEN
    396397
    397                 READ ( mode_dvrp(pn), '(10X,I1)' )  vn
     398                READ ( mode_dvrp(pn), '(10X,I2)' )  vn
    398399                steering_dvrp(pn)%name = do3d(0,vn)
    399400                tv = tv + 1
     
    417418             ELSEIF ( mode_dvrp(pn)(1:6) == 'slicer' )  THEN
    418419
    419                 READ ( mode_dvrp(pn), '(6X,I1)' )  vn
     420                READ ( mode_dvrp(pn), '(6X,I2)' )  vn
    420421                steering_dvrp(pn)%name = do2d(0,vn)
    421422                name_c = TRIM( do2d(0,vn) )
  • palm/trunk/SOURCE/user_interface.f90

    r114 r130  
    44! Actual revisions:
    55! -----------------
     6! new subroutine user_data_output_dvrp
    67! +argument gls in user_init_grid
    78!
     
    833834
    834835
     836 SUBROUTINE user_data_output_dvrp( output_variable, local_pf )
     837
     838!------------------------------------------------------------------------------!
     839!
     840! Description:
     841! ------------
     842! Execution of user-defined dvrp output
     843!------------------------------------------------------------------------------!
     844
     845    USE control_parameters
     846    USE indices
     847    USE pegrid
     848    USE user
     849
     850    IMPLICIT NONE
     851
     852    CHARACTER (LEN=*) ::  output_variable
     853
     854    INTEGER ::  i, j, k
     855
     856    REAL, DIMENSION(nxl:nxr+1,nys:nyn+1,nzb:nz_do3d) ::  local_pf
     857
     858!
     859!-- Here the user-defined DVRP output follows:
     860
     861!
     862!-- Move original array to intermediate array
     863    SELECT CASE ( output_variable )
     864
     865!       CASE ( 'u2', 'u2_xy', 'u2_xz', 'u2_yz',  )
     866!!
     867!!--       Here the user can add user_defined output quantities.
     868!!--       Uncomment and extend the following lines, if necessary.
     869!          DO  i = nxl, nxr+1
     870!             DO  j = nys, nyn+1
     871!                DO  k = nzb, nz_do3d
     872!                   local_pf(i,j,k) = u2(k,j,i)
     873!                ENDDO
     874!             ENDDO
     875!          ENDDO
     876
     877
     878       CASE DEFAULT
     879!
     880!--       The DEFAULT case is reached if output_variable contains a
     881!--       wrong character string that is neither recognized in data_output_dvrp
     882!--       nor here in user_data_output_dvrp.
     883          IF ( myid == 0 )  THEN
     884             PRINT*,'+++ (user_)data_output_dvrp: no output possible for: ', &
     885                  output_variable
     886          ENDIF
     887
     888    END SELECT
     889
     890
     891 END SUBROUTINE user_data_output_dvrp
     892
     893
     894
    835895 SUBROUTINE user_data_output_2d( av, variable, found, grid, local_pf )
    836896
Note: See TracChangeset for help on using the changeset viewer.