Ignore:
Timestamp:
Oct 5, 2007 5:13:14 AM (17 years ago)
Author:
raasch
Message:

New:
---
Allows runs for a coupled atmosphere-ocean LES,
coupling frequency is controlled by new d3par-parameter dt_coupling,
the coupling mode (atmosphere_to_ocean or ocean_to_atmosphere) for the
respective processes is read from environment variable coupling_mode,
which is set by the mpiexec-command,
communication between the two models is done using the intercommunicator
comm_inter,
local files opened by the ocean model get the additional suffic "_O".
Assume saturation at k=nzb_s_inner(j,i) for atmosphere coupled to ocean.

A momentum flux can be set as top boundary condition using the new
inipar parameter top_momentumflux_u|v.

Non-cyclic boundary conditions can be used along all horizontal directions.

Quantities w*p* and w"e can be output as vertical profiles.

Initial profiles are reset to constant profiles in case that initializing_actions /= 'set_constant_profiles'. (init_rankine)

Optionally calculate km and kh from initial TKE e_init.

Changed:


Remaining variables iran changed to iran_part (advec_particles, init_particles).

In case that the presure solver is not called for every Runge-Kutta substep
(call_psolver_at_all_substeps = .F.), it is called after the first substep
instead of the last. In that case, random perturbations are also added to the
velocity field after the first substep.

Initialization of km,kh = 0.00001 for ocean = .T. (for ocean = .F. it remains 0.01).

Allow data_output_pr= q, wq, w"q", w*q* for humidity = .T. (instead of cloud_physics = .T.).

Errors:


Bugs from code parts for non-cyclic boundary conditions are removed: loops for
u and v are starting from index nxlu, nysv, respectively. The radiation boundary
condition is used for every Runge-Kutta substep. Velocity phase speeds for
the radiation boundary conditions are calculated for the first Runge-Kutta
substep only and reused for the further substeps. New arrays c_u, c_v, and c_w
are defined for this purpose. Several index errors are removed from the
radiation boundary condition code parts. Upper bounds for calculating
u_0 and v_0 (in production_e) are nxr+1 and nyn+1 because otherwise these
values are not available in case of non-cyclic boundary conditions.

+dots_num_palm in module user, +module netcdf_control in user_init (both in user_interface)

Bugfix: wrong sign removed from the buoyancy production term in the case use_reference = .T. (production_e)

Bugfix: Error message concerning output of particle concentration (pc) modified (check_parameters).

Bugfix: Rayleigh damping for ocean fixed.

File:
1 edited

Legend:

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

    r108 r110  
    44! Actual revisions:
    55! -----------------
    6 ! modifications to terminate coupled runs
    76!
    87!
     
    109! -----------------
    1110! $Id$
     11!
     12! 108 2007-08-24 15:10:38Z letzel
     13! modifications to terminate coupled runs
     14!
    1215! RCS Log replace by Id keyword, revision history cleaned up
    1316!
     
    6164!-- Output that job will be terminated
    6265    IF ( terminate_run  .AND.  myid == 0 )  THEN
    63        PRINT*, '*** WARNING: run will be terminated because it is running out of job cpu', &
    64                     'limit'
     66       PRINT*, '*** WARNING: run will be terminated because it is running out', &
     67                    ' of job cpu limit'
    6568       PRINT*, '             remaining time:         ', remaining_time, ' s'
    66        PRINT*, '             termination time needed:', termination_time_needed, ' s'
     69       PRINT*, '             termination time needed:', termination_time_needed,&
     70                    ' s'
    6771    ENDIF
    6872
     
    7276!-- informed of another termination reason (terminate_coupled > 0) before,
    7377!-- or vice versa (terminate_coupled_remote > 0).
    74     IF ( terminate_run .AND. TRIM( coupling_mode ) /= 'uncoupled'  &
    75          .AND. terminate_coupled == 0  &
    76          .AND. terminate_coupled_remote == 0 )  THEN
     78    IF ( terminate_run .AND. TRIM( coupling_mode ) /= 'uncoupled'  .AND. &
     79         terminate_coupled == 0  .AND.  terminate_coupled_remote == 0 )  THEN
     80
    7781       terminate_coupled = 3
    78        CALL MPI_SENDRECV( &
    79             terminate_coupled,        1, MPI_INTEGER, myid,  0, &
    80             terminate_coupled_remote, 1, MPI_INTEGER, myid,  0, &
    81             comm_inter, status, ierr )
     82       CALL MPI_SENDRECV( terminate_coupled,        1, MPI_INTEGER, myid,  0, &
     83                          terminate_coupled_remote, 1, MPI_INTEGER, myid,  0, &
     84                          comm_inter, status, ierr )
    8285    ENDIF
    8386
     
    101104
    102105          IF ( myid == 0 )  THEN
    103              PRINT*, '*** INFORMATIVE: run will be terminated due to user settings of'
     106             PRINT*, '*** INFORMATIVE: run will be terminated due to user ', &
     107                                       'settings of'
    104108             PRINT*, '                 restart_time / dt_restart'
    105109             PRINT*, '                 new restart time is: ', time_restart, ' s'
     
    110114!--       informed of another termination reason (terminate_coupled > 0) before,
    111115!--       or vice versa (terminate_coupled_remote > 0).
    112           IF ( coupling_mode /= 'uncoupled' .AND. terminate_coupled == 0  &
    113                .AND. terminate_coupled_remote == 0)  THEN
     116          IF ( coupling_mode /= 'uncoupled' .AND. terminate_coupled == 0  .AND. &
     117               terminate_coupled_remote == 0)  THEN
     118
    114119             IF ( dt_restart /= 9999999.9 )  THEN
    115120                terminate_coupled = 4
     
    117122                terminate_coupled = 5
    118123             ENDIF
    119              CALL MPI_SENDRECV( &
    120                   terminate_coupled,        1, MPI_INTEGER, myid,  0, &
    121                   terminate_coupled_remote, 1, MPI_INTEGER, myid,  0, &
    122                   comm_inter, status, ierr )
     124             CALL MPI_SENDRECV(                                                 &
     125                            terminate_coupled,        1, MPI_INTEGER, myid,  0, &
     126                            terminate_coupled_remote, 1, MPI_INTEGER, myid,  0, &
     127                            comm_inter, status, ierr )
    123128          ENDIF
    124129       ELSE
Note: See TracChangeset for help on using the changeset viewer.