Ignore:
Timestamp:
Jul 27, 2018 1:36:03 PM (3 years ago)
Author:
suehring
Message:

New Inifor features: grid stretching, improved command-interface, support start dates in different formats in both YYYYMMDD and YYYYMMDDHH, Ability to manually control input file prefixes (--radiation-prefix, --soil-preifx, --flow-prefix, --soilmoisture-prefix) for compatiblity with DWD forcast naming scheme; GNU-style short and long option; Prepared output of large-scale forcing profiles (no computation yet); Added preprocessor flag netcdf4 to switch output format between netCDF 3 and 4; Updated netCDF variable names and attributes to comply with PIDS v1.9; Inifor bugfixes: Improved compatibility with older Intel Intel compilers by avoiding implicit array allocation; Added origin_lon/_lat values and correct reference time in dynamic driver global attributes; corresponding PALM changes: adjustments to revised Inifor; variables names in dynamic driver adjusted; enable geostrophic forcing also in offline nested mode; variable names in LES-LES and COSMO offline nesting changed; lateral boundary flags for nesting, in- and outflow conditions renamed

File:
1 edited

Legend:

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

    r3022 r3182  
    2020! Current revisions:
    2121! ------------------
    22 !
     22! Rename variables for boundary-condition flags and for offline nesting mode
    2323!
    2424! Former revisions:
     
    460460
    461461       USE control_parameters,                                                 &
    462            ONLY:  force_bound_l, force_bound_n, force_bound_r, force_bound_s,  &
    463                   inflow_l, inflow_n, inflow_r, inflow_s, momentum_advec,      &
    464                   nest_bound_l, nest_bound_n, nest_bound_r, nest_bound_s,      &
    465                   outflow_l, outflow_n, outflow_r, outflow_s, scalar_advec
     462           ONLY:  bc_dirichlet_l, bc_dirichlet_n, bc_dirichlet_r,              &
     463                  bc_dirichlet_s, bc_radiation_l, bc_radiation_n,              &
     464                  bc_radiation_r, bc_radiation_s, momentum_advec, scalar_advec
    466465
    467466       USE indices,                                                            &
     
    501500                    .OR.  .NOT. BTEST(wall_flags_0(k,j,i+2),0)                 &   
    502501                    .OR.  .NOT. BTEST(wall_flags_0(k,j,i-1),0) )               &
    503                       .OR.  ( ( inflow_l .OR. outflow_l .OR. nest_bound_l  .OR.&
    504                                 force_bound_l )                                &
     502                      .OR.  ( ( bc_dirichlet_l .OR. bc_radiation_l )           &
    505503                            .AND.  i == nxl   )                                &
    506                       .OR.  ( ( inflow_r .OR. outflow_r .OR. nest_bound_r  .OR.&
    507                                 force_bound_r )                                &
     504                      .OR.  ( ( bc_dirichlet_r .OR. bc_radiation_r )           &
    508505                            .AND.  i == nxr   ) )                              &
    509506                   THEN
     
    520517                            )                                                  &
    521518                                                    .OR.                       &
    522                             ( ( inflow_r .OR. outflow_r .OR. nest_bound_r  .OR.&
    523                                 force_bound_r )                                &
     519                            ( ( bc_dirichlet_r .OR. bc_radiation_r )           &
    524520                              .AND. i == nxr-1 )    .OR.                       &
    525                             ( ( inflow_l .OR. outflow_l .OR. nest_bound_l  .OR.&
    526                                 force_bound_l )                                &
     521                            ( ( bc_dirichlet_l .OR. bc_radiation_l )           &
    527522                              .AND. i == nxlu  ) )                             & ! why not nxl+1
    528523                   THEN
     
    542537                    .OR.  .NOT. BTEST(wall_flags_0(k,j+2,i),0)                 &   
    543538                    .OR.  .NOT. BTEST(wall_flags_0(k,j-1,i),0))                &
    544                       .OR.  ( ( inflow_s .OR. outflow_s .OR. nest_bound_s  .OR.&
    545                                 force_bound_s )                                &
     539                      .OR.  ( ( bc_dirichlet_s .OR. bc_radiation_s )           &
    546540                            .AND.  j == nys   )                                &
    547                       .OR.  ( ( inflow_n .OR. outflow_n .OR. nest_bound_n  .OR.&
    548                                 force_bound_n )                                &
     541                      .OR.  ( ( bc_dirichlet_n .OR. bc_radiation_n )           &
    549542                            .AND.  j == nyn   ) )                              &
    550543                   THEN
     
    563556                            )                                                  &
    564557                                                    .OR.                       &
    565                             ( ( inflow_s .OR. outflow_s .OR. nest_bound_s  .OR.&
    566                                 force_bound_s )                                &
     558                            ( ( bc_dirichlet_s .OR. bc_radiation_s )           &
    567559                              .AND. j == nysv  )    .OR.                       & ! why not nys+1
    568                             ( ( inflow_n .OR. outflow_n .OR. nest_bound_n  .OR.&
    569                                 force_bound_n )                                &
     560                            ( ( bc_dirichlet_n .OR. bc_radiation_n )           &
    570561                              .AND. j == nyn-1 ) )                             &         
    571562                   THEN
     
    655646!--                WS1 (9), WS3 (10), WS5 (11)
    656647                   IF ( .NOT. BTEST(wall_flags_0(k,j,i+1),1)  .OR.             &
    657                             ( ( inflow_l .OR. outflow_l .OR. nest_bound_l  .OR.&
    658                                 force_bound_l )                                &
     648                            ( ( bc_dirichlet_l .OR. bc_radiation_l )           &
    659649                              .AND. i <= nxlu  )    .OR.                       &
    660                             ( ( inflow_r .OR. outflow_r .OR. nest_bound_r  .OR.&
    661                                 force_bound_r )                                &
     650                            ( ( bc_dirichlet_r .OR. bc_radiation_r )           &
    662651                              .AND. i == nxr   ) )                             &
    663652                   THEN
     
    667656                              .NOT. BTEST(wall_flags_0(k,j,i-1),1) )           &
    668657                                                        .OR.                   &
    669                             ( ( inflow_r .OR. outflow_r .OR. nest_bound_r  .OR.&
    670                                 force_bound_r )                                &
     658                            ( ( bc_dirichlet_r .OR. bc_radiation_r )           &
    671659                              .AND. i == nxr-1 )    .OR.                       &
    672                             ( ( inflow_l .OR. outflow_l .OR. nest_bound_l  .OR.&
    673                                 force_bound_l )                                &
     660                            ( ( bc_dirichlet_l .OR. bc_radiation_l )           &
    674661                              .AND. i == nxlu+1) )                             &
    675662                   THEN
     
    691678!--                WS1 (12), WS3 (13), WS5 (14)
    692679                   IF ( .NOT. BTEST(wall_flags_0(k,j+1,i),1)   .OR.            &
    693                             ( ( inflow_s .OR. outflow_s .OR. nest_bound_s  .OR.&
    694                                 force_bound_s )                                &
     680                            ( ( bc_dirichlet_s .OR. bc_radiation_s )           &
    695681                              .AND. j == nys   )    .OR.                       &
    696                             ( ( inflow_n .OR. outflow_n .OR. nest_bound_n  .OR.&
    697                                 force_bound_n )                                &
     682                            ( ( bc_dirichlet_n .OR. bc_radiation_n )           &
    698683                              .AND. j == nyn   ) )                             &
    699684                   THEN
     
    703688                              .NOT. BTEST(wall_flags_0(k,j-1,i),1) )           &
    704689                                                        .OR.                   &
    705                             ( ( inflow_s .OR. outflow_s .OR. nest_bound_s  .OR.&
    706                                 force_bound_s )                                &
     690                            ( ( bc_dirichlet_s .OR. bc_radiation_s )           &
    707691                              .AND. j == nysv  )    .OR.                       &
    708                             ( ( inflow_n .OR. outflow_n .OR. nest_bound_n  .OR.&
    709                                 force_bound_n )                                &
     692                            ( ( bc_dirichlet_n .OR. bc_radiation_n )           &
    710693                              .AND. j == nyn-1 ) )                             &
    711694                   THEN
     
    789772!--                WS1 (18), WS3 (19), WS5 (20)
    790773                   IF ( .NOT. BTEST(wall_flags_0(k,j,i+1),2)  .OR.             &
    791                             ( ( inflow_l .OR. outflow_l .OR. nest_bound_l  .OR.&
    792                                 force_bound_l )                                &
     774                            ( ( bc_dirichlet_l .OR. bc_radiation_l )           &
    793775                              .AND. i == nxl   )    .OR.                       &
    794                             ( ( inflow_r .OR. outflow_r .OR. nest_bound_r  .OR.&
    795                                 force_bound_r )                                &
     776                            ( ( bc_dirichlet_r .OR. bc_radiation_r )           &
    796777                              .AND. i == nxr   ) )                             &
    797778                  THEN
     
    803784                              .NOT. BTEST(wall_flags_0(k,j,i-1),2)             &
    804785                                                    .OR.                       &
    805                             ( ( inflow_r .OR. outflow_r .OR. nest_bound_r  .OR.&
    806                                 force_bound_r )                                &
     786                            ( ( bc_dirichlet_r .OR. bc_radiation_r )           &
    807787                              .AND. i == nxr-1 )    .OR.                       &
    808                             ( ( inflow_l .OR. outflow_l .OR. nest_bound_l  .OR.&
    809                                 force_bound_l )                                &
     788                            ( ( bc_dirichlet_l .OR. bc_radiation_l )           &
    810789                              .AND. i == nxlu  ) )                             &
    811790                   THEN
     
    827806!--                WS1 (21), WS3 (22), WS5 (23)
    828807                   IF ( .NOT. BTEST(wall_flags_0(k,j+1,i),2) .OR.              &
    829                             ( ( inflow_s .OR. outflow_s .OR. nest_bound_s  .OR.&
    830                                 force_bound_s )                                &
     808                            ( ( bc_dirichlet_s .OR. bc_radiation_s )           &
    831809                              .AND. j <= nysv  )    .OR.                       &
    832                             ( ( inflow_n .OR. outflow_n .OR. nest_bound_n  .OR.&
    833                                 force_bound_n )                                &
     810                            ( ( bc_dirichlet_n .OR. bc_radiation_n )           &
    834811                              .AND. j == nyn   ) )                             &
    835812                   THEN
     
    839816                              .NOT. BTEST(wall_flags_0(k,j-1,i),2) )           &
    840817                                                        .OR.                   &
    841                             ( ( inflow_s .OR. outflow_s .OR. nest_bound_s  .OR.&
    842                                 force_bound_s )                                &
     818                            ( (  bc_dirichlet_s .OR. bc_radiation_s )          &
    843819                              .AND. j == nysv+1)    .OR.                       &
    844                             ( ( inflow_n .OR. outflow_n .OR. nest_bound_n  .OR.&
    845                                 force_bound_n )                                &
     820                            ( (  bc_dirichlet_n .OR. bc_radiation_n )          &
    846821                              .AND. j == nyn-1 ) )                             &
    847822                   THEN
     
    924899!--                WS1 (27), WS3 (28), WS5 (29)
    925900                   IF ( .NOT. BTEST(wall_flags_0(k,j,i+1),3) .OR.              &
    926                             ( ( inflow_l .OR. outflow_l .OR. nest_bound_l  .OR.&
    927                                 force_bound_l )                                &
     901                            ( (  bc_dirichlet_l .OR. bc_radiation_l )          &
    928902                              .AND. i == nxl   )    .OR.                       &
    929                             ( ( inflow_r .OR. outflow_r .OR. nest_bound_r  .OR.&
    930                                 force_bound_r )                                &
     903                            ( (  bc_dirichlet_r .OR. bc_radiation_r )          &
    931904                              .AND. i == nxr   ) )                             &
    932905                   THEN
     
    936909                              .NOT. BTEST(wall_flags_0(k,j,i-1),3) )           &
    937910                                                        .OR.                   &
    938                             ( ( inflow_r .OR. outflow_r .OR. nest_bound_r  .OR.&
    939                                 force_bound_r )                                &
     911                            ( ( bc_dirichlet_r .OR. bc_radiation_r )           &
    940912                              .AND. i == nxr-1 )    .OR.                       &
    941                             ( ( inflow_l .OR. outflow_l .OR. nest_bound_l  .OR.&
    942                                 force_bound_l )                                &
     913                            ( ( bc_dirichlet_l .OR.  bc_radiation_l )          &
    943914                              .AND. i == nxlu  ) )                             &
    944915                   THEN
     
    960931!--                WS1 (30), WS3 (31), WS5 (32)
    961932                   IF ( .NOT. BTEST(wall_flags_0(k,j+1,i),3) .OR.              &
    962                             ( ( inflow_s .OR. outflow_s .OR. nest_bound_s  .OR.&
    963                                 force_bound_s )                                &
     933                            ( ( bc_dirichlet_s .OR. bc_radiation_s )           &
    964934                              .AND. j == nys   )    .OR.                       &
    965                             ( ( inflow_n .OR. outflow_n .OR. nest_bound_n  .OR.&
    966                                 force_bound_n )                                &
     935                            ( ( bc_dirichlet_n .OR. bc_radiation_n )           &
    967936                              .AND. j == nyn   ) )                             &
    968937                   THEN
     
    972941                              .NOT. BTEST(wall_flags_0(k,j-1,i),3) )           &
    973942                                                        .OR.                   &
    974                             ( ( inflow_s .OR. outflow_s .OR. nest_bound_s  .OR.&
    975                                 force_bound_s )                                &
     943                            ( ( bc_dirichlet_s .OR. bc_radiation_s )           &
    976944                              .AND. j == nysv  )    .OR.                       &
    977                             ( ( inflow_n .OR. outflow_n .OR. nest_bound_n  .OR.&
    978                                 force_bound_n )                                &
     945                            ( ( bc_dirichlet_n .OR. bc_radiation_n )           &
    979946                              .AND. j == nyn-1 ) )                             &
    980947                   THEN
     
    10671034!--       Set boundary flags at inflow and outflow boundary in case of
    10681035!--       non-cyclic boundary conditions.
    1069           IF ( inflow_l      .OR.  outflow_l  .OR.                             &
    1070                nest_bound_l  .OR.  force_bound_l )  THEN
     1036          IF ( bc_dirichlet_l  .OR.  bc_radiation_l )  THEN
    10711037             advc_flags_1(:,:,nxl-1) = advc_flags_1(:,:,nxl)
    10721038             advc_flags_2(:,:,nxl-1) = advc_flags_2(:,:,nxl)
    10731039          ENDIF
    10741040
    1075           IF ( inflow_r      .OR.  outflow_r  .OR.                             &
    1076                nest_bound_r  .OR.  force_bound_r )  THEN
     1041          IF ( bc_dirichlet_r  .OR.  bc_radiation_r )  THEN
    10771042            advc_flags_1(:,:,nxr+1) = advc_flags_1(:,:,nxr)
    10781043            advc_flags_2(:,:,nxr+1) = advc_flags_2(:,:,nxr)
    10791044          ENDIF
    10801045
    1081           IF ( inflow_n      .OR.  outflow_n  .OR.                             &
    1082                nest_bound_n  .OR.  force_bound_n )  THEN
     1046          IF ( bc_dirichlet_n  .OR.  bc_radiation_n )  THEN
    10831047             advc_flags_1(:,nyn+1,:) = advc_flags_1(:,nyn,:)
    10841048             advc_flags_2(:,nyn+1,:) = advc_flags_2(:,nyn,:)
    10851049          ENDIF
    10861050
    1087           IF ( inflow_s      .OR.  outflow_s  .OR.                             &
    1088                nest_bound_s  .OR.  force_bound_s )  THEN
     1051          IF ( bc_dirichlet_s  .OR.  bc_radiation_s )  THEN
    10891052             advc_flags_1(:,nys-1,:) = advc_flags_1(:,nys,:)
    10901053             advc_flags_2(:,nys-1,:) = advc_flags_2(:,nys,:)
Note: See TracChangeset for help on using the changeset viewer.