Ignore:
Timestamp:
Nov 6, 2008 8:54:02 AM (15 years ago)
Author:
raasch
Message:

updates in dvr routines for new dvr version

File:
1 edited

Legend:

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

    r206 r210  
    44! Actual revisions:
    55! -----------------
    6 !
     6! DVRP arguments changed to single precision, mode pathlines added
    77! TEST: print* statements
    88! ToDo: checking of mode_dvrp for legal values is not correct
     
    5050    USE control_parameters
    5151
    52 !
    53 !-- New coupling
    54     USE coupling
    55 
    5652    IMPLICIT NONE
    5753
     
    6157    INTEGER ::  i, j, k, l, m, pn, tv, vn
    6258    LOGICAL ::  allocated
    63     REAL    ::  center(3), distance
    64 
    65     REAL, DIMENSION(:,:,:), ALLOCATABLE ::  local_pf
     59    REAL(4) ::  center(3), distance, tmp_b, tmp_g, tmp_r, tmp_t, tmp_th, &
     60                tmp_thr, tmp_x1, tmp_x2, tmp_y1, tmp_y2, tmp_z1, tmp_z2, &
     61                tmp_1, tmp_2, tmp_3, tmp_4, tmp_5, tmp_6, tmp_7
     62
     63    REAL(4), DIMENSION(:,:,:), ALLOCATABLE ::  local_pf
    6664
    6765    TYPE(CSTRING), SAVE ::  dvrp_directory_c, dvrp_file_c, &
     
    130128       IF ( mode_dvrp(m)(1:10) /= 'isosurface'  .AND. &
    131129            mode_dvrp(m)(1:6)  /= 'slicer'      .AND. &
    132             mode_dvrp(m)(1:9)  /= 'particles' )  THEN
     130            mode_dvrp(m)(1:9)  /= 'particles'   .AND. &
     131            mode_dvrp(m)(1:9)  /= 'pathlines' )  THEN
    133132
    134133          IF ( myid == 0 )  THEN
     
    200199!
    201200!--       Define bounding box material and create a bounding box
    202           CALL DVRP_MATERIAL_RGB( m-1, 1, 0.5, 0.5, 0.5, 0.0 )
    203           CALL DVRP_BOUNDINGBOX( m-1, 1, 0.01, 0.0, 0.0, 0.0,    &
    204                                  (nx+1) * dx * superelevation_x, &
    205                                  (ny+1) * dy * superelevation_y, &
    206                                  zu(nz_do3d) * superelevation )
     201          tmp_r = 0.5;  tmp_g = 0.5;  tmp_b = 0.5;  tmp_t = 0.0
     202          CALL DVRP_MATERIAL_RGB( m-1, 1, tmp_r, tmp_g, tmp_b, tmp_t )
     203
     204          tmp_1 = 0.01;  tmp_2 = 0.0;  tmp_3 = 0.0;  tmp_4 = 0.0
     205          tmp_5 = (nx+1) * dx * superelevation_x
     206          tmp_6 = (ny+1) * dy * superelevation_y
     207          tmp_7 = zu(nz_do3d) * superelevation
     208          CALL DVRP_BOUNDINGBOX( m-1, 1, tmp_1, tmp_2, tmp_3, tmp_4, tmp_5, &
     209                                 tmp_6, tmp_7 )
    207210
    208211          CALL DVRP_VISUALIZE( m-1, 0, 0 )
     
    272275!
    273276!--       Define the grid used by dvrp
     277          CALL DVRP_NO_GLOBAL_GRID( m-1, 1 )
    274278          CALL DVRP_GRID( m-1, nx_dvrp, ny_dvrp, nz_dvrp, xcoor_dvrp, &
    275279                          ycoor_dvrp, zcoor_dvrp )
    276           CALL DVRP_MATERIAL_RGB( m-1, 1, 0.8, 0.7, 0.6, 0.0 )
     280
     281          tmp_r = 0.8;  tmp_g = 0.7;  tmp_b = 0.6;  tmp_t = 0.0
     282          CALL DVRP_MATERIAL_RGB( m-1, 1, tmp_r, tmp_g, tmp_b, tmp_t )
    277283    WRITE ( 9, * ) '***  #4'
    278284    CALL local_flush( 9 )
     
    295301    WRITE ( 9, * ) '***  #4.2'
    296302    CALL local_flush( 9 )
    297           CALL DVRP_THRESHOLD( m-1, 1.0 )
     303          tmp_th = 1.0
     304          CALL DVRP_THRESHOLD( m-1, tmp_th )
    298305    WRITE ( 9, * ) '***  #4.3'
    299306    CALL local_flush( 9 )
     
    366373!
    367374!--       Define the grid used by dvrp
     375          CALL DVRP_NO_GLOBAL_GRID( m-1, 1 )
    368376          CALL DVRP_GRID( m-1, nx_dvrp, ny_dvrp, nz_dvrp, xcoor_dvrp, &
    369377                          ycoor_dvrp, zcoor_dvrp )
    370           CALL DVRP_MATERIAL_RGB( m-1, 1, 0.0, 0.6, 0.0, 0.0 )
     378
     379          tmp_r = 0.0;  tmp_g = 0.6;  tmp_b = 0.0;  tmp_t = 0.0
     380          CALL DVRP_MATERIAL_RGB( m-1, 1, tmp_r, tmp_g, tmp_b, tmp_t )
    371381    WRITE ( 9, * ) '***  #7'
    372382    CALL local_flush( 9 )
     
    380390          CALL DVRP_DATA( m-1, local_pf, 1, nx_dvrp, ny_dvrp, nz_dvrp, &
    381391                          cyclic_dvrp, cyclic_dvrp, cyclic_dvrp )
    382           CALL DVRP_THRESHOLD( m-1, 1.0 )
     392          tmp_th = 1.0
     393          CALL DVRP_THRESHOLD( m-1, tmp_th )
    383394          CALL DVRP_VISUALIZE( m-1, 1, 0 )
    384395
     
    429440    WRITE ( 9, * ) '***  #9'
    430441    CALL local_flush( 9 )
     442                tmp_thr = threshold(tv)
    431443                CALL DVRP_STEERING_INIT( m-1, name_c, steering_dvrp(pn)%min, &
    432                                          steering_dvrp(pn)%max, threshold(tv) )
     444                                         steering_dvrp(pn)%max, tmp_thr )
    433445    WRITE ( 9, * ) '***  #10'
    434446    CALL local_flush( 9 )
     
    541553    CALL local_flush( 9 )
    542554
     555       IF ( mode_dvrp(m) /= 'pathlines' )  THEN
     556          CALL DVRP_NO_GLOBAL_GRID( m-1, 1 )
     557       ENDIF
    543558       CALL DVRP_GRID( m-1, nx_dvrp, ny_dvrp, nz_dvrp, xcoor_dvrp, ycoor_dvrp, &
    544559                       zcoor_dvrp )
     560
     561       IF ( mode_dvrp(m) == 'pathlines' )  THEN
     562
     563          tmp_x1 = 0.0;  tmp_y1 = 0.0;  tmp_z1 = 0.0
     564          tmp_x2 = 1.0;  tmp_y2 = 1.0;  tmp_z2 = 0.3
     565          CALL DVRP_CUBIC_SEEDING( m-1, tmp_x1, tmp_y1, tmp_z1, tmp_x2, tmp_y2,&
     566                                   tmp_z2, pathlines_linecount, 2, 0 )
     567!
     568!--       Set wavecount and wavetime
     569          CALL DVRP_PATHLINES_BEHAVIOUR_WAVE( m-1, pathlines_wavecount, &
     570                                              pathlines_wavetime,       &
     571                                              pathlines_fadeintime,     &
     572                                              pathlines_fadeouttime )
     573!
     574!--       Set pathline length
     575          CALL DVRP_PATHLINES_SETMAXHISTORY( m-1, pathlines_maxhistory )
     576          CALL DVRP_PATHLINES_SETFADING( m-1, 1, 0.0 )
     577
     578          CALL DVRP_INIT_PATHLINES( m-1, 0 )
     579
     580       ENDIF
     581
    545582    WRITE ( 9, * ) '***  #14'
    546583    CALL local_flush( 9 )
     
    566603#if defined( __dvrp_graphics )
    567604
     605    USE control_parameters
    568606    USE dvrp_variables
    569607    USE pegrid
     
    602640    IF ( chr == 'true' )  THEN
    603641       use_seperate_pe_for_dvrp_output = .TRUE.
    604     WRITE ( 9, * ) '*** myid=', myid, ' vor DVRP_SPLIT'
    605     CALL local_flush( 9 )
    606 
    607 !
    608 !-- Adjustment for new MPI-1 coupling. This might be unnecessary.
     642       WRITE ( 9, * ) '*** myid=', myid, ' vor DVRP_SPLIT'
     643       CALL local_flush( 9 )
     644
     645!
     646!--    Adjustment for new MPI-1 coupling. This might be unnecessary.
    609647#if defined( __mpi2 )
    610648       CALL DVRP_SPLIT( MPI_COMM_WORLD, comm_palm )
    611649#else
    612     IF ( coupling_mode /= 'uncoupled' ) THEN
    613        CALL DVRP_SPLIT( comm_inter, comm_palm )
    614     ELSE
    615        CALL DVRP_SPLIT( MPI_COMM_WORLD, comm_palm )
    616     ENDIF
     650       IF ( coupling_mode /= 'uncoupled' ) THEN
     651          IF ( myid == 0 )  THEN
     652             PRINT*, '+++ init_dvrp: split of communicator not realized with', &
     653                          ' MPI1 coupling atmosphere-ocean'
     654          ENDIF
     655          CALL local_stop
     656!          CALL DVRP_SPLIT( comm_inter, comm_palm )
     657       ELSE
     658          CALL DVRP_SPLIT( MPI_COMM_WORLD, comm_palm )
     659       ENDIF
    617660#endif
    618661
    619     WRITE ( 9, * ) '*** myid=', myid, ' nach DVRP_SPLIT'
    620     CALL local_flush( 9 )
     662       WRITE ( 9, * ) '*** myid=', myid, ' nach DVRP_SPLIT'
     663       CALL local_flush( 9 )
    621664       CALL MPI_COMM_SIZE( comm_palm, numprocs, ierr )
    622665    ENDIF
Note: See TracChangeset for help on using the changeset viewer.