Ignore:
Timestamp:
Apr 16, 2019 3:17:43 PM (5 years ago)
Author:
suehring
Message:

Bugfixes in initialization and STG

File:
1 edited

Legend:

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

    r3885 r3900  
    2525! -----------------
    2626! $Id$
     27! Fix problem with LOD = 2 initialization
     28!
     29! 3885 2019-04-11 11:29:34Z kanani
    2730! Changes related to global restructuring of location messages and introduction
    2831! of additional debug messages
     
    12041207          ENDDO
    12051208!
    1206 !--       Exchange ghost points in case of level-of-detail = 2
    1207           IF( init_3d%lod_u == 2 )   CALL exchange_horiz( u, nbgp )
    1208           IF( init_3d%lod_v == 2 )   CALL exchange_horiz( v, nbgp )
    1209           IF( init_3d%lod_w == 2 )   CALL exchange_horiz( w, nbgp )
     1209!--       Exchange ghost points and set boundary conditions in case of
     1210!--       level-of-detail = 2
     1211          IF( init_3d%lod_u == 2 )  CALL exchange_horiz( u, nbgp )
     1212          IF( init_3d%lod_v == 2 )  CALL exchange_horiz( v, nbgp )
     1213          IF( init_3d%lod_w == 2 )  CALL exchange_horiz( w, nbgp )
    12101214          IF( .NOT. neutral  .AND.  init_3d%lod_pt == 2 )                      &
    12111215             CALL exchange_horiz( pt, nbgp )
    12121216          IF( humidity  .AND.  init_3d%lod_q == 2 )                            &
    12131217             CALL exchange_horiz( q, nbgp )
     1218         
     1219          IF ( bc_dirichlet_l )  THEN
     1220             DO  j = nysg, nyng
     1221                DO  k = nzb, nzt+1
     1222                   IF( init_3d%lod_u == 2 )  u(k,j,nxlg:nxl)   = u(k,j,nxlu)
     1223                   IF( init_3d%lod_v == 2 )  v(k,j,nxlg:nxl-1) = v(k,j,nxl)
     1224                   IF( init_3d%lod_w == 2 )  w(k,j,nxlg:nxl-1) = w(k,j,nxl)
     1225                   IF( .NOT. neutral  .AND.  init_3d%lod_pt == 2 )                      &
     1226                      pt(k,j,nxlg:nxl-1) = pt(k,j,nxl)
     1227                   IF( humidity  .AND.  init_3d%lod_q == 2 )                            &
     1228                      q(k,j,nxlg:nxl-1)  = q(k,j,nxl)
     1229                ENDDO
     1230             ENDDO
     1231          ENDIF
     1232          IF ( bc_dirichlet_r )  THEN
     1233             DO  j = nysg, nyng
     1234                DO  k = nzb, nzt+1
     1235                   IF( init_3d%lod_u == 2 )  u(k,j,nxr+1:nxrg) = u(k,j,nxr)
     1236                   IF( init_3d%lod_v == 2 )  v(k,j,nxr+1:nxrg) = v(k,j,nxr)
     1237                   IF( init_3d%lod_w == 2 )  w(k,j,nxr+1:nxrg) = w(k,j,nxr)
     1238                   IF( .NOT. neutral  .AND.  init_3d%lod_pt == 2 )                      &
     1239                      pt(k,j,nxr+1:nxrg) = pt(k,j,nxr)
     1240                   IF( humidity  .AND.  init_3d%lod_q == 2 )                            &
     1241                      q(k,j,nxr+1:nxrg)  = q(k,j,nxr)
     1242                ENDDO
     1243             ENDDO
     1244          ENDIF
     1245          IF ( bc_dirichlet_s )  THEN
     1246             DO  i = nxlg, nxrg
     1247                DO  k = nzb, nzt+1
     1248                   IF( init_3d%lod_u == 2 )  u(k,nysg:nys-1,i) = u(k,nys,i)
     1249                   IF( init_3d%lod_v == 2 )  v(k,nysg:nys,i)   = v(k,nysv,i)
     1250                   IF( init_3d%lod_w == 2 )  w(k,nysg:nys-1,i) = w(k,nys,i)
     1251                   IF( .NOT. neutral  .AND.  init_3d%lod_pt == 2 )                      &
     1252                      pt(k,nysg:nys-1,i) = pt(k,nys,i)
     1253                   IF( humidity  .AND.  init_3d%lod_q == 2 )                            &
     1254                      q(k,nysg:nys-1,i)  = q(k,nys,i)
     1255                ENDDO
     1256             ENDDO
     1257          ENDIF
     1258          IF ( bc_dirichlet_n )  THEN
     1259             DO  i = nxlg, nxrg
     1260                DO  k = nzb, nzt+1
     1261                   IF( init_3d%lod_u == 2 )  u(k,nyn+1:nyng,i) = u(k,nyn,i)
     1262                   IF( init_3d%lod_v == 2 )  v(k,nyn+1:nyng,i) = v(k,nyn,i)
     1263                   IF( init_3d%lod_w == 2 )  w(k,nyn+1:nyng,i) = w(k,nyn,i)
     1264                   IF( .NOT. neutral  .AND.  init_3d%lod_pt == 2 )                      &
     1265                      pt(k,nyn+1:nyng,i) = pt(k,nyn,i)
     1266                   IF( humidity  .AND.  init_3d%lod_q == 2 )                            &
     1267                      q(k,nyn+1:nyng,i)  = q(k,nyn,i)
     1268                ENDDO
     1269             ENDDO
     1270          ENDIF
    12141271!
    12151272!--       Set geostrophic wind components. 
Note: See TracChangeset for help on using the changeset viewer.