Ignore:
Timestamp:
Mar 6, 2007 12:28:36 PM (15 years ago)
Author:
raasch
Message:

preliminary version, several changes to be explained later

File:
1 edited

Legend:

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

    r4 r48  
    77! Current revisions:
    88! ------------------
    9 !
     9! Output topography height information (zu_s_inner, zw_s_inner) to 2d-xy and 3d
     10! datasets
    1011!
    1112! Former revisions:
     
    290291
    291292!
     293!--       In case of non-flat topography define 2d-arrays containing the height
     294!--       informations
     295          IF ( TRIM( topography ) /= 'flat' )  THEN
     296!
     297!--          Define zusi = zu(nzb_s_inner)
     298             nc_stat = NF90_DEF_VAR( id_set_3d(av), 'zusi', NF90_DOUBLE,     &
     299                                     (/ id_dim_x_3d(av), id_dim_y_3d(av) /), &
     300                                     id_var_zusi_3d(av) )
     301             IF ( nc_stat /= NF90_NOERR )  CALL handle_netcdf_error( 413 )
     302             
     303             nc_stat = NF90_PUT_ATT( id_set_3d(av), id_var_zusi_3d(av), &
     304                                     'units', 'meters' )
     305             IF ( nc_stat /= NF90_NOERR )  CALL handle_netcdf_error( 414 )
     306             
     307             nc_stat = NF90_PUT_ATT( id_set_3d(av), id_var_zusi_3d(av), &
     308                                     'long_name', 'zu(nzb_s_inner)' )
     309             IF ( nc_stat /= NF90_NOERR )  CALL handle_netcdf_error( 415 )
     310
     311!             
     312!--          Define zwwi = zw(nzb_w_inner)
     313             nc_stat = NF90_DEF_VAR( id_set_3d(av), 'zwwi', NF90_DOUBLE,     &
     314                                     (/ id_dim_x_3d(av), id_dim_y_3d(av) /), &
     315                                     id_var_zwwi_3d(av) )
     316             IF ( nc_stat /= NF90_NOERR )  CALL handle_netcdf_error( 416 )
     317             
     318             nc_stat = NF90_PUT_ATT( id_set_3d(av), id_var_zwwi_3d(av), &
     319                                     'units', 'meters' )
     320             IF ( nc_stat /= NF90_NOERR )  CALL handle_netcdf_error( 417 )
     321             
     322             nc_stat = NF90_PUT_ATT( id_set_3d(av), id_var_zwwi_3d(av), &
     323                                     'long_name', 'zw(nzb_w_inner)' )
     324             IF ( nc_stat /= NF90_NOERR )  CALL handle_netcdf_error( 418 )
     325
     326          ENDIF             
     327
     328
     329!
    292330!--       Define the variables
    293331          var_list = ';'
     
    393431!--       No arrays to output
    394432          IF ( i == 1 )  RETURN
    395 !             nc_stat = NF90_CLOSE( id_set_3d(av) )
    396 !             IF ( nc_stat /= NF90_NOERR )  CALL handle_netcdf_error( 9999 )
    397 !             RETURN
    398 !          ENDIF
    399433
    400434!
     
    468502          IF ( nc_stat /= NF90_NOERR )  CALL handle_netcdf_error( 86 )
    469503
     504
     505!
     506!--       In case of non-flat topography write height information
     507          IF ( TRIM( topography ) /= 'flat' )  THEN
     508
     509             nc_stat = NF90_PUT_VAR( id_set_3d(av), id_var_zusi_3d(av), &
     510                                     zu_s_inner(0:nx+1,0:ny+1), &
     511                                     start = (/ 1, 1 /), &
     512                                     count = (/ nx+2, ny+2 /) )
     513             IF ( nc_stat /= NF90_NOERR )  CALL handle_netcdf_error( 419 )
     514
     515             nc_stat = NF90_PUT_VAR( id_set_3d(av), id_var_zwwi_3d(av), &
     516                                     zw_w_inner(0:nx+1,0:ny+1), &
     517                                     start = (/ 1, 1 /), &
     518                                     count = (/ nx+2, ny+2 /) )
     519             IF ( nc_stat /= NF90_NOERR )  CALL handle_netcdf_error( 420 )
     520
     521          ENDIF
    470522
    471523       CASE ( '3d_ext' )
     
    742794
    743795!
     796!--       In case of non-flat topography define 2d-arrays containing the height
     797!--       informations
     798          IF ( TRIM( topography ) /= 'flat' )  THEN
     799!
     800!--          Define zusi = zu(nzb_s_inner)
     801             nc_stat = NF90_DEF_VAR( id_set_xy(av), 'zusi', NF90_DOUBLE, &
     802                                     (/ id_dim_x_xy(av), id_dim_y_xy(av) /), &
     803                                     id_var_zusi_xy(av) )
     804             IF ( nc_stat /= NF90_NOERR )  CALL handle_netcdf_error( 421 )
     805             
     806             nc_stat = NF90_PUT_ATT( id_set_xy(av), id_var_zusi_xy(av), &
     807                                     'units', 'meters' )
     808             IF ( nc_stat /= NF90_NOERR )  CALL handle_netcdf_error( 422 )
     809             
     810             nc_stat = NF90_PUT_ATT( id_set_xy(av), id_var_zusi_xy(av), &
     811                                     'long_name', 'zu(nzb_s_inner)' )
     812             IF ( nc_stat /= NF90_NOERR )  CALL handle_netcdf_error( 423 )
     813
     814!             
     815!--          Define zwwi = zw(nzb_w_inner)
     816             nc_stat = NF90_DEF_VAR( id_set_xy(av), 'zwwi', NF90_DOUBLE, &
     817                                     (/ id_dim_x_xy(av), id_dim_y_xy(av) /), &
     818                                     id_var_zwwi_xy(av) )
     819             IF ( nc_stat /= NF90_NOERR )  CALL handle_netcdf_error( 424 )
     820             
     821             nc_stat = NF90_PUT_ATT( id_set_xy(av), id_var_zwwi_xy(av), &
     822                                     'units', 'meters' )
     823             IF ( nc_stat /= NF90_NOERR )  CALL handle_netcdf_error( 425 )
     824             
     825             nc_stat = NF90_PUT_ATT( id_set_xy(av), id_var_zwwi_xy(av), &
     826                                     'long_name', 'zw(nzb_w_inner)' )
     827             IF ( nc_stat /= NF90_NOERR )  CALL handle_netcdf_error( 426 )
     828
     829          ENDIF
     830
     831
     832!
    744833!--       Define the variables
    745834          var_list = ';'
     
    870959!--       No arrays to output. Close the netcdf file and return.
    871960          IF ( i == 1 )  RETURN
    872 !             nc_stat = NF90_CLOSE( id_set_xy(av) )
    873 !             IF ( nc_stat /= NF90_NOERR )  CALL handle_netcdf_error( 9999 )
    874 !             RETURN
    875 !          ENDIF
    876961
    877962!
     
    9811066
    9821067          DEALLOCATE( netcdf_data )
     1068
     1069!
     1070!--       In case of non-flat topography write height information
     1071          IF ( TRIM( topography ) /= 'flat' )  THEN
     1072
     1073             nc_stat = NF90_PUT_VAR( id_set_xy(av), id_var_zusi_xy(av), &
     1074                                     zu_s_inner(0:nx+1,0:ny+1), &
     1075                                     start = (/ 1, 1 /), &
     1076                                     count = (/ nx+2, ny+2 /) )
     1077             IF ( nc_stat /= NF90_NOERR )  CALL handle_netcdf_error( 427 )
     1078
     1079             nc_stat = NF90_PUT_VAR( id_set_xy(av), id_var_zwwi_xy(av), &
     1080                                     zw_w_inner(0:nx+1,0:ny+1), &
     1081                                     start = (/ 1, 1 /), &
     1082                                     count = (/ nx+2, ny+2 /) )
     1083             IF ( nc_stat /= NF90_NOERR )  CALL handle_netcdf_error( 428 )
     1084
     1085          ENDIF
    9831086
    9841087
     
    13981501!--       No arrays to output. Close the netcdf file and return.
    13991502          IF ( i == 1 )  RETURN
    1400 !             nc_stat = NF90_CLOSE( id_set_xz(av) )
    1401 !             IF ( nc_stat /= NF90_NOERR )  CALL handle_netcdf_error( 9999 )
    1402 !             RETURN
    1403 !          ENDIF
    14041503
    14051504!
     
    19132012!--       No arrays to output. Close the netcdf file and return.
    19142013          IF ( i == 1 )  RETURN
    1915 !             nc_stat = NF90_CLOSE( id_set_yz(av) )
    1916 !             IF ( nc_stat /= NF90_NOERR )  CALL handle_netcdf_error( 9999 )
    1917 !             RETURN
    1918 !          ENDIF
    19192014
    19202015!
Note: See TracChangeset for help on using the changeset viewer.