Changeset 4004 for palm/trunk/SOURCE/virtual_flight_mod.f90
- Timestamp:
- May 24, 2019 11:32:38 AM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/virtual_flight_mod.f90
r3885 r4004 25 25 ! ----------------- 26 26 ! $Id$ 27 ! Allow variable start- and end locations also in return mode 28 ! 29 ! 3885 2019-04-11 11:29:34Z kanani 27 30 ! Changes related to global restructuring of location messages and introduction 28 31 ! of additional debug messages … … 601 604 !-- Carry out horizontal reflection if required. 602 605 IF ( .NOT. cyclic_leg(l) ) THEN 603 ! 604 !-- Outward flight, i.e. from start to end 605 IF ( u_agl(l) >= 0.0_wp .AND. x_pos(l) > x_end(l) ) THEN 606 x_pos(l) = 2.0_wp * x_end(l) - x_pos(l) 607 u_agl(l) = - u_agl(l) 608 ! 609 !-- Return flight, i.e. from end to start 610 ELSEIF ( u_agl(l) < 0.0_wp .AND. x_pos(l) < x_start(l) ) THEN 611 x_pos(l) = 2.0_wp * x_start(l) - x_pos(l) 612 u_agl(l) = - u_agl(l) 606 607 IF ( x_start(l) <= x_end(l) ) THEN 608 ! 609 !-- Outward flight, i.e. from start to end 610 IF ( u_agl(l) >= 0.0_wp .AND. x_pos(l) > x_end(l) ) THEN 611 x_pos(l) = 2.0_wp * x_end(l) - x_pos(l) 612 u_agl(l) = - u_agl(l) 613 ! 614 !-- Return flight, i.e. from end to start 615 ELSEIF ( u_agl(l) < 0.0_wp .AND. x_pos(l) < x_start(l) ) THEN 616 x_pos(l) = 2.0_wp * x_start(l) - x_pos(l) 617 u_agl(l) = - u_agl(l) 618 ENDIF 619 ELSE 620 ! 621 !-- Outward flight, i.e. from start to end 622 IF ( u_agl(l) < 0.0_wp .AND. x_pos(l) < x_end(l) ) THEN 623 x_pos(l) = 2.0_wp * x_end(l) - x_pos(l) 624 u_agl(l) = - u_agl(l) 625 ! 626 !-- Return flight, i.e. from end to start 627 ELSEIF ( u_agl(l) >= 0.0_wp .AND. x_pos(l) > x_start(l) ) THEN 628 x_pos(l) = 2.0_wp * x_start(l) - x_pos(l) 629 u_agl(l) = - u_agl(l) 630 ENDIF 613 631 ENDIF 614 ! 615 !-- Outward flight, i.e. from start to end 616 IF ( v_agl(l) >= 0.0_wp .AND. y_pos(l) > y_end(l) ) THEN 617 y_pos(l) = 2.0_wp * y_end(l) - y_pos(l) 618 v_agl(l) = - v_agl(l) 619 ! 620 !-- Return flight, i.e. from end to start 621 ELSEIF ( v_agl(l) < 0.0_wp .AND. y_pos(l) < y_start(l) ) THEN 622 y_pos(l) = 2.0_wp * y_start(l) - y_pos(l) 623 v_agl(l) = - v_agl(l) 632 633 IF ( y_start(l) <= y_end(l) ) THEN 634 ! 635 !-- Outward flight, i.e. from start to end 636 IF ( v_agl(l) >= 0.0_wp .AND. y_pos(l) > y_end(l) ) THEN 637 y_pos(l) = 2.0_wp * y_end(l) - y_pos(l) 638 v_agl(l) = - v_agl(l) 639 ! 640 !-- Return flight, i.e. from end to start 641 ELSEIF ( v_agl(l) < 0.0_wp .AND. y_pos(l) < y_start(l) ) THEN 642 y_pos(l) = 2.0_wp * y_start(l) - y_pos(l) 643 v_agl(l) = - v_agl(l) 644 ENDIF 645 ELSE 646 ! 647 !-- Outward flight, i.e. from start to end 648 IF ( v_agl(l) < 0.0_wp .AND. y_pos(l) < y_end(l) ) THEN 649 y_pos(l) = 2.0_wp * y_end(l) - y_pos(l) 650 v_agl(l) = - v_agl(l) 651 ! 652 !-- Return flight, i.e. from end to start 653 ELSEIF ( v_agl(l) >= 0.0_wp .AND. y_pos(l) > y_start(l) ) THEN 654 y_pos(l) = 2.0_wp * y_start(l) - y_pos(l) 655 v_agl(l) = - v_agl(l) 656 ENDIF 624 657 ENDIF 625 658 ! … … 924 957 925 958 ENDDO 926 !927 !-- Check if start and end positions are properly set in case of return legs.928 DO l=1, num_leg929 930 IF ( x_start(l) > x_end(l) .AND. leg_mode(l) == 'return' ) THEN931 message_string = 'x_start position must be <= x_end ' // &932 'position for return legs'933 CALL message( 'flight_check_parameters', 'PA0436', 1, 2, 0, 6, 0 )934 ENDIF935 IF ( y_start(l) > y_end(l) .AND. leg_mode(l) == 'return' ) THEN936 message_string = 'y_start position must be <= y_end ' // &937 'position for return legs'938 CALL message( 'flight_check_parameters', 'PA0437', 1, 2, 0, 6, 0 )939 ENDIF940 ENDDO941 959 ! 942 960 !-- Check if given flight object remains inside model domain if a rate of
Note: See TracChangeset
for help on using the changeset viewer.