Ignore:
Timestamp:
Aug 9, 2012 8:28:32 AM (12 years ago)
Author:
fricke
Message:

merge fricke branch back into trunk

Location:
palm/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • palm/trunk

  • palm/trunk/SOURCE

  • palm/trunk/SOURCE/prognostic_equations.f90

    r941 r978  
    44! Current revisions:
    55! -----------------
    6 !
     6! km_damp_x and km_damp_y removed in calls of diffusion_u and diffusion_v
     7! add ptdf_x, ptdf_y for damping the potential temperature at the inflow
     8! boundary in case of non-cyclic lateral boundaries
     9! Bugfix: first thread index changes for WS-scheme at the inflow
    710!
    811! Former revisions:
     
    201204          ENDIF
    202205          IF ( tsc(2) == 2.0  .AND.  timestep_scheme(1:8) == 'leapfrog' )  THEN
    203              CALL diffusion_u( i, j, ddzu, ddzw, km_m, km_damp_y, tend, u_m,  &
    204                                usws_m, uswst_m, v_m, w_m )
     206             CALL diffusion_u( i, j, ddzu, ddzw, km_m, tend, u_m, usws_m, &
     207                               uswst_m, v_m, w_m )
    205208          ELSE
    206              CALL diffusion_u( i, j, ddzu, ddzw, km, km_damp_y, tend, u, usws, &
    207                                uswst, v, w )
     209             CALL diffusion_u( i, j, ddzu, ddzw, km, tend, u, usws, uswst, &
     210                               v, w )
    208211          ENDIF
    209212          CALL coriolis( i, j, 1 )
     
    289292          ENDIF
    290293          IF ( tsc(2) == 2.0  .AND.  timestep_scheme(1:8) == 'leapfrog' )  THEN
    291              CALL diffusion_v( i, j, ddzu, ddzw, km_m, km_damp_x, tend, u_m, &
    292                                v_m, vsws_m, vswst_m, w_m )
     294             CALL diffusion_v( i, j, ddzu, ddzw, km_m, tend, u_m, v_m, &
     295                               vsws_m, vswst_m, w_m )
    293296          ELSE
    294              CALL diffusion_v( i, j, ddzu, ddzw, km, km_damp_x, tend, u, v, &
    295                                vsws, vswst, w )
     297             CALL diffusion_v( i, j, ddzu, ddzw, km, tend, u, v, vsws, &
     298                               vswst, w )
    296299          ENDIF
    297300          CALL coriolis( i, j, 2 )
     
    373376          ENDIF
    374377          IF ( tsc(2) == 2.0  .AND.  timestep_scheme(1:8) == 'leapfrog' )  THEN
    375              CALL diffusion_w( i, j, ddzu, ddzw, km_m, km_damp_x, km_damp_y,  &
    376                                tend, u_m, v_m, w_m )
     378             CALL diffusion_w( i, j, ddzu, ddzw, km_m, tend, u_m, v_m, w_m )
    377379          ELSE
    378              CALL diffusion_w( i, j, ddzu, ddzw, km, km_damp_x, km_damp_y,    &
    379                                tend, u, v, w )
     380             CALL diffusion_w( i, j, ddzu, ddzw, km, tend, u, v, w )
    380381          ENDIF
    381382          CALL coriolis( i, j, 3 )
     
    524525             DO  k = nzb_s_inner(j,i)+1, nzt
    525526                pt_p(k,j,i) = ( 1 - sat ) * pt_m(k,j,i) + sat * pt(k,j,i) + &
    526                               dt_3d * (                                           &
     527                              dt_3d * (                                        &
    527528                                       sbt * tend(k,j,i) + tsc(3) * tpt_m(k,j,i) &
    528                                       ) -                                         &
    529                               tsc(5) * rdf_sc(k) * ( pt(k,j,i) - pt_init(k) )
     529                                      ) - &
     530                              tsc(5) * ( pt(k,j,i) - pt_init(k) ) * &
     531                              ( rdf_sc(k) + ptdf_x(i) + ptdf_y(j) ) 
    530532             ENDDO
    531533
     
    983985             IF ( tsc(2) == 2.0  .OR.  timestep_scheme(1:5) == 'runge' )  THEN
    984986                IF ( ws_scheme_mom )  THEN
    985                    IF ( outflow_l .AND. i_omp_start == nxl )  THEN
     987                   IF ( ( inflow_l .OR. outflow_l ) .AND. i_omp_start == nxl )  THEN
    986988!                     CALL local_diss( i, j, u)    ! dissipation control
    987989                      CALL advec_u_ws( i, j, i_omp_start + 1, tn )
     
    997999             IF ( tsc(2) == 2.0  .AND.  timestep_scheme(1:8) == 'leapfrog' ) &
    9981000             THEN
    999                 CALL diffusion_u( i, j, ddzu, ddzw, km_m, km_damp_y, tend, &
    1000                                   u_m, usws_m, uswst_m, v_m, w_m )
    1001              ELSE
    1002                 CALL diffusion_u( i, j, ddzu, ddzw, km, km_damp_y, tend, u, &
    1003                                   usws, uswst, v, w )
     1001                CALL diffusion_u( i, j, ddzu, ddzw, km_m, tend,  u_m, &
     1002                                  usws_m, uswst_m, v_m, w_m )
     1003             ELSE
     1004                CALL diffusion_u( i, j, ddzu, ddzw, km, tend, u, usws, &
     1005                                  uswst, v, w )
    10041006             ENDIF
    10051007             CALL coriolis( i, j, 1 )
     
    10661068             IF ( tsc(2) == 2.0  .AND.  timestep_scheme(1:8) == 'leapfrog' ) &
    10671069             THEN
    1068                 CALL diffusion_v( i, j, ddzu, ddzw, km_m, km_damp_x, tend,    &
    1069                                   u_m, v_m, vsws_m, vswst_m, w_m )
    1070              ELSE
    1071                 CALL diffusion_v( i, j, ddzu, ddzw, km, km_damp_x, tend, u, v, &
    1072                                   vsws, vswst, w )
     1070                CALL diffusion_v( i, j, ddzu, ddzw, km_m, tend, u_m, v_m, &
     1071                                  vsws_m, vswst_m, w_m )
     1072             ELSE
     1073                CALL diffusion_v( i, j, ddzu, ddzw, km, tend, u, v, vsws, &
     1074                                  vswst, w )
    10731075             ENDIF
    10741076             CALL coriolis( i, j, 2 )
     
    11301132          IF ( tsc(2) == 2.0  .AND.  timestep_scheme(1:8) == 'leapfrog' ) &
    11311133          THEN
    1132              CALL diffusion_w( i, j, ddzu, ddzw, km_m, km_damp_x,          &
    1133                                km_damp_y, tend, u_m, v_m, w_m )
     1134             CALL diffusion_w( i, j, ddzu, ddzw, km_m, tend, u_m, v_m, &
     1135                               w_m )
    11341136          ELSE
    1135              CALL diffusion_w( i, j, ddzu, ddzw, km, km_damp_x, km_damp_y, &
    1136                                tend, u, v, w )
     1137             CALL diffusion_w( i, j, ddzu, ddzw, km, tend, u, v, w )
    11371138          ENDIF
    11381139          CALL coriolis( i, j, 3 )
     
    12401241                              dt_3d * (                                        &
    12411242                                  tsc(2) * tend(k,j,i) + tsc(3) * tpt_m(k,j,i) &
    1242                                       ) -                                      &
    1243                               tsc(5) * rdf_sc(k) * ( pt(k,j,i) - pt_init(k) )
     1243                                      ) - &
     1244                              tsc(5) * ( pt(k,j,i) - pt_init(k) ) * &
     1245                              ( rdf_sc(k) + ptdf_x(i) + ptdf_y(j) ) 
    12441246             ENDDO
    12451247
     
    15401542    ENDIF
    15411543    IF ( tsc(2) == 2.0  .AND.  timestep_scheme(1:8) == 'leapfrog' )  THEN
    1542        CALL diffusion_u( ddzu, ddzw, km_m, km_damp_y, tend, u_m, usws_m, &
    1543                          uswst_m, v_m, w_m )
     1544       CALL diffusion_u( ddzu, ddzw, km_m, tend, u_m, usws_m, uswst_m, &
     1545                         v_m, w_m )
    15441546    ELSE
    1545        CALL diffusion_u( ddzu, ddzw, km, km_damp_y, tend, u, usws, uswst, v, w )
     1547       CALL diffusion_u( ddzu, ddzw, km, tend, u, usws, uswst, v, w )
    15461548    ENDIF
    15471549    CALL coriolis( 1 )
     
    16341636    ENDIF
    16351637    IF ( tsc(2) == 2.0  .AND.  timestep_scheme(1:8) == 'leapfrog' )  THEN
    1636        CALL diffusion_v( ddzu, ddzw, km_m, km_damp_x, tend, u_m, v_m, vsws_m, &
    1637                          vswst_m, w_m )
     1638       CALL diffusion_v( ddzu, ddzw, km_m, tend, u_m, v_m, vsws_m, vswst_m, &
     1639                         w_m )
    16381640    ELSE
    1639        CALL diffusion_v( ddzu, ddzw, km, km_damp_x, tend, u, v, vsws, vswst, w )
     1641       CALL diffusion_v( ddzu, ddzw, km, tend, u, v, vsws, vswst, w )
    16401642    ENDIF
    16411643    CALL coriolis( 2 )
     
    17251727    ENDIF
    17261728    IF ( tsc(2) == 2.0  .AND.  timestep_scheme(1:8) == 'leapfrog' )  THEN
    1727        CALL diffusion_w( ddzu, ddzw, km_m, km_damp_x, km_damp_y, tend, u_m, &
    1728                          v_m, w_m )
     1729       CALL diffusion_w( ddzu, ddzw, km_m, tend, u_m, v_m, w_m )
    17291730    ELSE
    1730        CALL diffusion_w( ddzu, ddzw, km, km_damp_x, km_damp_y, tend, u, v, w )
     1731       CALL diffusion_w( ddzu, ddzw, km, tend, u, v, w )
    17311732    ENDIF
    17321733    CALL coriolis( 3 )
     
    18771878          DO  j = nys, nyn
    18781879             DO  k = nzb_s_inner(j,i)+1, nzt
    1879                 pt_p(k,j,i) = ( 1 - sat ) * pt_m(k,j,i) + sat * pt(k,j,i) +       &
    1880                               dt_3d * (                                           &
    1881                                        sbt * tend(k,j,i) + tsc(3) * tpt_m(k,j,i) &
    1882                                       ) -                                         &
    1883                               tsc(5) * rdf_sc(k) * ( pt(k,j,i) - pt_init(k) )
     1880                pt_p(k,j,i) = ( 1 - sat ) * pt_m(k,j,i) + sat * pt(k,j,i) +    &
     1881                              dt_3d * (                                        &
     1882                                       sbt * tend(k,j,i) + tsc(3) * tpt_m(k,j,i)&
     1883                                      ) - &
     1884                              tsc(5) * ( pt(k,j,i) - pt_init(k) ) * &
     1885                              ( rdf_sc(k) + ptdf_x(i) + ptdf_y(j) ) 
    18841886             ENDDO
    18851887          ENDDO
Note: See TracChangeset for help on using the changeset viewer.