Ignore:
Timestamp:
Dec 4, 2009 5:05:40 PM (14 years ago)
Author:
letzel
Message:
  • reintegrate branch letzel/masked_output into trunk; new funtionality: masked data output (not yet documented)
Location:
palm/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • palm/trunk

    • Property svn:mergeinfo set to False
      /palm/branches/letzel/masked_output296-409
  • palm/trunk/SOURCE/header.f90

    r392 r410  
    66!
    77!
     8! Branch revisions:
     9! -----------------
     10! Masked data output: + dt_domask, mask_01~20_x|y|z, mask_01~20_x|y|z_loop,
     11! mask_scale|_x|y|z, masks, netcdf_format_mask[_av], skip_time_domask
     12!
    813! Former revisions:
    914! -----------------
     
    105110    CHARACTER (LEN=70) ::  char1, char2, dopr_chr, &
    106111                           do2d_xy, do2d_xz, do2d_yz, do3d_chr, &
    107                            run_classification
     112                           domask_chr, run_classification
    108113    CHARACTER (LEN=86) ::  coordinates, gradients, learde, slices,  &
    109114                           temperatures, ugcomponent, vgcomponent
    110115    CHARACTER (LEN=85) ::  roben, runten
    111116
    112     INTEGER ::  av, bh, blx, bly, bxl, bxr, byn, bys, ch, cwx, cwy, cxl, cxr, &
    113                 cyn, cys, i, ihost, io, j, l, ll, m, mpi_type
     117    CHARACTER (LEN=1), DIMENSION(1:3) ::  dir = (/ 'x', 'y', 'z' /)
     118
     119    INTEGER ::  av, bh, blx, bly, bxl, bxr, byn, bys, ch, count, cwx, cwy,  &
     120         cxl, cxr, cyn, cys, dim, i, ihost, io, j, l, ll, m, mpi_type
    114121    REAL    ::  cpuseconds_per_simulated_second
    115122
     
    988995       ENDIF
    989996
     997    ENDDO
     998
     999!
     1000!-- masked arrays
     1001    IF ( masks > 0 )  WRITE ( io, 345 )  &
     1002         mask_scale_x, mask_scale_y, mask_scale_z
     1003    DO  mid = 1, masks
     1004       DO  av = 0, 1
     1005
     1006          i = 1
     1007          domask_chr = ''
     1008          DO  WHILE ( domask(mid,av,i) /= ' ' )
     1009             domask_chr = TRIM( domask_chr ) // ' ' //  &
     1010                          TRIM( domask(mid,av,i) ) // ','
     1011             i = i + 1
     1012          ENDDO
     1013
     1014          IF ( domask_chr /= '' )  THEN
     1015             IF ( av == 0 )  THEN
     1016                WRITE ( io, 346 )  '', mid
     1017             ELSE
     1018                WRITE ( io, 346 )  ' (time-averaged)', mid
     1019             ENDIF
     1020
     1021             output_format = ''
     1022             IF ( netcdf_output )  THEN
     1023                SELECT CASE ( nc_format_mask(mid,av) )
     1024                   CASE ( 1 )
     1025                      output_format = 'netcdf (classic format)'
     1026                   CASE ( 2 )
     1027                      output_format = 'netcdf (64bit offset format)'
     1028                   CASE ( 3 )
     1029                      output_format = 'netcdf (NetCDF 4 format)'
     1030                   CASE ( 4 )
     1031                      output_format = 'netcdf (NetCDF 4 classic model format)'
     1032                END SELECT
     1033             ENDIF
     1034             WRITE ( io, 344 )  output_format
     1035
     1036             IF ( av == 0 )  THEN
     1037                WRITE ( io, 347 )  domask_chr, dt_domask(mid)
     1038             ELSE
     1039                WRITE ( io, 348 )  domask_chr, dt_data_output_av, &
     1040                                   averaging_interval, dt_averaging_input
     1041             ENDIF
     1042
     1043             IF ( av == 0 )  THEN
     1044                IF ( skip_time_domask(mid) /= 0.0 )  THEN
     1045                   WRITE ( io, 339 )  skip_time_domask(mid)
     1046                ENDIF
     1047             ELSE
     1048                IF ( skip_time_data_output_av /= 0.0 )  THEN
     1049                   WRITE ( io, 339 )  skip_time_data_output_av
     1050                ENDIF
     1051             ENDIF
     1052!
     1053!--          output locations
     1054             DO  dim = 1, 3
     1055                IF ( mask(mid,dim,1) >= 0.0 )  THEN
     1056                   count = 0
     1057                   DO  WHILE ( mask(mid,dim,count+1) >= 0.0 )
     1058                      count = count + 1
     1059                   ENDDO
     1060                   WRITE ( io, 349 )  dir(dim), dir(dim), mid, dir(dim), &
     1061                                      mask(mid,dim,:count)
     1062                ELSEIF ( mask_loop(mid,dim,1) < 0.0 .AND.  &
     1063                         mask_loop(mid,dim,2) < 0.0 .AND.  &
     1064                         mask_loop(mid,dim,3) == 0.0 )  THEN
     1065                   WRITE ( io, 350 )  dir(dim), dir(dim)
     1066                ELSEIF ( mask_loop(mid,dim,3) == 0.0 )  THEN
     1067                   WRITE ( io, 351 )  dir(dim), dir(dim), mid, dir(dim), &
     1068                                      mask_loop(mid,dim,1:2)
     1069                ELSE
     1070                   WRITE ( io, 351 )  dir(dim), dir(dim), mid, dir(dim), &
     1071                                      mask_loop(mid,dim,1:3)
     1072                ENDIF
     1073             ENDDO
     1074          ENDIF
     1075
     1076       ENDDO
    9901077    ENDDO
    9911078
     
    16191706            '       Upper output limit at    ',F8.2,' m  (GP ',I4,')'/)
    16201707344 FORMAT ('       Output format: ',A/)
     1708345 FORMAT (/'    Scaling lengths for output locations of all subsequent mask IDs:',/ &
     1709            '       mask_scale_x (in x-direction): ',F9.3, ' m',/ &
     1710            '       mask_scale_y (in y-direction): ',F9.3, ' m',/ &
     1711            '       mask_scale_z (in z-direction): ',F9.3, ' m' )
     1712346 FORMAT (/'    Masked data output',A,' for mask ID ',I2, ':')
     1713347 FORMAT ('       Variables: ',A/ &
     1714            '       Output every             ',F8.2,' s')
     1715348 FORMAT ('       Variables: ',A/ &
     1716            '       Output every             ',F8.2,' s'/ &
     1717            '       Time averaged over       ',F8.2,' s'/ &
     1718            '       Averaging input every    ',F8.2,' s')
     1719349 FORMAT (/'       Output locations in ',A,'-direction in multiples of ', &
     1720            'mask_scale_',A,' predefined by array mask_',I2.2,'_',A,':'/ &
     1721            13('       ',8(F8.2,',')/) )
     1722350 FORMAT (/'       Output locations in ',A,'-direction: ', &
     1723            'all gridpoints along ',A,'-direction (default).' )
     1724351 FORMAT (/'       Output locations in ',A,'-direction in multiples of ', &
     1725            'mask_scale_',A,' constructed from array mask_',I2.2,'_',A,'_loop:'/ &
     1726            '          loop begin:',F8.2,', end:',F8.2,', stride:',F8.2 )
    16211727#if defined( __dvrp_graphics )
    16221728360 FORMAT ('    Plot-Sequence with dvrp-software:'/ &
Note: See TracChangeset for help on using the changeset viewer.