Changeset 291
- Timestamp:
- Apr 16, 2009 12:07:26 PM (16 years ago)
- Location:
- palm/trunk
- Files:
-
- 23 edited
Legend:
- Unmodified
- Added
- Removed
-
palm/trunk/DOC/app/chapter_4.2.html
r266 r291 4802 4802 <td style="vertical-align: top;">Height of the convective 4803 4803 boundary layer (horizontal average) 4804 determined by the temperature profile (in m).</td>4804 determined by the temperature profile, following the criterion of Sullivan et al. (1998) (in m).</td> 4805 4805 4806 4806 -
palm/trunk/DOC/tec/message_identifiers
r288 r291 19 19 PA0007 coupling mode "...": dt_restart = ... is not equal 20 20 to dt_restart_remote = ... 21 PA0008 coupling mode "...": end_time = ... is not equal to 22 end_time_remote = ... 21 PA0008 coupling mode "...": simulation_time_since_reference = 22 ... is not equal to 23 simulation_time_since_reference_remote = ... 23 24 PA0009 coupling mode "...": dx = ... is not equal to 24 25 dx_remote = ... … … 577 578 PA0315 color_interval(2) <= color_interval(1) 578 579 PA0316 dvrpsize_interval(2) <= dvrpsize_interval(1) 580 PA0317 ocean = .F. does not allow coupling_char = ... 581 set by mrun-option "-y" 579 582 580 583 -
palm/trunk/SCRIPTS/mrun
r265 r291 179 179 # dvr application more user friendly 180 180 # 20/03/09 - Marcus - update of n1ge command for lctit 181 # 16/04/09 - Siggi - new option -y for precursor (uncoupled) ocean runs 182 # to be followed by a coupled atmosphere-ocean run 181 183 182 184 … … 417 419 # SHELLSCRIPT-OPTIONEN EINLESEN UND KOMMANDO NEU ZUSAMMENSETZEN, FALLS ES 418 420 # FUER FOLGEJOBS BENOETIGT WIRD 419 while getopts :a:AbBc:Cd:D:Fg:G:h:H:i:IkK:m:M:n:o:Op:P:q:r:R:s:St:T:u:U:vxX: Y: option421 while getopts :a:AbBc:Cd:D:Fg:G:h:H:i:IkK:m:M:n:o:Op:P:q:r:R:s:St:T:u:U:vxX:yY: option 420 422 do 421 423 case $option in … … 456 458 (x) do_trace=true;set -x; mc="$mc -x";; 457 459 (X) numprocs=$OPTARG; mc="$mc -X$OPTARG";; 460 (y) ocean_file_appendix=true; mc="$mc -y";; 458 461 (Y) run_coupled_model=true; coupled_dist=$OPTARG; mc="$mc -Y'$OPTARG'";; 459 462 (\?) printf "\n +++ unknown option $OPTARG \n" … … 473 476 then 474 477 (printf "\n *** mrun can be called as follows:\n" 475 printf "\n $mrun_script_name -b -c.. -d.. -D.. -f.. -F -h.. -i.. -I -K.. -m.. -o.. -p.. -r.. -R -s.. -t.. -T.. -v -x -X.. - Y.. <modus>\n"478 printf "\n $mrun_script_name -b -c.. -d.. -D.. -f.. -F -h.. -i.. -I -K.. -m.. -o.. -p.. -r.. -R -s.. -t.. -T.. -v -x -X.. -y -Y.. <modus>\n" 476 479 printf "\n Description of available options:\n" 477 480 printf "\n Option Description Default-Value" … … 511 514 printf "\n -x tracing of mrun for debug purposes ---" 512 515 printf "\n -X # of processors (on parallel machines) 1" 516 printf "\n -y add appendix \"_O\" to all local output" 517 printf "\n files (ocean precursor runs followed by" 518 printf "\n coupled atmosphere-ocean runs) ---" 513 519 printf "\n -Y run coupled model, \"#1 #2\" with" 514 520 printf "\n #1 atmosphere and #2 ocean processors \"#/2 #/2\" depending on -X" … … 2407 2413 then 2408 2414 printf " compiler is called via ssh on \"bicegate\" using module \"$mpilib\" \n" 2409 ssh 130.73.232.10 2-l $usern ". /usr/share/modules/init/bash; module load $mpilib; cd $TEMPDIR; make -f Makefile PROG=a.out F90=$compiler_name COPT=\"$cpp_options\" F90FLAGS=\"$fopts\" LDFLAGS=\"$lopts\" "2415 ssh 130.73.232.103 -l $usern ". /usr/share/modules/init/bash; module load $mpilib; cd $TEMPDIR; make -f Makefile PROG=a.out F90=$compiler_name COPT=\"$cpp_options\" F90FLAGS=\"$fopts\" LDFLAGS=\"$lopts\" " 2410 2416 [[ ! -f a.out ]] && compile_error=true 2411 2417 continue # ANDERENFALLS IST STATUS=1, FALLS A.OUT VORHANDEN … … 3097 3103 if [[ $run_coupled_model = false ]] 3098 3104 then 3099 echo "no_coupling" > runfile_atmos 3105 if [[ "$ocean_file_appendix" = true ]] 3106 then 3107 echo "precursor_ocean" > runfile_atmos 3108 else 3109 echo "precursor_atmos" > runfile_atmos 3110 fi 3100 3111 printf "\n\n" 3101 3112 if [[ $host = lcsgih || $host = lcsgib ]] … … 4098 4109 [[ $delete_temporary_catalog = false ]] && mrun_com=${mrun_com}" -B" 4099 4110 [[ $node_usage != default && "$(echo $node_usage | cut -c1-3)" != "sla" && $node_usage != novice ]] && mrun_com=${mrun_com}" -n $node_usage" 4111 [[ "$ocean_file_appendix" = true ]] && mrun_com=${mrun_com}" -y" 4100 4112 [[ $run_coupled_model = true ]] && mrun_com=${mrun_com}" -Y \"$coupled_dist\"" 4101 4113 if [[ $do_remote = true ]] -
palm/trunk/SCRIPTS/subjob
r259 r291 163 163 (bora) local_addres=130.75.105.103; local_host=lcmuk;; 164 164 (bicegate1) local_addres=130.73.232.102; local_host=lcsgib;; 165 (bicegate2) local_addres=130.73.232.103; local_host=lcsgib;; 165 166 (breg*-en0|berni*-en0) local_addres=130.73.230.10; local_host=ibmb;; 166 167 (breva) local_addres=130.75.105.98; local_host=lcmuk;; … … 319 320 (ibmy) queue=parallel; remote_addres=165.132.26.58; submcom=/usr/lpp/LoadL/full/bin/llsubmit;; 320 321 (lcfimm) remote_addres=172.20.4.2; submcom=/opt/torque/bin/qsub;; 321 (lcsgib) queue=smallq; remote_addres=130.73.232.10 2; submcom=/opt/moab/bin/msub;;322 (lcsgib) queue=smallq; remote_addres=130.73.232.103; submcom=/opt/moab/bin/msub;; 322 323 (lcsgih) queue=smallq; remote_addres=130.75.4.103; submcom=/opt/moab/bin/msub;; 323 324 (lctit) queue=lctit; remote_addres=172.17.75.161; submcom=/n1ge/TITECH_GRID/tools/bin/n1ge;; -
palm/trunk/SOURCE/CURRENT_MODIFICATIONS
r288 r291 8 8 and are controlled with existing parameters slicer_range_limits. 9 9 (set_slicer_attributes_dvrp) 10 11 Ocean atmosphere coupling allows to use independent precursor runs in order 12 to account for different spin-up times. The time when coupling has to be 13 started is given by new inipar parameter coupling_start_time. The precursor 14 ocean run has to be started using new mrun option "-y" in order to add 15 appendix "_O" to all output files. 16 (check_for_restart, check_parameters, data_output_2d, data_output_3d, 17 data_output_profiles, data_output_ptseries, data_output_spectra, 18 data_output_tseries, header, init_coupling, modules, mrun, 19 parin, read_var_list, surface_coupler, time_integration, write_var_list) 10 20 11 21 Polygon reduction for topography and ground plate isosurface. Reduction level … … 22 32 write_var_list) 23 33 24 check_ parameters, data_output_dvrp, init_dvrp, init_grid, init_3d_model, header, modules, package_parin, parin, prognostic_equations, read_var_list, user_check_parameters, user_data_output_dvrp, user_header, user_init_grid, write_var_list34 check_for_restart, check_parameters, data_output_2d, data_output_3d, data_output_dvrp, data_output_profiles, data_output_ptseries, data_output_spectra, data_output_tseries, init_coupling, init_dvrp, init_grid, init_3d_model, header, modules, mrun, package_parin, parin, prognostic_equations, read_var_list, surface_coupler, time_integration, user_check_parameters, user_data_output_dvrp, user_header, user_init_grid, write_var_list 25 35 26 36 New: set_particle_attributes, set_slicer_attributes_dvrp … … 28 38 Changed: 29 39 ------- 40 Temperature gradient criterion for estimating the boundary layer height 41 replaced by the gradient criterion of Sullivan et al. (1998). (flow_statistics) 42 30 43 NetCDF unit attribute in timeseries output in case of statistic regions added 31 44 (netcdf.90) -
palm/trunk/SOURCE/check_for_restart.f90
r274 r291 4 4 ! Current revisions: 5 5 ! ----------------- 6 ! Coupling with independent precursor runs. 6 7 ! Output of messages replaced by message handling routine 7 8 ! … … 96 97 ! 97 98 !-- Set the stop flag also, if restart is forced by user 98 IF ( time_restart /= 9999999.9 .AND. time_restart < simulated_time ) & 99 THEN 99 IF ( time_restart /= 9999999.9 .AND. & 100 time_restart < time_since_reference_point ) THEN 101 100 102 ! 101 103 !-- Restart is not neccessary, if the end time of the run (given by -
palm/trunk/SOURCE/check_parameters.f90
r264 r291 4 4 ! Actual revisions: 5 5 ! ----------------- 6 ! Coupling with independent precursor runs. 6 7 ! Check particle_color, particle_dvrpsize, color_interval, dvrpsize_interval 7 8 ! Bugfix: pressure included for profile output … … 115 116 position, prec 116 117 LOGICAL :: found, ldum 117 REAL :: gradient, maxn, maxp, remote = 0.0 118 REAL :: gradient, maxn, maxp, remote = 0.0, & 119 simulation_time_since_reference 118 120 119 121 ! … … 188 190 ENDIF 189 191 190 CALL MPI_SEND( end_time, 1, MPI_REAL, target_id, 14, comm_inter, ierr ) 192 simulation_time_since_reference = end_time - coupling_start_time 193 CALL MPI_SEND( simulation_time_since_reference, 1, MPI_REAL, target_id, & 194 14, comm_inter, ierr ) 191 195 CALL MPI_RECV( remote, 1, MPI_REAL, target_id, 14, comm_inter, & 192 196 status, ierr ) 193 IF ( end_time /= remote ) THEN197 IF ( simulation_time_since_reference /= remote ) THEN 194 198 WRITE( message_string, * ) 'coupling mode "', TRIM( coupling_mode ), & 195 '": end_time = ', end_time, '& is not equal to ', & 196 'end_time_remote = ', remote 199 '": simulation_time_since_reference = ', & 200 simulation_time_since_reference, '& is not equal to ', & 201 'simulation_time_since_reference_remote = ', remote 197 202 CALL message( 'check_parameters', 'PA0008', 1, 2, 0, 6, 0 ) 198 203 ENDIF … … 383 388 384 389 ! 390 !-- Check whether an (uncoupled) atmospheric run has been declared as an 391 !-- ocean run (this setting is done via mrun-option -y) 392 IF ( TRIM( coupling_mode ) == 'uncoupled' .AND. & 393 TRIM( coupling_char ) == '_O' ) THEN 394 message_string = 'ocean = .F. does not allow coupling_char = "' // & 395 TRIM( coupling_char ) // '" set by mrun-option "-y"' 396 CALL message( 'check_parameters', 'PA0317', 1, 2, 0, 6, 0 ) 397 ENDIF 398 399 ! 385 400 !-- Check whether there are any illegal values 386 401 !-- Pressure solver: … … 1027 1042 1028 1043 ! 1044 !-- Store reference time for coupled runs and change the coupling flag, 1045 !-- if ... 1046 IF ( simulated_time == 0.0 ) THEN 1047 IF ( coupling_start_time == 0.0 ) THEN 1048 time_since_reference_point = 0.0 1049 ELSEIF ( time_since_reference_point < 0.0 ) THEN 1050 run_coupled = .FALSE. 1051 ENDIF 1052 ENDIF 1053 1054 ! 1029 1055 !-- Set wind speed in the Galilei-transformed system 1030 1056 IF ( galilei_transformation ) THEN … … 2813 2839 !-- internal parameter for steering restart events) 2814 2840 IF ( restart_time /= 9999999.9 ) THEN 2815 IF ( restart_time > simulated_time ) time_restart = restart_time 2841 IF ( restart_time > time_since_reference_point ) THEN 2842 time_restart = restart_time 2843 ENDIF 2816 2844 ELSE 2817 2845 ! -
palm/trunk/SOURCE/data_output_2d.f90
r274 r291 4 4 ! Current revisions: 5 5 ! ----------------- 6 ! simulated_time in NetCDF output replaced by time_since_reference_point. 6 7 ! Output of NetCDF messages with aid of message handling routine. 7 8 ! Output of messages replaced by message handling routine. … … 567 568 nc_stat = NF90_PUT_VAR( id_set_xy(av), & 568 569 id_var_time_xy(av), & 569 (/ simulated_time /),&570 (/ time_since_reference_point /), & 570 571 start = (/ do2d_xy_time_count(av) /), & 571 572 count = (/ 1 /) ) … … 753 754 nc_stat = NF90_PUT_VAR( id_set_xz(av), & 754 755 id_var_time_xz(av), & 755 (/ simulated_time /),&756 (/ time_since_reference_point /), & 756 757 start = (/ do2d_xz_time_count(av) /), & 757 758 count = (/ 1 /) ) … … 960 961 nc_stat = NF90_PUT_VAR( id_set_yz(av), & 961 962 id_var_time_yz(av), & 962 (/ simulated_time /),&963 (/ time_since_reference_point /), & 963 964 start = (/ do2d_yz_time_count(av) /), & 964 965 count = (/ 1 /) ) -
palm/trunk/SOURCE/data_output_3d.f90
r274 r291 4 4 ! Current revisions: 5 5 ! ----------------- 6 ! simulated_time in NetCDF output replaced by time_since_reference_point. 6 7 ! Output of NetCDF messages with aid of message handling routine. 7 8 ! Output of messages replaced by message handling routine. … … 93 94 IF ( myid == 0 .AND. netcdf_output ) THEN 94 95 nc_stat = NF90_PUT_VAR( id_set_3d(av), id_var_time_3d(av), & 95 (/ simulated_time /),&96 (/ time_since_reference_point /), & 96 97 start = (/ do3d_time_count(av) /), & 97 98 count = (/ 1 /) ) -
palm/trunk/SOURCE/data_output_profiles.f90
r274 r291 4 4 ! Current revisions: 5 5 ! ----------------- 6 ! simulated_time in NetCDF output replaced by time_since_reference_point. 6 7 ! Output of NetCDF messages with aid of message handling routine. 7 8 ! Output of messages replaced by message handling routine. … … 356 357 ! 357 358 !-- Store time to time axis 358 nc_stat = NF90_PUT_VAR( id_set_pr, id_var_time_pr, &359 (/ simulated_time /),&360 start = (/ dopr_time_count /), &359 nc_stat = NF90_PUT_VAR( id_set_pr, id_var_time_pr, & 360 (/ time_since_reference_point /), & 361 start = (/ dopr_time_count /), & 361 362 count = (/ 1 /) ) 362 363 CALL handle_netcdf_error( 'data_output_profiles', 338 ) -
palm/trunk/SOURCE/data_output_ptseries.f90
r263 r291 4 4 ! Current revisions: 5 5 ! ----------------- 6 ! simulated_time in NetCDF output replaced by time_since_reference_point. 6 7 ! Output of NetCDF messages with aid of message handling routine. 7 8 ! … … 55 56 ! 56 57 !-- Update the particle time series time axis 57 nc_stat = NF90_PUT_VAR( id_set_pts, id_var_time_pts, &58 (/ simulated_time /),&58 nc_stat = NF90_PUT_VAR( id_set_pts, id_var_time_pts, & 59 (/ time_since_reference_point /), & 59 60 start = (/ dopts_time_count /), count = (/ 1 /) ) 60 61 CALL handle_netcdf_error( 'data_output_ptseries', 391 ) -
palm/trunk/SOURCE/data_output_spectra.f90
r263 r291 4 4 ! Current revisions: 5 5 ! ----------------- 6 ! simulated_time in NetCDF output replaced by time_since_reference_point. 6 7 ! Output of NetCDF messages with aid of message handling routine. 7 8 ! Output of messages replaced by message handling routine. … … 65 66 ! 66 67 !-- Update the spectra time axis 67 nc_stat = NF90_PUT_VAR( id_set_sp, id_var_time_sp, (/ simulated_time /),& 68 nc_stat = NF90_PUT_VAR( id_set_sp, id_var_time_sp, & 69 (/ time_since_reference_point /), & 68 70 start = (/ dosp_time_count /), count = (/ 1 /) ) 69 71 CALL handle_netcdf_error( 'data_output_spectra', 47 ) -
palm/trunk/SOURCE/data_output_tseries.f90
r263 r291 4 4 ! Current revisions: 5 5 ! ----------------- 6 ! simulated_time in NetCDF output replaced by time_since_reference_point. 6 7 ! Output of NetCDF messages with aid of message handling routine. 7 8 ! … … 63 64 ! 64 65 !-- Update the time series time axis 65 nc_stat = NF90_PUT_VAR( id_set_ts, id_var_time_ts, &66 (/ simulated_time /),&67 start = (/ dots_time_count /), &66 nc_stat = NF90_PUT_VAR( id_set_ts, id_var_time_ts, & 67 (/ time_since_reference_point /), & 68 start = (/ dots_time_count /), & 68 69 count = (/ 1 /) ) 69 70 CALL handle_netcdf_error( 'data_output_tseries', 350 ) -
palm/trunk/SOURCE/flow_statistics.f90
r274 r291 4 4 ! Current revisions: 5 5 ! ----------------- 6 ! Temperature gradient criterion for estimating the boundary layer height 7 ! replaced by the gradient criterion of Sullivan et al. (1998). 6 8 ! Output of messages replaced by message handling routine. 7 9 ! … … 83 85 INTEGER :: i, j, k, omp_get_thread_num, sr, tn 84 86 LOGICAL :: first 85 REAL :: height, pts, sums_l_eper, sums_l_etot, ust, ust2, u2, vst, & 86 vst2, v2, w2, z_i(2) 87 REAL :: dptdz_threshold, height, pts, sums_l_eper, sums_l_etot, ust, & 88 ust2, u2, vst, vst2, v2, w2, z_i(2) 89 REAL :: dptdz(nzb+1:nzt+1) 87 90 REAL :: sums_ll(nzb:nzt+1,2) 88 91 … … 949 952 950 953 ! 951 !-- Second scheme: Starting from the top/bottom model boundary, look for 952 !-- the first characteristic kink in the temperature profile, where the 953 !-- originally stable stratification notably weakens. 954 !-- Second scheme: Gradient scheme from Sullivan et al. (1998), modified 955 !-- by Uhlenbrock(2006). The boundary layer height is the height with the 956 !-- maximal local temperature gradient: starting from the second (the last 957 !-- but one) vertical gridpoint, the local gradient must be at least 958 !-- 0.2K/100m and greater than the next four gradients. 959 !-- WARNING: The threshold value of 0.2K/100m must be adjusted for the 960 !-- ocean case! 954 961 z_i(2) = 0.0 962 DO k = nzb+1, nzt+1 963 dptdz(k) = ( hom(k,1,4,sr) - hom(k-1,1,4,sr) ) * ddzu(k) 964 ENDDO 965 dptdz_threshold = 0.2 / 100.0 966 955 967 IF ( ocean ) THEN 956 DO k = nzb+1, nzt-1 957 IF ( ( hom(k,1,4,sr) - hom(k-1,1,4,sr) ) > & 958 2.0 * ( hom(k+1,1,4,sr) - hom(k,1,4,sr) ) ) THEN 959 z_i(2) = zu(k) 968 DO k = nzt+1, nzb+5, -1 969 IF ( dptdz(k) > dptdz_threshold .AND. & 970 dptdz(k) > dptdz(k-1) .AND. dptdz(k) > dptdz(k-2) .AND. & 971 dptdz(k) > dptdz(k-3) .AND. dptdz(k) > dptdz(k-4) ) THEN 972 z_i(2) = zw(k-1) 960 973 EXIT 961 974 ENDIF 962 975 ENDDO 963 976 ELSE 964 DO k = nzt-1, nzb+1, -1 965 IF ( ( hom(k+1,1,4,sr) - hom(k,1,4,sr) ) > & 966 2.0 * ( hom(k,1,4,sr) - hom(k-1,1,4,sr) ) ) THEN 967 z_i(2) = zu(k) 977 DO k = nzb+1, nzt-3 978 IF ( dptdz(k) > dptdz_threshold .AND. & 979 dptdz(k) > dptdz(k+1) .AND. dptdz(k) > dptdz(k+2) .AND. & 980 dptdz(k) > dptdz(k+3) .AND. dptdz(k) > dptdz(k+4) ) THEN 981 z_i(2) = zw(k-1) 968 982 EXIT 969 983 ENDIF -
palm/trunk/SOURCE/header.f90
r256 r291 4 4 ! Current revisions: 5 5 ! ----------------- 6 ! Coupling with independent precursor runs. 6 7 ! Output of messages replaced by message handling routine. 7 8 ! Output of cluster_size … … 105 106 106 107 INTEGER :: av, bh, blx, bly, bxl, bxr, byn, bys, ch, cwx, cwy, cxl, cxr, & 107 cyn, cys, i, ihost, io, j, l, ll108 cyn, cys, i, ihost, io, j, l, ll, mpi_type 108 109 REAL :: cpuseconds_per_simulated_second 109 110 … … 151 152 ver_rev = TRIM( version ) // ' ' // TRIM( revision ) 152 153 WRITE ( io, 100 ) ver_rev, TRIM( run_classification ) 153 IF ( coupling_mode /= 'uncoupled' ) WRITE ( io, 101 ) coupling_mode 154 IF ( TRIM( coupling_mode ) /= 'uncoupled' ) THEN 155 #if defined( __mpi2 ) 156 mpi_type = 2 157 #else 158 mpi_type = 1 159 #endif 160 WRITE ( io, 101 ) mpi_type, coupling_mode 161 ENDIF 154 162 WRITE ( io, 102 ) run_date, run_identifier, run_time, runnr, & 155 163 ADJUSTR( host_chr ) … … 344 352 ENDIF 345 353 ENDIF 354 ENDIF 355 356 ! 357 !-- Start time for coupled runs, if independent precursor runs for atmosphere 358 !-- and ocean are used. In this case, coupling_start_time defines the time 359 !-- when the coupling is switched on. 360 IF ( coupling_start_time /= 0.0 ) THEN 361 IF ( coupling_start_time >= simulated_time_at_begin ) THEN 362 char1 = 'Precursor run for a coupled atmosphere-ocean run' 363 ELSE 364 char1 = 'Coupled atmosphere-ocean run following independent ' // & 365 'precursor runs' 366 ENDIF 367 WRITE ( io, 207 ) char1, coupling_start_time 346 368 ENDIF 347 369 … … 1351 1373 1X,'* ',A,' *',9X,A/ & 1352 1374 1X,'***************************',9X,42('-')) 1353 101 FORMAT (37X,'coupled run : ',A/ &1375 101 FORMAT (37X,'coupled run using MPI-',I1,': ',A/ & 1354 1376 37X,42('-')) 1355 1377 102 FORMAT (/' Date: ',A8,9X,'Run: ',A20/ & … … 1448 1470 ' per second of simulated tim', & 1449 1471 'e: ',F9.3,' s') 1472 207 FORMAT ( A/' Coupling start time:',F9.3,' s') 1450 1473 250 FORMAT (//' Computational grid and domain size:'/ & 1451 1474 ' ----------------------------------'// & -
palm/trunk/SOURCE/init_coupling.f90
r226 r291 4 4 ! Actual revisions: 5 5 ! ----------------- 6 ! 6 ! Coupling with independent precursor runs. 7 7 ! 8 8 ! Former revisions: … … 27 27 !-- Local variables 28 28 INTEGER :: i, inter_color 29 INTEGER, DIMENSION(:) :: bc_data(0: 2) = 029 INTEGER, DIMENSION(:) :: bc_data(0:3) = 0 30 30 31 31 ! … … 48 48 READ (*,*,ERR=10,END=10) coupling_mode, bc_data(1), bc_data(2) 49 49 10 CONTINUE 50 51 50 #if defined( __mpi2 ) 52 51 IF ( TRIM( coupling_mode ) == 'atmosphere_to_ocean' ) THEN … … 64 63 ENDIF 65 64 #endif 66 bc_data(0) = i 65 bc_data(0) = i 66 67 ! 68 !-- Check if '_O' has to be used as file extension in an uncoupled ocean 69 !-- run. This is required, if this run shall be continued as a coupled run. 70 IF ( TRIM( coupling_mode ) == 'precursor_ocean' ) bc_data(3) = 1 71 67 72 ENDIF 68 73 69 CALL MPI_BCAST( bc_data(0), 3, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr )74 CALL MPI_BCAST( bc_data(0), 4, MPI_INTEGER, 0, MPI_COMM_WORLD, ierr ) 70 75 i = bc_data(0) 71 76 … … 114 119 #endif 115 120 116 IF ( coupling_mode == 'ocean_to_atmosphere' ) coupling_char = '_O' 121 ! 122 !-- In case of a precursor ocean run (followed by a coupled run), or a 123 !-- coupled atmosphere-ocean run, set the file extension for the ocean files 124 IF ( TRIM( coupling_mode ) == 'ocean_to_atmosphere' .OR. bc_data(3) == 1 ) & 125 THEN 126 coupling_char = '_O' 127 ENDIF 117 128 118 129 END SUBROUTINE init_coupling -
palm/trunk/SOURCE/modules.f90
r288 r291 11 11 ! topography color in dvrp_variables, 12 12 ! +canyon_height, canyon_width_x, canyon_width_y, canyon_wall_left, 13 ! canyon_wall_south, conserve_volume_flow_mode, dp_external, dp_level_b,14 ! dp_ level_ind_b, dp_smooth, dp_smooth_factor, dpdxy, u_bulk, v_bulk in15 ! control_parameters13 ! canyon_wall_south, conserve_volume_flow_mode, coupling_start_time, 14 ! dp_external, dp_level_b, dp_level_ind_b, dp_smooth, dp_smooth_factor, dpdxy, 15 ! run_coupled, time_since_reference_point, u_bulk, v_bulk in control_parameters 16 16 ! 17 17 ! Former revisions: … … 380 380 profil_output = .FALSE., radiation = .FALSE., & 381 381 random_heatflux = .FALSE., run_control_header = .FALSE., & 382 sloping_surface = .FALSE., stop_dt = .FALSE., & 383 terminate_run = .FALSE., turbulent_inflow = .FALSE., & 382 run_coupled = .TRUE., sloping_surface = .FALSE., & 383 stop_dt = .FALSE., terminate_run = .FALSE., & 384 turbulent_inflow = .FALSE., & 384 385 use_prior_plot1d_parameters = .FALSE., use_reference = .FALSE.,& 385 386 use_surface_fluxes = .FALSE., use_top_fluxes = .FALSE., & … … 401 402 canyon_width_x = 9999999.9, canyon_width_y = 9999999.9, & 402 403 canyon_wall_left = 9999999.9, canyon_wall_south = 9999999.9, & 403 cthf = 0.0, cfl_factor = -1.0, &404 co s_alpha_surface, disturbance_amplitude = 0.25, &404 cthf = 0.0, cfl_factor = -1.0, cos_alpha_surface, & 405 coupling_start_time, disturbance_amplitude = 0.25, & 405 406 disturbance_energy_limit = 0.01, & 406 407 disturbance_level_b = -9999999.9, & … … 454 455 time_do_av = 0.0, time_do_sla = 0.0, time_dvrp = 0.0, & 455 456 time_prel = 0.0, time_restart = 9999999.9, time_run_control = 0.0,& 456 top_heatflux = 9999999.9, top_momentumflux_u = 9999999.9, & 457 time_since_reference_point, top_heatflux = 9999999.9, & 458 top_momentumflux_u = 9999999.9, & 457 459 top_momentumflux_v = 9999999.9, top_salinityflux = 9999999.9, & 458 460 ug_surface = 0.0, u_bulk = 0.0, u_gtrans = 0.0, & -
palm/trunk/SOURCE/parin.f90
r274 r291 7 7 ! Output of messages replaced by message handling routine. 8 8 ! +canyon_height, canyon_width_x, canyon_width_y, canyon_wall_left, 9 ! canyon_wall_south, conserve_volume_flow_mode, dp_external, dp_level_b,10 ! dp_ smooth, dpdxy, u_bulk, v_bulk in inipar9 ! canyon_wall_south, conserve_volume_flow_mode, coupling_start_time, 10 ! dp_external, dp_level_b, dp_smooth, dpdxy, u_bulk, v_bulk in inipar 11 11 ! topography_grid_convention moved from userpar 12 12 ! … … 94 94 canyon_wall_left, canyon_wall_south, cloud_droplets, & 95 95 cloud_physics, conserve_volume_flow, conserve_volume_flow_mode, & 96 c thf, cut_spline_overshoot, &96 coupling_start_time, cthf, cut_spline_overshoot, & 97 97 damp_level_1d, dissipation_1d, dp_external, dp_level_b, & 98 98 dp_smooth, dpdxy, drag_coefficient, dt, dt_pr_1d, & -
palm/trunk/SOURCE/prandtl_fluxes.f90
r198 r291 4 4 ! Actual revisions: 5 5 ! ----------------- 6 ! 6 ! Saturation condition at (sea) surface is not used in precursor runs (only 7 ! in the following coupled runs) 7 8 ! 8 9 ! Former revisions: … … 278 279 279 280 ! 280 !-- assume saturation for atmosphere coupled to ocean 281 IF ( coupling_mode == 'atmosphere_to_ocean' ) THEN 281 !-- Assume saturation for atmosphere coupled to ocean (but not 282 !-- in case of precursor runs) 283 IF ( coupling_mode == 'atmosphere_to_ocean' .AND. run_coupled )& 284 THEN 282 285 e_q = 6.1 * & 283 286 EXP( 0.07 * ( MIN(pt(0,j,i),pt(1,j,i)) - 273.15 ) ) -
palm/trunk/SOURCE/read_var_list.f90
r274 r291 6 6 ! Output of messages replaced by message handling routine. 7 7 ! +canyon_height, canyon_width_x, canyon_width_y, canyon_wall_left, 8 ! canyon_wall_south, conserve_volume_flow_mode, dp_external, dp_level_b, 9 ! dp_smooth, dpdxy, topography_grid_convention, u_bulk, v_bulk 8 ! canyon_wall_south, conserve_volume_flow_mode, coupling_start_time, 9 ! dp_external, dp_level_b, dp_smooth, dpdxy, run_coupled, 10 ! time_since_reference_point, topography_grid_convention, u_bulk, v_bulk 10 11 ! 11 12 ! Former revisions: … … 242 243 CASE ( 'conserve_volume_flow_mode' ) 243 244 READ ( 13 ) conserve_volume_flow_mode 245 CASE ( 'coupling_start_time' ) 246 READ ( 13 ) coupling_start_time 244 247 CASE ( 'cthf' ) 245 248 READ ( 13 ) cthf … … 428 431 CASE ( 'runnr' ) 429 432 READ ( 13 ) runnr 433 CASE ( 'run_coupled' ) 434 READ ( 13 ) run_coupled 430 435 CASE ( 'sa_init' ) 431 436 READ ( 13 ) sa_init … … 492 497 CASE ( 'time_run_control' ) 493 498 READ ( 13 ) time_run_control 499 CASE ( 'time_since_reference_point' ) 500 READ ( 13 ) time_since_reference_point 494 501 CASE ( 'time_sort_particles' ) 495 502 READ ( 13 ) time_sort_particles -
palm/trunk/SOURCE/surface_coupler.f90
r274 r291 4 4 ! Current revisions: 5 5 ! ----------------- 6 ! Coupling with independent precursor runs. 6 7 ! Output of messages replaced by message handling routine. 7 8 ! … … 35 36 INTEGER :: i, j, k 36 37 37 REAL :: simulated_time_remote38 REAL :: time_since_reference_point_rem 38 39 39 40 #if defined( __parallel ) … … 65 66 RETURN 66 67 ENDIF 68 67 69 ! 68 70 !-- Exchange the current simulated time between the models, 69 71 !-- currently just for testing 70 CALL MPI_SEND( simulated_time, 1, MPI_REAL, target_id, 11, &72 CALL MPI_SEND( time_since_reference_point, 1, MPI_REAL, target_id, 11, & 71 73 comm_inter, ierr ) 72 CALL MPI_RECV( simulated_time_remote, 1, MPI_REAL, target_id, 11, &74 CALL MPI_RECV( time_since_reference_point_rem, 1, MPI_REAL, target_id, 11, & 73 75 comm_inter, status, ierr ) 74 WRITE ( 9, * ) simulated_time, ' remote: ', simulated_time_remote 76 WRITE ( 9, * ) 'simulated time: ', simulated_time 77 WRITE ( 9, * ) 'time since start of coupling: ', & 78 time_since_reference_point, ' remote: ', & 79 time_since_reference_point_rem 75 80 CALL local_flush( 9 ) 76 81 -
palm/trunk/SOURCE/time_integration.f90
r253 r291 4 4 ! Actual revisions: 5 5 ! ----------------- 6 ! Bugfix: output if particle time series only if particle advection is switched 6 ! Coupling with independent precursor runs. 7 ! Bugfix: output of particle time series only if particle advection is switched 7 8 ! on 8 9 ! … … 88 89 !-- Data exchange between coupled models in case that a call has been omitted 89 90 !-- at the end of the previous run of a job chain. 90 IF ( coupling_mode /= 'uncoupled' ) THEN91 IF ( coupling_mode /= 'uncoupled' .AND. run_coupled ) THEN 91 92 ! 92 93 !-- In case of model termination initiated by the local model the coupler … … 295 296 ! 296 297 !-- Increase simulation time and output times 297 current_timestep_number = current_timestep_number + 1 298 simulated_time = simulated_time + dt_3d 299 simulated_time_chr = time_to_string( simulated_time ) 298 current_timestep_number = current_timestep_number + 1 299 simulated_time = simulated_time + dt_3d 300 simulated_time_chr = time_to_string( simulated_time ) 301 time_since_reference_point = simulated_time - coupling_start_time 302 300 303 IF ( simulated_time >= skip_time_data_output_av ) THEN 301 304 time_do_av = time_do_av + dt_3d … … 329 332 ! 330 333 !-- Data exchange between coupled models 331 IF ( coupling_mode /= 'uncoupled' ) THEN334 IF ( coupling_mode /= 'uncoupled' .AND. run_coupled ) THEN 332 335 time_coupling = time_coupling + dt_3d 333 336 ! -
palm/trunk/SOURCE/write_var_list.f90
r256 r291 5 5 ! ----------------- 6 6 ! +canyon_height, canyon_width_x, canyon_width_y, canyon_wall_left, 7 ! canyon_wall_south, conserve_volume_flow_mode, dp_external, dp_level_b, 8 ! dp_smooth, dpdxy, topography_grid_convention, u_bulk, v_bulk 7 ! canyon_wall_south, conserve_volume_flow_mode, coupling_start_time, 8 ! dp_external, dp_level_b, dp_smooth, dpdxy, run_coupled, 9 ! time_since_reference_point, topography_grid_convention, u_bulk, v_bulk 9 10 ! 10 11 ! Former revisions: … … 171 172 WRITE ( 14 ) 'conserve_volume_flow_mode ' 172 173 WRITE ( 14 ) conserve_volume_flow_mode 174 WRITE ( 14 ) 'coupling_start_time ' 175 WRITE ( 14 ) coupling_start_time 173 176 WRITE ( 14 ) 'current_timestep_number ' 174 177 WRITE ( 14 ) current_timestep_number … … 353 356 WRITE ( 14 ) 'runnr ' 354 357 WRITE ( 14 ) runnr 358 WRITE ( 14 ) 'run_coupled ' 359 WRITE ( 14 ) run_coupled 355 360 WRITE ( 14 ) 'sa_init ' 356 361 WRITE ( 14 ) sa_init … … 417 422 WRITE ( 14 ) 'time_run_control ' 418 423 WRITE ( 14 ) time_run_control 424 WRITE ( 14 ) 'time_since_reference_point ' 425 WRITE ( 14 ) time_since_reference_point 419 426 WRITE ( 14 ) 'time_sort_particles ' 420 427 WRITE ( 14 ) time_sort_particles
Note: See TracChangeset
for help on using the changeset viewer.