Changeset 4273 for palm/trunk/SOURCE/nesting_offl_mod.f90
- Timestamp:
- Oct 24, 2019 1:40:54 PM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/SOURCE/nesting_offl_mod.f90
r4270 r4273 25 25 ! ----------------- 26 26 ! $Id$ 27 ! Add a logical switch nesting_offline_chem 28 ! 29 ! 4270 2019-10-23 10:46:20Z monakurppa 27 30 ! Implement offline nesting for salsa variables. 28 31 ! … … 139 142 ONLY: g, & 140 143 pi 141 144 142 145 USE chem_modules, & 143 ONLY: chem_species 146 ONLY: chem_species, nesting_offline_chem 144 147 145 148 USE control_parameters, & … … 170 173 time_since_reference_point, & 171 174 volume_flow 172 175 173 176 USE cpulog, & 174 177 ONLY: cpu_log, & … … 520 523 .TRUE. ) 521 524 ENDIF 522 523 IF ( air_chemistry ) THEN525 526 IF ( air_chemistry .AND. nesting_offline_chem ) THEN 524 527 DO n = 1, UBOUND(nest_offl%var_names_chem_l, 1) 525 528 IF ( check_existence( nest_offl%var_names, & 526 nest_offl%var_names_chem_l(n) ) ) THEN 529 nest_offl%var_names_chem_l(n) ) ) THEN 527 530 CALL get_variable( pids_id, & 528 531 TRIM( nest_offl%var_names_chem_l(n) ), & … … 594 597 .TRUE. ) 595 598 ENDIF 596 597 IF ( air_chemistry ) THEN599 600 IF ( air_chemistry .AND. nesting_offline_chem ) THEN 598 601 DO n = 1, UBOUND(nest_offl%var_names_chem_r, 1) 599 602 IF ( check_existence( nest_offl%var_names, & 600 nest_offl%var_names_chem_r(n) ) ) THEN 603 nest_offl%var_names_chem_r(n) ) ) THEN 601 604 CALL get_variable( pids_id, & 602 605 TRIM( nest_offl%var_names_chem_r(n) ), & … … 623 626 MERGE( nest_offl%nzu, 0, bc_dirichlet_n ), & ! number of time steps (2 or 0) 624 627 MERGE( 2, 0, bc_dirichlet_n ), & ! parallel IO when compiled accordingly 625 .TRUE. ) 626 628 .TRUE. ) 629 627 630 CALL get_variable( pids_id, 'ls_forcing_north_v', & ! array to be read 628 631 nest_offl%v_north, & ! start index x direction … … 633 636 MERGE( nest_offl%nzu, 0, bc_dirichlet_n ), & ! number of time steps (2 or 0) 634 637 MERGE( 2, 0, bc_dirichlet_n ), & ! parallel IO when compiled accordingly 635 .TRUE. ) 636 638 .TRUE. ) 639 637 640 CALL get_variable( pids_id, 'ls_forcing_north_w', & ! array to be read 638 641 nest_offl%w_north, & ! start index x direction … … 643 646 MERGE( nest_offl%nzw, 0, bc_dirichlet_n ), & ! number of time steps (2 or 0) 644 647 MERGE( 2, 0, bc_dirichlet_n ), & ! parallel IO when compiled accordingly 645 .TRUE. ) 646 647 IF ( .NOT. neutral ) THEN 648 .TRUE. ) 649 650 IF ( .NOT. neutral ) THEN 648 651 CALL get_variable( pids_id, 'ls_forcing_north_pt', & ! array to be read 649 652 nest_offl%pt_north, & ! start index x direction … … 654 657 MERGE( nest_offl%nzu, 0, bc_dirichlet_n ), & ! number of time steps (2 or 0) 655 658 MERGE( 2, 0, bc_dirichlet_n ), & ! parallel IO when compiled accordingly 656 .TRUE. ) 657 ENDIF 658 IF ( humidity ) THEN 659 .TRUE. ) 660 ENDIF 661 IF ( humidity ) THEN 659 662 CALL get_variable( pids_id, 'ls_forcing_north_qv', & ! array to be read 660 663 nest_offl%q_north, & ! start index x direction … … 665 668 MERGE( nest_offl%nzu, 0, bc_dirichlet_n ), & ! number of time steps (2 or 0) 666 669 MERGE( 2, 0, bc_dirichlet_n ), & ! parallel IO when compiled accordingly 667 .TRUE. ) 668 ENDIF 669 670 IF ( air_chemistry ) THEN671 DO n = 1, UBOUND(nest_offl%var_names_chem_n, 1) 670 .TRUE. ) 671 ENDIF 672 673 IF ( air_chemistry .AND. nesting_offline_chem ) THEN 674 DO n = 1, UBOUND(nest_offl%var_names_chem_n, 1) 672 675 IF ( check_existence( nest_offl%var_names, & 673 nest_offl%var_names_chem_n(n) ) ) THEN 676 nest_offl%var_names_chem_n(n) ) ) THEN 674 677 CALL get_variable( pids_id, & 675 678 TRIM( nest_offl%var_names_chem_n(n) ), & … … 696 699 MERGE( nest_offl%nzu, 0, bc_dirichlet_s ), & ! number of time steps (2 or 0) 697 700 MERGE( 2, 0, bc_dirichlet_s ), & ! parallel IO when compiled accordingly 698 .TRUE. ) 699 701 .TRUE. ) 702 700 703 CALL get_variable( pids_id, 'ls_forcing_south_v', & ! array to be read 701 704 nest_offl%v_south, & ! start index x direction … … 706 709 MERGE( nest_offl%nzu, 0, bc_dirichlet_s ), & ! number of time steps (2 or 0) 707 710 MERGE( 2, 0, bc_dirichlet_s ), & ! parallel IO when compiled accordingly 708 .TRUE. ) 709 711 .TRUE. ) 712 710 713 CALL get_variable( pids_id, 'ls_forcing_south_w', & ! array to be read 711 714 nest_offl%w_south, & ! start index x direction … … 716 719 MERGE( nest_offl%nzw, 0, bc_dirichlet_s ), & ! number of time steps (2 or 0) 717 720 MERGE( 2, 0, bc_dirichlet_s ), & ! parallel IO when compiled accordingly 718 .TRUE. ) 719 720 IF ( .NOT. neutral ) THEN 721 .TRUE. ) 722 723 IF ( .NOT. neutral ) THEN 721 724 CALL get_variable( pids_id, 'ls_forcing_south_pt', & ! array to be read 722 725 nest_offl%pt_south, & ! start index x direction … … 727 730 MERGE( nest_offl%nzu, 0, bc_dirichlet_s ), & ! number of time steps (2 or 0) 728 731 MERGE( 2, 0, bc_dirichlet_s ), & ! parallel IO when compiled accordingly 729 .TRUE. ) 730 ENDIF 731 IF ( humidity ) THEN 732 .TRUE. ) 733 ENDIF 734 IF ( humidity ) THEN 732 735 CALL get_variable( pids_id, 'ls_forcing_south_qv', & ! array to be read 733 736 nest_offl%q_south, & ! start index x direction … … 738 741 MERGE( nest_offl%nzu, 0, bc_dirichlet_s ), & ! number of time steps (2 or 0) 739 742 MERGE( 2, 0, bc_dirichlet_s ), & ! parallel IO when compiled accordingly 740 .TRUE. ) 741 ENDIF 742 743 IF ( air_chemistry ) THEN744 DO n = 1, UBOUND(nest_offl%var_names_chem_s, 1) 743 .TRUE. ) 744 ENDIF 745 746 IF ( air_chemistry .AND. nesting_offline_chem ) THEN 747 DO n = 1, UBOUND(nest_offl%var_names_chem_s, 1) 745 748 IF ( check_existence( nest_offl%var_names, & 746 nest_offl%var_names_chem_s(n) ) ) THEN 749 nest_offl%var_names_chem_s(n) ) ) THEN 747 750 CALL get_variable( pids_id, & 748 751 TRIM( nest_offl%var_names_chem_s(n) ), & … … 770 773 nxl+1, nysv, nest_offl%tind+1, & 771 774 nxr-nxl+1, nyn-nysv+1, 2, .TRUE. ) 772 775 773 776 CALL get_variable( pids_id, 'ls_forcing_top_w', & 774 777 nest_offl%w_top(0:1,nys:nyn,nxl:nxr), & 775 778 nxl+1, nys+1, nest_offl%tind+1, & 776 779 nxr-nxl+1, nyn-nys+1, 2, .TRUE. ) 777 780 778 781 IF ( .NOT. neutral ) THEN 779 782 CALL get_variable( pids_id, 'ls_forcing_top_pt', & … … 788 791 nxr-nxl+1, nyn-nys+1, 2, .TRUE. ) 789 792 ENDIF 790 791 IF ( air_chemistry ) THEN793 794 IF ( air_chemistry .AND. nesting_offline_chem ) THEN 792 795 DO n = 1, UBOUND(nest_offl%var_names_chem_t, 1) 793 796 IF ( check_existence( nest_offl%var_names, & 794 nest_offl%var_names_chem_t(n) ) ) THEN 797 nest_offl%var_names_chem_t(n) ) ) THEN 795 798 CALL get_variable( pids_id, & 796 799 TRIM( nest_offl%var_names_chem_t(n) ), & … … 961 964 u_ref = 0.0_wp 962 965 v_ref = 0.0_wp 963 966 964 967 pt_ref_l = 0.0_wp 965 968 q_ref_l = 0.0_wp … … 968 971 ! 969 972 !-- If required, allocate temporary arrays to compute chemistry mean profiles 970 IF ( air_chemistry ) THEN973 IF ( air_chemistry .AND. nesting_offline_chem ) THEN 971 974 ALLOCATE( ref_chem(nzb:nzt+1,1:UBOUND( chem_species, 1 ) ) ) 972 975 ALLOCATE( ref_chem_l(nzb:nzt+1,1:UBOUND( chem_species, 1 ) ) ) … … 1043 1046 ENDDO 1044 1047 ENDIF 1045 1046 IF ( air_chemistry ) THEN1048 1049 IF ( air_chemistry .AND. nesting_offline_chem ) THEN 1047 1050 DO n = 1, UBOUND( chem_species, 1 ) 1048 IF ( nest_offl%chem_from_file_l(n) ) THEN 1051 IF ( nest_offl%chem_from_file_l(n) ) THEN 1049 1052 DO j = nys, nyn 1050 1053 DO k = nzb+1, nzt … … 1121 1124 ENDDO 1122 1125 ENDIF 1123 1124 IF ( air_chemistry ) THEN1126 1127 IF ( air_chemistry .AND. nesting_offline_chem ) THEN 1125 1128 DO n = 1, UBOUND( chem_species, 1 ) 1126 IF ( nest_offl%chem_from_file_r(n) ) THEN 1129 IF ( nest_offl%chem_from_file_r(n) ) THEN 1127 1130 DO j = nys, nyn 1128 1131 DO k = nzb+1, nzt … … 1202 1205 ENDDO 1203 1206 ENDIF 1204 1205 IF ( air_chemistry ) THEN1207 1208 IF ( air_chemistry .AND. nesting_offline_chem ) THEN 1206 1209 DO n = 1, UBOUND( chem_species, 1 ) 1207 IF ( nest_offl%chem_from_file_s(n) ) THEN 1210 IF ( nest_offl%chem_from_file_s(n) ) THEN 1208 1211 DO i = nxl, nxr 1209 1212 DO k = nzb+1, nzt … … 1282 1285 ENDDO 1283 1286 ENDIF 1284 1285 IF ( air_chemistry ) THEN1287 1288 IF ( air_chemistry .AND. nesting_offline_chem ) THEN 1286 1289 DO n = 1, UBOUND( chem_species, 1 ) 1287 IF ( nest_offl%chem_from_file_n(n) ) THEN 1290 IF ( nest_offl%chem_from_file_n(n) ) THEN 1288 1291 DO i = nxl, nxr 1289 1292 DO k = nzb+1, nzt … … 1368 1371 ENDDO 1369 1372 ENDIF 1370 1371 IF ( air_chemistry ) THEN1373 1374 IF ( air_chemistry .AND. nesting_offline_chem ) THEN 1372 1375 DO n = 1, UBOUND( chem_species, 1 ) 1373 IF ( nest_offl%chem_from_file_t(n) ) THEN 1376 IF ( nest_offl%chem_from_file_t(n) ) THEN 1374 1377 DO i = nxl, nxr 1375 1378 DO j = nys, nyn … … 1413 1416 IF ( .NOT. neutral ) CALL exchange_horiz( pt, nbgp ) 1414 1417 IF ( humidity ) CALL exchange_horiz( q, nbgp ) 1415 IF ( air_chemistry ) THEN1418 IF ( air_chemistry .AND. nesting_offline_chem ) THEN 1416 1419 DO n = 1, UBOUND( chem_species, 1 ) 1417 1420 ! … … 1447 1450 comm2d, ierr ) 1448 1451 ENDIF 1449 IF ( air_chemistry ) THEN1452 IF ( air_chemistry .AND. nesting_offline_chem ) THEN 1450 1453 CALL MPI_ALLREDUCE( ref_chem_l, ref_chem, & 1451 1454 ( nzt+1-nzb+1 ) * SIZE( ref_chem(nzb,:) ), & … … 1457 1460 IF ( humidity ) q_ref = q_ref_l 1458 1461 IF ( .NOT. neutral ) pt_ref = pt_ref_l 1459 IF ( air_chemistry ) ref_chem = ref_chem_l1462 IF ( air_chemistry .AND. nesting_offline_chem ) ref_chem = ref_chem_l 1460 1463 #endif 1461 1464 ! … … 1476 1479 ( ny + 1 + nx + 1 ), & 1477 1480 KIND = wp ) 1478 IF ( air_chemistry )&1481 IF ( air_chemistry .AND. nesting_offline_chem ) & 1479 1482 ref_chem(nzb:nzt,:) = ref_chem(nzb:nzt,:) / REAL( 2.0_wp * & 1480 1483 ( ny + 1 + nx + 1 ), & … … 1490 1493 pt_ref(nzt+1) = pt_ref(nzt+1) / REAL( ( ny + 1 ) * ( nx + 1 ), & 1491 1494 KIND = wp ) 1492 IF ( air_chemistry )&1495 IF ( air_chemistry .AND. nesting_offline_chem ) & 1493 1496 ref_chem(nzt+1,:) = ref_chem(nzt+1,:) / & 1494 1497 REAL( ( ny + 1 ) * ( nx + 1 ),KIND = wp ) … … 1508 1511 ENDIF 1509 1512 1510 IF ( air_chemistry ) THEN1513 IF ( air_chemistry .AND. nesting_offline_chem ) THEN 1511 1514 DO n = 1, UBOUND( chem_species, 1 ) 1512 1515 IF ( nest_offl%chem_from_file_t(n) ) THEN … … 1519 1522 1520 1523 IF ( ALLOCATED( ref_chem ) ) DEALLOCATE( ref_chem ) 1521 IF ( ALLOCATED( ref_chem_l ) ) DEALLOCATE( ref_chem_l ) 1524 IF ( ALLOCATED( ref_chem_l ) ) DEALLOCATE( ref_chem_l ) 1522 1525 ! 1523 1526 !-- Further, adjust Rayleigh damping height in case of time-changing conditions. … … 1525 1528 CALL nesting_offl_calc_zi 1526 1529 CALL adjust_sponge_layer 1527 1530 1528 1531 CALL cpu_log( log_point(58), 'offline nesting', 'stop' ) 1529 1532 … … 1893 1896 IF ( humidity ) ALLOCATE( nest_offl%q_left(0:1,nzb+1:nzt,nys:nyn) ) 1894 1897 IF ( .NOT. neutral ) ALLOCATE( nest_offl%pt_left(0:1,nzb+1:nzt,nys:nyn) ) 1895 IF ( air_chemistry ) ALLOCATE( nest_offl%chem_left(0:1,nzb+1:nzt,nys:nyn,&1896 1898 IF ( air_chemistry .AND. nesting_offline_chem ) & 1899 ALLOCATE( nest_offl%chem_left(0:1,nzb+1:nzt,nys:nyn,1:UBOUND( chem_species, 1 )) ) 1897 1900 ELSE 1898 1901 ALLOCATE( nest_offl%u_left(1:1,1:1,1:1) ) … … 1901 1904 IF ( humidity ) ALLOCATE( nest_offl%q_left(1:1,1:1,1:1) ) 1902 1905 IF ( .NOT. neutral ) ALLOCATE( nest_offl%pt_left(1:1,1:1,1:1) ) 1903 IF ( air_chemistry ) ALLOCATE( nest_offl%chem_left(1:1,1:1,1:1,&1904 1906 IF ( air_chemistry .AND. nesting_offline_chem ) & 1907 ALLOCATE( nest_offl%chem_left(1:1,1:1,1:1,1:UBOUND( chem_species, 1 )) ) 1905 1908 ENDIF 1906 1909 IF ( bc_dirichlet_r ) THEN … … 1910 1913 IF ( humidity ) ALLOCATE( nest_offl%q_right(0:1,nzb+1:nzt,nys:nyn) ) 1911 1914 IF ( .NOT. neutral ) ALLOCATE( nest_offl%pt_right(0:1,nzb+1:nzt,nys:nyn) ) 1912 IF ( air_chemistry ) ALLOCATE( nest_offl%chem_right(0:1,nzb+1:nzt,nys:nyn,&1913 1915 IF ( air_chemistry .AND. nesting_offline_chem ) & 1916 ALLOCATE( nest_offl%chem_right(0:1,nzb+1:nzt,nys:nyn,1:UBOUND( chem_species, 1 )) ) 1914 1917 ELSE 1915 1918 ALLOCATE( nest_offl%u_right(1:1,1:1,1:1) ) … … 1918 1921 IF ( humidity ) ALLOCATE( nest_offl%q_right(1:1,1:1,1:1) ) 1919 1922 IF ( .NOT. neutral ) ALLOCATE( nest_offl%pt_right(1:1,1:1,1:1) ) 1920 IF ( air_chemistry ) ALLOCATE( nest_offl%chem_right(1:1,1:1,1:1,&1921 1923 IF ( air_chemistry .AND. nesting_offline_chem ) & 1924 ALLOCATE( nest_offl%chem_right(1:1,1:1,1:1,1:UBOUND( chem_species, 1 )) ) 1922 1925 ENDIF 1923 1926 ! … … 1932 1935 IF ( humidity ) ALLOCATE( nest_offl%q_north(0:1,nzb+1:nzt,nxl:nxr) ) 1933 1936 IF ( .NOT. neutral ) ALLOCATE( nest_offl%pt_north(0:1,nzb+1:nzt,nxl:nxr) ) 1934 IF ( air_chemistry ) ALLOCATE( nest_offl%chem_north(0:1,nzb+1:nzt,nxl:nxr,&1935 1937 IF ( air_chemistry .AND. nesting_offline_chem ) & 1938 ALLOCATE( nest_offl%chem_north(0:1,nzb+1:nzt,nxl:nxr,1:UBOUND( chem_species, 1 )) ) 1936 1939 ELSE 1937 1940 ALLOCATE( nest_offl%u_north(1:1,1:1,1:1) ) … … 1940 1943 IF ( humidity ) ALLOCATE( nest_offl%q_north(1:1,1:1,1:1) ) 1941 1944 IF ( .NOT. neutral ) ALLOCATE( nest_offl%pt_north(1:1,1:1,1:1) ) 1942 IF ( air_chemistry ) ALLOCATE( nest_offl%chem_north(1:1,1:1,1:1,&1943 1945 IF ( air_chemistry .AND. nesting_offline_chem ) & 1946 ALLOCATE( nest_offl%chem_north(1:1,1:1,1:1,1:UBOUND( chem_species, 1 )) ) 1944 1947 ENDIF 1945 1948 IF ( bc_dirichlet_s ) THEN … … 1949 1952 IF ( humidity ) ALLOCATE( nest_offl%q_south(0:1,nzb+1:nzt,nxl:nxr) ) 1950 1953 IF ( .NOT. neutral ) ALLOCATE( nest_offl%pt_south(0:1,nzb+1:nzt,nxl:nxr) ) 1951 IF ( air_chemistry ) ALLOCATE( nest_offl%chem_south(0:1,nzb+1:nzt,nxl:nxr,&1952 1954 IF ( air_chemistry .AND. nesting_offline_chem ) & 1955 ALLOCATE( nest_offl%chem_south(0:1,nzb+1:nzt,nxl:nxr,1:UBOUND( chem_species, 1 )) ) 1953 1956 ELSE 1954 1957 ALLOCATE( nest_offl%u_south(1:1,1:1,1:1) ) … … 1957 1960 IF ( humidity ) ALLOCATE( nest_offl%q_south(1:1,1:1,1:1) ) 1958 1961 IF ( .NOT. neutral ) ALLOCATE( nest_offl%pt_south(1:1,1:1,1:1) ) 1959 IF ( air_chemistry ) ALLOCATE( nest_offl%chem_south(1:1,1:1,1:1,&1960 1962 IF ( air_chemistry .AND. nesting_offline_chem ) & 1963 ALLOCATE( nest_offl%chem_south(1:1,1:1,1:1,1:UBOUND( chem_species, 1 )) ) 1961 1964 ENDIF 1962 1965 ! … … 1969 1972 IF ( humidity ) ALLOCATE( nest_offl%q_top(0:1,nys:nyn,nxl:nxr) ) 1970 1973 IF ( .NOT. neutral ) ALLOCATE( nest_offl%pt_top(0:1,nys:nyn,nxl:nxr) ) 1971 IF ( air_chemistry ) ALLOCATE( nest_offl%chem_top(0:1,nys:nyn,nxl:nxr,&1972 1974 IF ( air_chemistry .AND. nesting_offline_chem ) & 1975 ALLOCATE( nest_offl%chem_top(0:1,nys:nyn,nxl:nxr,1:UBOUND( chem_species, 1 )) ) 1973 1976 ! 1974 1977 !-- For chemical species, create the names of the variables. This is necessary 1975 1978 !-- to identify the respective variable and write it onto the correct array 1976 1979 !-- in the chem_species datatype. 1977 IF ( air_chemistry ) THEN1980 IF ( air_chemistry .AND. nesting_offline_chem ) THEN 1978 1981 ALLOCATE( nest_offl%chem_from_file_l(1:UBOUND( chem_species, 1 )) ) 1979 1982 ALLOCATE( nest_offl%chem_from_file_n(1:UBOUND( chem_species, 1 )) ) … … 1981 1984 ALLOCATE( nest_offl%chem_from_file_s(1:UBOUND( chem_species, 1 )) ) 1982 1985 ALLOCATE( nest_offl%chem_from_file_t(1:UBOUND( chem_species, 1 )) ) 1983 1986 1984 1987 ALLOCATE( nest_offl%var_names_chem_l(1:UBOUND( chem_species, 1 )) ) 1985 1988 ALLOCATE( nest_offl%var_names_chem_n(1:UBOUND( chem_species, 1 )) ) … … 1995 1998 nest_offl%chem_from_file_s(:) = .FALSE. 1996 1999 nest_offl%chem_from_file_t(:) = .FALSE. 1997 2000 1998 2001 DO n = 1, UBOUND( chem_species, 1 ) 1999 2002 nest_offl%var_names_chem_l(n) = nest_offl%char_l // & … … 2054 2057 IF ( humidity ) q(nzb+1:nzt,nys:nyn,-1) = & 2055 2058 nest_offl%q_left(0,nzb+1:nzt,nys:nyn) 2056 IF ( air_chemistry ) THEN2059 IF ( air_chemistry .AND. nesting_offline_chem ) THEN 2057 2060 DO n = 1, UBOUND( chem_species, 1 ) 2058 2061 IF( nest_offl%chem_from_file_l(n) ) THEN … … 2071 2074 IF ( humidity ) q(nzb+1:nzt,nys:nyn,nxr+1) = & 2072 2075 nest_offl%q_right(0,nzb+1:nzt,nys:nyn) 2073 IF ( air_chemistry ) THEN2076 IF ( air_chemistry .AND. nesting_offline_chem ) THEN 2074 2077 DO n = 1, UBOUND( chem_species, 1 ) 2075 2078 IF( nest_offl%chem_from_file_r(n) ) THEN … … 2088 2091 IF ( humidity ) q(nzb+1:nzt,-1,nxl:nxr) = & 2089 2092 nest_offl%q_south(0,nzb+1:nzt,nxl:nxr) 2090 IF ( air_chemistry ) THEN2093 IF ( air_chemistry .AND. nesting_offline_chem ) THEN 2091 2094 DO n = 1, UBOUND( chem_species, 1 ) 2092 2095 IF( nest_offl%chem_from_file_s(n) ) THEN … … 2105 2108 IF ( humidity ) q(nzb+1:nzt,nyn+1,nxl:nxr) = & 2106 2109 nest_offl%q_north(0,nzb+1:nzt,nxl:nxr) 2107 IF ( air_chemistry ) THEN2110 IF ( air_chemistry .AND. nesting_offline_chem ) THEN 2108 2111 DO n = 1, UBOUND( chem_species, 1 ) 2109 2112 IF( nest_offl%chem_from_file_n(n) ) THEN … … 2114 2117 ENDIF 2115 2118 ENDIF 2116 ! 2119 ! 2117 2120 !-- Initialize geostrophic wind components. Actually this is already done in 2118 2121 !-- init_3d_model when initializing_action = 'inifor', however, in speical … … 2121 2124 ug(nzb+1:nzt) = nest_offl%ug(0,nzb+1:nzt) 2122 2125 vg(nzb+1:nzt) = nest_offl%vg(0,nzb+1:nzt) 2123 ! 2126 ! 2124 2127 !-- Set bottom and top boundary condition for geostrophic wind components 2125 2128 ug(nzt+1) = ug(nzt) … … 2127 2130 ug(nzb) = ug(nzb+1) 2128 2131 vg(nzb) = vg(nzb+1) 2129 ENDIF 2132 ENDIF 2130 2133 ! 2131 2134 !-- After boundary data is initialized, mask topography at the
Note: See TracChangeset
for help on using the changeset viewer.