Ignore:
Timestamp:
Apr 8, 2019 3:44:30 PM (4 years ago)
Author:
knoop
Message:

Moved ocean_mode specific code from advec_ws to ocean_mod + implemented ocean_actions

File:
1 edited

Legend:

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

    r3767 r3873  
    2525! -----------------
    2626! $Id$
     27! implemented ocean_actions
     28!
     29! 3767 2019-02-27 08:18:02Z raasch
    2730! unused variable for file index and tmp_2d removed from rrd-subroutine parameter
    2831! list
     
    7780    USE arrays_3d,                                                             &
    7881        ONLY:  prho, prho_1, rho_ocean, rho_1, sa, sa_init, sa_1, sa_2, sa_3,  &
    79                sa_p, tsa_m
     82               sa_p, tsa_m, flux_l_sa, flux_s_sa, diss_l_sa, diss_s_sa
    8083
    8184    USE control_parameters,                                                    &
    8285        ONLY:  atmos_ocean_sign, bottom_salinityflux,                          &
    8386               constant_top_salinityflux, ocean_mode, top_salinityflux,        &
    84                wall_salinityflux
     87               wall_salinityflux, loop_optimization, ws_scheme_sca
    8588
    8689    USE kinds
     90
     91    USE pegrid,                                                                &
     92        ONLY:  threads_per_task
     93
     94    USE statistics,                                                            &
     95        ONLY:  sums_wssas_ws_l
    8796
    8897
     
    187196    END INTERFACE ocean_parin
    188197
     198    INTERFACE ocean_actions
     199       MODULE PROCEDURE ocean_actions
     200       MODULE PROCEDURE ocean_actions_ij
     201    END INTERFACE ocean_actions
     202
    189203    INTERFACE ocean_prognostic_equations
    190204       MODULE PROCEDURE ocean_prognostic_equations
     
    229243!
    230244!-- Add INTERFACES that must be available to other modules (alphabetical order)
    231     PUBLIC eqn_state_seawater, ocean_check_data_output,                        &
     245    PUBLIC eqn_state_seawater, ocean_actions, ocean_check_data_output,         &
    232246           ocean_check_data_output_pr, ocean_check_parameters,                 &
    233247           ocean_data_output_2d, ocean_data_output_3d,                         &
     
    11771191
    11781192    USE indices,                                                               &
    1179         ONLY:  nxlg, nxrg, nyng, nysg, nzb, nzt
     1193        ONLY:  nxlg, nxrg, nyn, nyng, nys, nysg, nzb, nzt
    11801194
    11811195    IMPLICIT NONE
     
    11881202    IF (  salinity )  THEN
    11891203       ALLOCATE( sa_2(nzb:nzt+1,nysg:nyng,nxlg:nxrg) )
     1204    ENDIF
     1205
     1206    IF ( ws_scheme_sca )  THEN
     1207       ALLOCATE( sums_wssas_ws_l(nzb:nzt+1,0:threads_per_task-1) )
     1208       sums_wssas_ws_l = 0.0_wp
     1209    ENDIF
     1210
     1211    IF ( loop_optimization /= 'vector' )  THEN
     1212
     1213       IF ( ws_scheme_sca )  THEN
     1214          ALLOCATE( flux_s_sa(nzb+1:nzt,0:threads_per_task-1) )
     1215          ALLOCATE( diss_s_sa(nzb+1:nzt,0:threads_per_task-1) )
     1216          ALLOCATE( flux_l_sa(nzb+1:nzt,nys:nyn,0:threads_per_task-1) )
     1217          ALLOCATE( diss_l_sa(nzb+1:nzt,nys:nyn,0:threads_per_task-1) )
     1218       ENDIF
     1219
    11901220    ENDIF
    11911221
     
    14691499
    14701500 END SUBROUTINE ocean_init
     1501
     1502
     1503!------------------------------------------------------------------------------!
     1504! Description:
     1505! ------------
     1506!> Call for all grid points
     1507!------------------------------------------------------------------------------!
     1508 SUBROUTINE ocean_actions( location )
     1509
     1510
     1511    CHARACTER (LEN=*), INTENT(IN) ::  location !< call location string
     1512
     1513    SELECT CASE ( location )
     1514
     1515       CASE ( 'before_timestep' )
     1516
     1517          IF ( ws_scheme_sca )  THEN
     1518             sums_wssas_ws_l = 0.0_wp
     1519          ENDIF
     1520
     1521       CASE DEFAULT
     1522          CONTINUE
     1523
     1524    END SELECT
     1525
     1526 END SUBROUTINE ocean_actions
     1527
     1528
     1529!------------------------------------------------------------------------------!
     1530! Description:
     1531! ------------
     1532!> Call for grid points i,j
     1533!------------------------------------------------------------------------------!
     1534 SUBROUTINE ocean_actions_ij( i, j, location )
     1535
     1536
     1537    INTEGER(iwp),      INTENT(IN) ::  i         !< grid index in x-direction
     1538    INTEGER(iwp),      INTENT(IN) ::  j         !< grid index in y-direction
     1539    CHARACTER (LEN=*), INTENT(IN) ::  location  !< call location string
     1540    INTEGER(iwp)  ::  dummy  !< call location string
     1541
     1542    IF ( ocean_mode )   dummy = i + j
     1543
     1544    SELECT CASE ( location )
     1545
     1546       CASE ( 'before_timestep' )
     1547
     1548          IF ( ws_scheme_sca )  THEN
     1549             sums_wssas_ws_l = 0.0_wp
     1550          ENDIF
     1551
     1552       CASE DEFAULT
     1553          CONTINUE
     1554
     1555    END SELECT
     1556
     1557 END SUBROUTINE ocean_actions_ij
    14711558
    14721559
Note: See TracChangeset for help on using the changeset viewer.