Ignore:
Timestamp:
May 28, 2018 7:55:41 AM (6 years ago)
Author:
Giersch
Message:

Code adjusted according to coding standards, renamed namelists, error messages revised until PA0347, output CASE 108 disabled

File:
1 edited

Legend:

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

    r2718 r3045  
    2525! -----------------
    2626! $Id$
     27! Error messages revised
     28!
     29! 2718 2018-01-02 08:49:38Z maronga
    2730! Corrected "Former revisions" section
    2831!
     
    192195   
    193196!
    194 !-- Parallel mask output not yet tested
     197!-- Parallel mask output not yet supported. In check_parameters data format
     198!-- is restricted and is switched back to non-parallel output. Therefore the
     199!-- following error can not occur at the moment.
    195200    IF ( netcdf_data_format > 4 )  THEN
    196        message_string = 'netCDF file formats '//                         &
    197                         '3 (netCDF 4) and 4 (netCDF 4 Classic model)'//  &
    198                         '&are currently not supported (not yet tested).'
     201       message_string = 'netCDF file formats '//                               &
     202                        '5 and 6 (with parallel I/O support)'//                &
     203                        ' are currently not supported.'
    199204       CALL message( 'init_masks', 'PA0328', 1, 2, 0, 6, 0 )
    200205    ENDIF
     
    258263          DO  WHILE ( do_mask_user(mid,j) /= ' '  .AND.  j <= 100 )
    259264             IF ( i > 100 )  THEN
    260                 WRITE ( message_string, * ) 'number of output quantitities ', &
    261                      'given by data_output_mask and data_output_mask_user ', &
     265                WRITE ( message_string, * ) 'number of output quantitities ',  &
     266                     'given by data_output_mask and data_output_mask_user ',   &
    262267                     'exceeds the limit of 100'
    263268                CALL message( 'init_masks', 'PA0329', 1, 2, 0, 6, 0 )
     
    290295             CASE ( 'e' )
    291296                IF ( constant_diffusion )  THEN
    292                    WRITE ( message_string, * ) 'output of "', TRIM( var ), &
     297                   WRITE ( message_string, * ) 'output of "', TRIM( var ),     &
    293298                        '" requires constant_diffusion = .FALSE.'
    294299                   CALL message( 'init_masks', 'PA0103', 1, 2, 0, 6, 0 )
     
    298303             CASE ( 'lpt' )
    299304                IF ( .NOT. cloud_physics )  THEN
    300                    WRITE ( message_string, * ) 'output of "', TRIM( var ), &
     305                   WRITE ( message_string, * ) 'output of "', TRIM( var ),     &
    301306                        '" requires cloud_physics = .TRUE.'
    302307                   CALL message( 'init_masks', 'PA0108', 1, 2, 0, 6, 0 )
     
    306311             CASE ( 'nc' )
    307312                IF ( .NOT. cloud_physics )  THEN
    308                    WRITE ( message_string, * ) 'output of "', TRIM( var ), &
     313                   WRITE ( message_string, * ) 'output of "', TRIM( var ),     &
    309314                        '" requires cloud_physics = .TRUE.'
    310315                   CALL message( 'init_masks', 'PA0108', 1, 2, 0, 6, 0 )
    311316                 ELSEIF ( .NOT. microphysics_morrison ) THEN
    312                    message_string = 'output of "' // TRIM( var ) // '" requi' //  &
    313                          'res  = morrison'
     317                   message_string = 'output of "' // TRIM( var ) // '" ' //    &
     318                         'requires  = morrison'
    314319                   CALL message( 'check_parameters', 'PA0359', 1, 2, 0, 6, 0 )
    315320                ENDIF
     
    318323             CASE ( 'nr' )
    319324                IF ( .NOT. cloud_physics )  THEN
    320                    WRITE ( message_string, * ) 'output of "', TRIM( var ), &
     325                   WRITE ( message_string, * ) 'output of "', TRIM( var ),     &
    321326                        '" requires cloud_physics = .TRUE.'
    322327                   CALL message( 'init_masks', 'PA0108', 1, 2, 0, 6, 0 )
    323328                 ELSEIF ( .NOT. microphysics_seifert ) THEN
    324                    message_string = 'output of "' // TRIM( var ) // '" requi' //  &
    325                          'res cloud_scheme = seifert_beheng'
     329                   message_string = 'output of "' // TRIM( var ) // '"' //     &
     330                         'requires cloud_scheme = seifert_beheng'
    326331                   CALL message( 'check_parameters', 'PA0359', 1, 2, 0, 6, 0 )
    327332                ENDIF
     
    330335             CASE ( 'pc', 'pr' )
    331336                IF ( .NOT. particle_advection )  THEN
    332                    WRITE ( message_string, * ) 'output of "', TRIM( var ), &
    333                         '" requires a "particles_par"-NAMELIST in the ', &
     337                   WRITE ( message_string, * ) 'output of "', TRIM( var ),     &
     338                        '" requires a "particles_par"-NAMELIST in the ',       &
    334339                        'parameter file (PARIN)'
    335340                   CALL message( 'init_masks', 'PA0104', 1, 2, 0, 6, 0 )
     
    340345             CASE ( 'q', 'vpt' )
    341346                IF ( .NOT. humidity )  THEN
    342                    WRITE ( message_string, * ) 'output of "', TRIM( var ), &
     347                   WRITE ( message_string, * ) 'output of "', TRIM( var ),     &
    343348                        '" requires humidity = .TRUE.'
    344349                   CALL message( 'init_masks', 'PA0105', 1, 2, 0, 6, 0 )
     
    349354             CASE ( 'qc' )
    350355                IF ( .NOT. cloud_physics )  THEN
    351                    message_string = 'output of "' // TRIM( var ) // '" requi' //  &
    352                             'res cloud_physics = .TRUE.'
     356                   message_string = 'output of "' // TRIM( var ) // '"' //     &
     357                            'requires cloud_physics = .TRUE.'
    353358                   CALL message( 'check_parameters', 'PA0108', 1, 2, 0, 6, 0 )
    354359                ENDIF
     
    357362             CASE ( 'ql' )
    358363                IF ( .NOT. ( cloud_physics  .OR.  cloud_droplets ) )  THEN
    359                    WRITE ( message_string, * ) 'output of "', TRIM( var ), &
     364                   WRITE ( message_string, * ) 'output of "', TRIM( var ),     &
    360365                        '" requires cloud_physics = .TRUE. or cloud_droplets', &
    361366                        ' = .TRUE.'
    362                    CALL message( 'init_masks', 'PA0108', 1, 2, 0, 6, 0 )
     367                   CALL message( 'init_masks', 'PA0106', 1, 2, 0, 6, 0 )
    363368                ENDIF
    364369                unit = 'kg/kg'
     
    366371             CASE ( 'ql_c', 'ql_v', 'ql_vp' )
    367372                IF ( .NOT. cloud_droplets )  THEN
    368                    WRITE ( message_string, * ) 'output of "', TRIM( var ), &
     373                   WRITE ( message_string, * ) 'output of "', TRIM( var ),     &
    369374                        '" requires cloud_droplets = .TRUE.'
    370375                   CALL message( 'init_masks', 'PA0107', 1, 2, 0, 6, 0 )
     
    376381             CASE ( 'qv' )
    377382                IF ( .NOT. cloud_physics )  THEN
    378                    WRITE ( message_string, * ) 'output of "', TRIM( var ), &
     383                   WRITE ( message_string, * ) 'output of "', TRIM( var ),     &
    379384                        '" requires cloud_physics = .TRUE.'
    380385                   CALL message( 'init_masks', 'PA0108', 1, 2, 0, 6, 0 )
     
    384389             CASE ( 'qr' )
    385390                IF ( .NOT. cloud_physics )  THEN
    386                    message_string = 'output of "' // TRIM( var ) // '" requi' //  &
    387                             'res cloud_physics = .TRUE.'
     391                   message_string = 'output of "' // TRIM( var ) // '" ' //    &
     392                            'requires cloud_physics = .TRUE.'
    388393                   CALL message( 'check_parameters', 'PA0108', 1, 2, 0, 6, 0 )
    389394                ELSEIF ( .NOT. microphysics_seifert ) THEN
    390                    message_string = 'output of "' // TRIM( var ) // '" requi' //  &
    391                             'res cloud_scheme = seifert_beheng'
     395                   message_string = 'output of "' // TRIM( var ) // '" ' //    &
     396                            'requires cloud_scheme = seifert_beheng'
    392397                   CALL message( 'check_parameters', 'PA0359', 1, 2, 0, 6, 0 )
    393398                ENDIF
     
    396401             CASE ( 'rho_ocean' )
    397402                IF ( .NOT. ocean )  THEN
    398                    WRITE ( message_string, * ) 'output of "', TRIM( var ), &
     403                   WRITE ( message_string, * ) 'output of "', TRIM( var ),     &
    399404                        '" requires ocean = .TRUE.'
    400405                   CALL message( 'init_masks', 'PA0109', 1, 2, 0, 6, 0 )
     
    404409             CASE ( 's' )
    405410                IF ( .NOT. passive_scalar )  THEN
    406                    WRITE ( message_string, * ) 'output of "', TRIM( var ), &
     411                   WRITE ( message_string, * ) 'output of "', TRIM( var ),     &
    407412                        '" requires passive_scalar = .TRUE.'
    408413                   CALL message( 'init_masks', 'PA0110', 1, 2, 0, 6, 0 )
     
    412417             CASE ( 'sa' )
    413418                IF ( .NOT. ocean )  THEN
    414                    WRITE ( message_string, * ) 'output of "', TRIM( var ), &
     419                   WRITE ( message_string, * ) 'output of "', TRIM( var ),     &
    415420                        '" requires ocean = .TRUE.'
    416421                   CALL message( 'init_masks', 'PA0109', 1, 2, 0, 6, 0 )
     
    419424
    420425             CASE ( 'u*', 't*', 'lwp*', 'pra*', 'prr*', 'z0*', 'z0h*' )
    421                 WRITE ( message_string, * ) 'illegal value for data_',&
    422                      'output: "', TRIM( var ), '" is only allowed', &
     426                WRITE ( message_string, * ) 'illegal value for data_',         &
     427                     'output: "', TRIM( var ), '" is only allowed',            &
    423428                     'for horizontal cross section'
    424429                CALL message( 'init_masks', 'PA0111', 1, 2, 0, 6, 0 )
     
    437442                IF ( unit == 'illegal' )  THEN
    438443                   IF ( do_mask_user(mid,1) /= ' ' )  THEN
    439                       WRITE ( message_string, * ) 'illegal value for data_',&
    440                            'output or data_output_user: "', &
     444                      WRITE ( message_string, * ) 'illegal value for data_',   &
     445                           'output_masks or data_output_masks_user: "',        &
    441446                           TRIM( do_mask(mid,i) ), '"'
    442                       CALL message( 'init_masks', 'PA0114', 1, 2, 0, 6, 0 )
     447                      CALL message( 'init_masks', 'PA0018', 1, 2, 0, 6, 0 )
    443448                   ELSE
    444                       WRITE ( message_string, * ) 'illegal value for data_',&
    445                            'output: "', TRIM( do_mask(mid,i) ), '"'
     449                      WRITE ( message_string, * ) 'illegal value for data_',   &
     450                           ' output_masks : "', TRIM( do_mask(mid,i) ), '"'
    446451                      CALL message( 'init_masks', 'PA0330', 1, 2, 0, 6, 0 )
    447452                   ENDIF
     
    643648             ENDIF
    644649             IF ( m > (nxyz+1) )  THEN
    645                 WRITE ( message_string, '(I3,A,I3,A,I1,3A,I3)' )  &
    646                      m,' in mask ',mid,' along dimension ',dim,  &
     650                WRITE ( message_string, '(I3,A,I3,A,I1,3A,I3)' )               &
     651                     m,' in mask ',mid,' along dimension ',dim,                &
    647652                     ' exceeds (',nxyz_string,'+1) = ',nxyz+1
    648653                CALL message( 'init_masks', 'PA0331', 1, 2, 0, 6, 0 )
     
    681686                  > (nxyz+1) * dxyz / mask_scale(dim) )  THEN
    682687                WRITE ( message_string, '(2(A,I3,A,I1,A,F9.3),5A,I1,A,F9.3)' ) &
    683                      'mask_loop(',mid,',',dim,',1)=',mask_loop(mid,dim,1), &
     688                     'mask_loop(',mid,',',dim,',1)=',mask_loop(mid,dim,1),     &
    684689                     ' and/or mask_loop(',mid,',',dim,',2)=', &
    685                      mask_loop(mid,dim,2),'&exceed (', &
    686                      nxyz_string,'+1)*',dxyz_string,'/mask_scale(',dim,')=', &
     690                     mask_loop(mid,dim,2),' exceed (', &
     691                     nxyz_string,'+1)*',dxyz_string,'/mask_scale(',dim,')=',   &
    687692                     (nxyz+1)*dxyz/mask_scale(dim)
    688693                CALL message( 'init_masks', 'PA0332', 1, 2, 0, 6, 0 )
    689694             ENDIF
    690              loop_begin  = NINT( mask_loop(mid,dim,1) * mask_scale(dim) &
     695             loop_begin  = NINT( mask_loop(mid,dim,1) * mask_scale(dim)        &
    691696                  * ddxyz - 0.5_wp )
    692              loop_end    = NINT( mask_loop(mid,dim,2) * mask_scale(dim) &
     697             loop_end    = NINT( mask_loop(mid,dim,2) * mask_scale(dim)        &
    693698                  * ddxyz - 0.5_wp )
    694              loop_stride = NINT( mask_loop(mid,dim,3) * mask_scale(dim) &
     699             loop_stride = NINT( mask_loop(mid,dim,3) * mask_scale(dim)        &
    695700                  * ddxyz )
    696701             IF ( loop_begin == -1 )  loop_begin = 0  ! avoid negative values
     
    702707             IF ( MAXVAL( mask_loop(mid,dim,1:2) )  &
    703708                  > zu(nz+1) / mask_scale(dim) )  THEN
    704                 WRITE ( message_string, '(2(A,I3,A,I1,A,F9.3),A,I1,A,F9.3)' ) &
    705                      'mask_loop(',mid,',',dim,',1)=',mask_loop(mid,dim,1), &
     709                WRITE ( message_string, '(2(A,I3,A,I1,A,F9.3),A,I1,A,F9.3)' )  &
     710                     'mask_loop(',mid,',',dim,',1)=',mask_loop(mid,dim,1),     &
    706711                     ' and/or mask_loop(',mid,',',dim,',2)=', &
    707                      mask_loop(mid,dim,2),'&exceed zu(nz+1)/mask_scale(',dim, &
     712                     mask_loop(mid,dim,2),' exceed zu(nz+1)/mask_scale(',dim, &
    708713                     ')=',zu(nz+1)/mask_scale(dim)
    709714                CALL message( 'init_masks', 'PA0333', 1, 2, 0, 6, 0 )
     
    724729             IF ( mask_loop(mid,dim,2) * mask_scale(dim) > dz_stretch_level )  &
    725730                  THEN
    726                 WRITE ( message_string, '(A,I3,A,I1,A,F9.3,A,F8.2,3A)' ) &
    727                      'mask_loop(',mid,',',dim,',2)=', mask_loop(mid,dim,2),&
    728                      ' exceeds dz_stretch_level=',dz_stretch_level, &
    729                      '.&Vertical mask locations will not ', &
    730                      'match the desired heights&within the stretching ', &
     731                WRITE ( message_string, '(A,I3,A,I1,A,F9.3,A,F8.2,3A)' )       &
     732                     'mask_loop(',mid,',',dim,',2)=', mask_loop(mid,dim,2),    &
     733                     ' exceeds dz_stretch_level=',dz_stretch_level,            &
     734                     '. Vertical mask locations will not ',                    &
     735                     'match the desired heights within the stretching ',      &
    731736                     'region.'
    732737                CALL message( 'init_masks', 'PA0334', 0, 1, 0, 6, 0 )
Note: See TracChangeset for help on using the changeset viewer.