Changes between Version 80 and Version 81 of doc/app/userint/output


Ignore:
Timestamp:
Sep 6, 2018 9:00:23 AM (6 years ago)
Author:
Giersch
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • doc/app/userint/output

    v80 v81  
    7575   3. In order to store the quantities' data within PALM, a 3d data array has to be declared in module [../int#user user] (user_module.f90): \\
    7676
    77    {{{ REAL, DIMENSION(:,:,:), ALLOCATABLE ::  u2, u2_av }}} //
     77   {{{ REAL(wp), DIMENSION(:,:,:), ALLOCATABLE ::  u2, u2_av }}} //
    7878
    7979   The second array {{{u2_av}}} is needed in case that output of time averaged data is requested. It is used to store the sum of the data of the respective time levels over which the average has to be carried out. \\
     
    124124      {{{    ... }}} \\
    125125      {{{       CASE ( 'u2' ) }}} \\
    126          {{{       DO  i = nxlg, nxrg }}} \\
    127             {{{       DO  j = nysg, nyng }}} \\
    128                {{{       DO  k = nzb, nzt+1 }}} \\
    129                   {{{       u2_av(k,j,i) = u2_av(k,j,i) + u2(k,j,i) }}} \\
     126         {{{       IF ( ALLOCATED( u2_av ) ) THEN }}} \\
     127            {{{       DO  i = nxlg, nxrg }}} \\
     128               {{{       DO  j = nysg, nyng }}} \\
     129                  {{{       DO  k = nzb, nzt+1 }}} \\
     130                     {{{       u2_av(k,j,i) = u2_av(k,j,i) + u2(k,j,i) }}} \\
     131                  {{{ ENDDO }}} \\
    130132               {{{ ENDDO }}} \\
    131133            {{{ ENDDO }}} \\
    132          {{{ ENDDO }}} \\
     134         {{{ ENDIF}}} \\
    133135         {{{    ...  }}} \\
    134136   {{{ ELSEIF ( mode == 'average' )  THEN }}} \\
    135137      {{{ ... }}} \\
    136138      {{{    CASE ( 'u2' ) }}} \\
    137          {{{    DO  i = nxlg, nxrg }}} \\
    138             {{{    DO  j = nysg, nyng }}} \\
    139                {{{    DO  k = nzb, nzt+1 }}} \\
    140                   {{{    u2_av(k,j,i) = u2_av(k,j,i) / REAL( average_count_3d ) }}} \\
     139         {{{       IF ( ALLOCATED( u2_av ) ) THEN }}} \\
     140            {{{    DO  i = nxlg, nxrg }}} \\
     141               {{{    DO  j = nysg, nyng }}} \\
     142                  {{{    DO  k = nzb, nzt+1 }}} \\
     143                     {{{    u2_av(k,j,i) = u2_av(k,j,i) / REAL( average_count_3d, KIND=wp ) }}} \\
     144                  {{{ ENDDO }}} \\
    141145               {{{ ENDDO }}} \\
    142146            {{{ ENDDO }}} \\
    143          {{{ ENDDO }}} \\
     147         {{{ ENDIF}}} \\
     148         {{{    ...  }}} \\
    144149       
    145150   9. For output of '''2d cross sections''', the data of the quantity has to be resorted to array {{{local_pf}}} in subroutine [../int#user_data_output_2d user_data_output_2d]. Also the vertical grid, on which the quantity is defined, has to be set again: \\
     
    147152   {{{ CASE ( 'u2_xy', 'u2_xz', 'u2_yz' ) }}} \\
    148153      {{{    IF ( av == 0 )  THEN }}} \\
    149          {{{    DO  i = nxlg, nxrg }}} \\
    150             {{{    DO  j = nysg, nyng }}} \\
    151                {{{    DO  k = nzb, nzt+1 }}} \\
     154         {{{    DO  i = nxl, nxr }}} \\
     155            {{{    DO  j = nys, nyn }}} \\
     156               {{{    DO  k = nzb_do, nzt_do }}} \\
    152157                  {{{    local_pf(i,j,k) = u2(k,j,i) }}} \\
    153158               {{{    ENDDO }}} \\
     
    155160         {{{    ENDDO }}} \\
    156161      {{{    ELSE }}} \\
    157          {{{    DO  i = nxlg, nxrg }}} \\
    158             {{{    DO  j = nysg, nyng }}} \\
    159                {{{    DO  k = nzb, nzt+1 }}} \\
     162         {{{    IF ( .NOT. ALLOCATED( u2_av ) ) THEN  }}} \\
     163            {{{    ALLOCATE( u2_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg) ) }}} \\
     164            {{{    u2_av = REAL( fill_value, KIND = wp ) }}} \\
     165         {{{    ENDIF }}} \\
     166         {{{    DO  i = nxl, nxr }}} \\
     167            {{{    DO  j = nys, nyn }}} \\
     168               {{{    DO  k = nzb_do, nzt_do }}} \\
    160169                  {{{    local_pf(i,j,k) = u2_av(k,j,i) }}} \\
    161170               {{{    ENDDO }}} \\