Changeset 3900 for palm


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

Bugfixes in initialization and STG

Location:
palm/trunk/SOURCE
Files:
3 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. 
  • palm/trunk/SOURCE/radiation_model_mod.f90

    r3885 r3900  
    2828! -----------------
    2929! $Id$
     30! Fixed initialization problem
     31!
     32! 3885 2019-04-11 11:29:34Z kanani
    3033! Changes related to global restructuring of location messages and introduction
    3134! of additional debug messages
     
    22162219                ioff = surf_usm_v(l)%ioff
    22172220                joff = surf_usm_v(l)%joff
    2218                 DO  m = 1, surf_usm_h%ns
    2219                    i = surf_usm_h%i(m) + joff
    2220                    j = surf_usm_h%j(m) + joff
     2221                DO  m = 1, surf_usm_v(l)%ns
     2222                   i = surf_usm_v(l)%i(m) + joff
     2223                   j = surf_usm_v(l)%j(m) + joff
    22212224                   IF ( albedo_pars_f%pars_xy(0,j,i) /= albedo_pars_f%fill )  THEN
    22222225                      IF ( surf_usm_v(l)%albedo_type(ind_veg_wall,m) == 0 )    &
     
    22252228                         surf_usm_v(l)%albedo(ind_pav_green,m) = albedo_pars_f%pars_xy(0,j,i)
    22262229                      IF ( surf_usm_v(l)%albedo_type(ind_wat_win,m) == 0 )     &
    2227                          surf_lsm_v(l)%albedo(ind_wat_win,m) = albedo_pars_f%pars_xy(0,j,i)
     2230                         surf_usm_v(l)%albedo(ind_wat_win,m) = albedo_pars_f%pars_xy(0,j,i)
    22282231                   ENDIF
    22292232                ENDDO
  • palm/trunk/SOURCE/synthetic_turbulence_generator_mod.f90

    r3891 r3900  
    2525! -----------------
    2626! $Id$
     27! Missing re-calculation of perturbation seeds in case of restarts
     28!
     29! 3891 2019-04-12 17:52:01Z suehring
    2730! Bugfix in initialization in case of restart runs.
    2831!
     
    899902                ELSE
    900903                   fw_yz = 0._wp
     904                ENDIF
     905
     906             ENDDO
     907          ENDDO
     908       ENDIF
     909       
     910       IF ( myidy == id_stg_south  .OR.  myidy == id_stg_north )  THEN
     911
     912          IF ( myidy == id_stg_south )  j = -1
     913          IF ( myidy == id_stg_north )  j = nyn+1
     914
     915          DO  i = nxlg, nxrg
     916             DO  k = nzb, nzt+1
     917
     918                IF  ( a11(k) .NE. 0._wp ) THEN
     919                   fu_xz(k,i) = ( u(k,j,i) / mc_factor - u_init(k) ) / a11(k)
     920                ELSE
     921                   fu_xz(k,i) = 0._wp
     922                ENDIF
     923
     924                IF  ( a22(k) .NE. 0._wp ) THEN
     925                   fv_xz(k,i) = ( v(k,j,i) / mc_factor - a21(k) * fu_yz(k,i) - &
     926                               v_init(k) ) / a22(k)
     927                ELSE
     928                   fv_xz(k,i) = 0._wp
     929                ENDIF
     930
     931                IF  ( a33(k) .NE. 0._wp ) THEN
     932                   fw_xz(k,i) = ( w(k,j,i) / mc_factor - a31(k) * fu_yz(k,i) - &
     933                               a32(k) * fv_yz(k,i) ) / a33(k)
     934                ELSE
     935                   fw_xz = 0._wp
    901936                ENDIF
    902937
Note: See TracChangeset for help on using the changeset viewer.