Ignore:
Timestamp:
Oct 1, 2018 2:37:10 AM (6 years ago)
Author:
raasch
Message:

modularization of the ocean code

File:
1 edited

Legend:

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

    r3274 r3294  
    2525! -----------------
    2626! $Id$
     27! changes concerning modularization of ocean option
     28!
     29! 3274 2018-09-24 15:42:55Z knoop
    2730! Modularization of all bulk cloud physics code components
    2831!
     
    208211
    209212    USE arrays_3d,                                                             &
    210         ONLY:  e, nc, nr, p, pt, prr, q, qc, ql, ql_c, ql_v, qr, rho_ocean, s, &
    211                sa, tend, u, v, vpt, w, d_exner
     213        ONLY:  d_exner, e, nc, nr, p, pt, prr, q, qc, ql, ql_c, ql_v, qr, s,  &
     214               tend, u, v, vpt, w
    212215
    213216    USE averaging
     
    225228        ONLY:  air_chemistry, do3d, do3d_no, do3d_time_count,                  &
    226229               io_blocks, io_group, land_surface, message_string,              &
    227                ntdim_3d, nz_do3d,  plant_canopy,                               &
     230               ntdim_3d, nz_do3d,  ocean_mode, plant_canopy,                   &
    228231               psolver, simulated_time, time_since_reference_point,            &
    229232               urban_surface, varnamelength
     
    252255               netcdf_data_format, netcdf_handle_error
    253256       
     257    USE ocean_mod,                                                             &
     258        ONLY:  ocean_data_output_3d
     259
    254260    USE particle_attributes,                                                   &
    255261        ONLY:  grid_particles, number_of_particles, particles,                 &
     
    614620             ENDIF
    615621
    616           CASE ( 'rho_ocean' )
    617              IF ( av == 0 )  THEN
    618                 to_be_resorted => rho_ocean
    619              ELSE
    620                 IF ( .NOT. ALLOCATED( rho_ocean_av ) ) THEN
    621                    ALLOCATE( u_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
    622                    u_av = REAL( fill_value, KIND = wp )
    623                 ENDIF
    624                 to_be_resorted => rho_ocean_av
    625              ENDIF
    626 
    627622          CASE ( 's' )
    628623             IF ( av == 0 )  THEN
     
    634629                ENDIF
    635630                to_be_resorted => s_av
    636              ENDIF
    637 
    638           CASE ( 'sa' )
    639              IF ( av == 0 )  THEN
    640                 to_be_resorted => sa
    641              ELSE
    642                 IF ( .NOT. ALLOCATED( sa_av ) ) THEN
    643                    ALLOCATE( sa_av(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
    644                    sa_av = REAL( fill_value, KIND = wp )
    645                 ENDIF
    646                 to_be_resorted => sa_av
    647631             ENDIF
    648632
     
    701685          CASE DEFAULT
    702686
    703              IF ( .NOT. found )  THEN
    704                 CALL tcm_data_output_3d( av, do3d(av,if), found, local_pf,     &
    705                                          nzb_do, nzt_do )
    706                 resorted = .TRUE.
    707              ENDIF
    708 
    709 !
    710 !--          Microphysic module quantities
     687!
     688!--          Quantities of other modules
    711689             IF ( .NOT. found  .AND.  bulk_cloud_model )  THEN
    712690                CALL bcm_data_output_3d( av, do3d(av,if), found, local_pf,     &
     
    715693             ENDIF
    716694
    717 !
    718 !--          Land surface quantity
     695             IF ( .NOT. found  .AND.  air_chemistry )  THEN
     696                CALL chem_data_output_3d( av, do3d(av,if), found,              &
     697                                          local_pf, fill_value, nzb_do, nzt_do )
     698                resorted = .TRUE.
     699             ENDIF
     700
     701             IF ( .NOT. found  .AND.  gust_module_enabled )  THEN
     702                CALL gust_data_output_3d( av, do3d(av,if), found, local_pf,    &
     703                                          nzb_do, nzt_do )
     704                resorted = .TRUE.
     705             ENDIF
     706
    719707             IF ( .NOT. found  .AND.  land_surface )  THEN
    720708!
     
    742730             ENDIF
    743731
    744 !
    745 !--          Radiation quantity
     732             IF ( .NOT. found  .AND.  ocean_mode )  THEN
     733                CALL ocean_data_output_3d( av, do3d(av,if), found, local_pf,   &
     734                                           nzb_do, nzt_do )
     735                resorted = .TRUE.
     736             ENDIF
     737
     738             IF ( .NOT. found  .AND.  plant_canopy )  THEN
     739                CALL pcm_data_output_3d( av, do3d(av,if), found, local_pf,     &
     740                                         fill_value, nzb_do, nzt_do )
     741                resorted = .TRUE.
     742             ENDIF
     743
    746744             IF ( .NOT. found  .AND.  radiation )  THEN
    747745                CALL radiation_data_output_3d( av, do3d(av,if), found,         &
     
    750748             ENDIF
    751749
    752 !
    753 !--          Gust module quantities
    754              IF ( .NOT. found  .AND.  gust_module_enabled )  THEN
    755                 CALL gust_data_output_3d( av, do3d(av,if), found, local_pf,    &
    756                                           nzb_do, nzt_do )
    757                 resorted = .TRUE.
    758              ENDIF
    759 
    760 !
    761 !--          Chemistry model output
    762              IF ( .NOT. found  .AND.  air_chemistry )  THEN
    763                 CALL chem_data_output_3d( av, do3d(av,if), found,              &
    764                                           local_pf, fill_value, nzb_do, nzt_do )
    765                 resorted = .TRUE.
    766              ENDIF
    767 
    768 !
    769 !--          Plant canopy model output
    770              IF ( .NOT. found  .AND.  plant_canopy )  THEN
    771                 CALL pcm_data_output_3d( av, do3d(av,if), found, local_pf,     &
    772                                          fill_value, nzb_do, nzt_do )
    773                 resorted = .TRUE.
    774              ENDIF
    775 
    776 !
    777 !--          User defined quantity
     750             IF ( .NOT. found )  THEN
     751                CALL tcm_data_output_3d( av, do3d(av,if), found, local_pf,     &
     752                                         nzb_do, nzt_do )
     753                resorted = .TRUE.
     754             ENDIF
     755
     756!
     757!--          User defined quantities
    778758             IF ( .NOT. found )  THEN
    779759                CALL user_data_output_3d( av, do3d(av,if), found, local_pf,    &
Note: See TracChangeset for help on using the changeset viewer.