89 type(model_state_type),
target,
intent(inout) :: current_state
99 l_qdiag = (.not. current_state%passive_q .and. current_state%number_q_fields .gt. 0) .and.
advect_q
127 allocate(
tend_3d_u(current_state%local_grid%size(z_index), &
128 current_state%local_grid%size(y_index), &
129 current_state%local_grid%size(x_index) ) )
132 allocate(
tend_3d_v(current_state%local_grid%size(z_index), &
133 current_state%local_grid%size(y_index), &
134 current_state%local_grid%size(x_index) ) )
137 allocate(
tend_3d_w(current_state%local_grid%size(z_index), &
138 current_state%local_grid%size(y_index), &
139 current_state%local_grid%size(x_index) ) )
142 allocate(
tend_3d_th(current_state%local_grid%size(z_index), &
143 current_state%local_grid%size(y_index), &
144 current_state%local_grid%size(x_index) ) )
147 iqv=get_q_index(standard_q_names%VAPOUR,
'pw_advection')
148 allocate(
tend_3d_qv(current_state%local_grid%size(z_index), &
149 current_state%local_grid%size(y_index), &
150 current_state%local_grid%size(x_index) ) )
153 iql=get_q_index(standard_q_names%CLOUD_LIQUID_MASS,
'pw_advection')
154 allocate(
tend_3d_ql(current_state%local_grid%size(z_index), &
155 current_state%local_grid%size(y_index), &
156 current_state%local_grid%size(x_index) ) )
159 iqi=get_q_index(standard_q_names%ICE_MASS,
'pw_advection')
160 allocate(
tend_3d_qi(current_state%local_grid%size(z_index), &
161 current_state%local_grid%size(y_index), &
162 current_state%local_grid%size(x_index) ) )
165 iqr=get_q_index(standard_q_names%RAIN_MASS,
'pw_advection')
166 allocate(
tend_3d_qr(current_state%local_grid%size(z_index), &
167 current_state%local_grid%size(y_index), &
168 current_state%local_grid%size(x_index) ) )
171 iqs=get_q_index(standard_q_names%SNOW_MASS,
'pw_advection')
172 allocate(
tend_3d_qs(current_state%local_grid%size(z_index), &
173 current_state%local_grid%size(y_index), &
174 current_state%local_grid%size(x_index) ) )
177 iqg=get_q_index(standard_q_names%GRAUPEL_MASS,
'pw_advection')
178 allocate(
tend_3d_qg(current_state%local_grid%size(z_index), &
179 current_state%local_grid%size(y_index), &
180 current_state%local_grid%size(x_index) ) )
183 allocate(
tend_3d_tabs(current_state%local_grid%size(z_index), &
184 current_state%local_grid%size(y_index), &
185 current_state%local_grid%size(x_index) ) )
190 allocate(
tend_pr_tot_u(current_state%local_grid%size(z_index)) )
193 allocate(
tend_pr_tot_v(current_state%local_grid%size(z_index)) )
196 allocate(
tend_pr_tot_w(current_state%local_grid%size(z_index)) )
199 allocate(
tend_pr_tot_th(current_state%local_grid%size(z_index)) )
202 allocate(
tend_pr_tot_qv(current_state%local_grid%size(z_index)) )
205 allocate(
tend_pr_tot_ql(current_state%local_grid%size(z_index)) )
208 allocate(
tend_pr_tot_qi(current_state%local_grid%size(z_index)) )
211 allocate(
tend_pr_tot_qr(current_state%local_grid%size(z_index)) )
214 allocate(
tend_pr_tot_qs(current_state%local_grid%size(z_index)) )
217 allocate(
tend_pr_tot_qg(current_state%local_grid%size(z_index)) )
230 type(model_state_type),
target,
intent(inout) :: current_state
264 type(model_state_type),
target,
intent(inout) :: current_state
266 integer :: current_x_index, current_y_index, target_x_index, target_y_index
268 current_x_index=current_state%column_local_x
269 current_y_index=current_state%column_local_y
270 target_y_index=current_y_index-current_state%local_grid%halo_size(y_index)
271 target_x_index=current_x_index-current_state%local_grid%halo_size(x_index)
275 if (current_state%first_timestep_column)
then
312 if (current_state%halo_column)
return
333 type(model_state_type),
target,
intent(inout) :: current_state
334 integer,
intent(in) :: current_x_index, current_y_index
338 do n=1,current_state%number_q_fields
339 do k=2,current_state%local_grid%size(z_index)-1
341 current_state%sq(n)%data(k, current_y_index, current_x_index)=&
342 current_state%sq(n)%data(k, current_y_index, current_x_index)+current_state%global_grid%configuration%horizontal%cx*&
343 0.5_default_precision*(current_state%u%data(k, current_y_index, current_x_index-1)*&
344 current_state%q(n)%data(k, current_y_index, current_x_index-1)-&
345 current_state%u%data(k, current_y_index, current_x_index)*&
346 current_state%q(n)%data(k, current_y_index, current_x_index+1))
349 current_state%sq(n)%data(k, current_y_index, current_x_index)=&
350 current_state%sq(n)%data(k, current_y_index, current_x_index)+&
351 current_state%global_grid%configuration%horizontal%cy*0.5_default_precision*&
352 (current_state%v%data(k, current_y_index-1, current_x_index)*&
353 current_state%q(n)%data(k, current_y_index-1, current_x_index)-&
354 current_state%v%data(k, current_y_index, current_x_index)*&
355 current_state%q(n)%data(k, current_y_index+1, current_x_index))
358 current_state%sq(n)%data(k, current_y_index, current_x_index)=&
359 current_state%sq(n)%data(k, current_y_index, current_x_index)+&
360 2.0_default_precision*(current_state%global_grid%configuration%vertical%tzc1(k)*&
361 current_state%w%data(k-1, current_y_index, current_x_index)*&
362 current_state%q(n)%data(k-1, current_y_index, current_x_index)-&
363 current_state%global_grid%configuration%vertical%tzc2(k)*&
364 current_state%w%data(k, current_y_index, current_x_index)*&
365 current_state%q(n)%data(k+1, current_y_index, current_x_index))
370 k=current_state%local_grid%size(z_index)
372 current_state%sq(n)%data(k, current_y_index, current_x_index)=&
373 current_state%sq(n)%data(k, current_y_index, current_x_index)+current_state%global_grid%configuration%horizontal%cx*&
374 0.5_default_precision*(current_state%u%data(k, current_y_index, current_x_index-1)*&
375 current_state%q(n)%data(k, current_y_index, current_x_index-1)-&
376 current_state%u%data(k, current_y_index, current_x_index)*&
377 current_state%q(n)%data(k, current_y_index, current_x_index+1))
380 current_state%sq(n)%data(k, current_y_index, current_x_index)=&
381 current_state%sq(n)%data(k, current_y_index, current_x_index)+current_state%global_grid%configuration%horizontal%cy*&
382 0.5_default_precision*(current_state%v%data(k, current_y_index-1, current_x_index)*&
383 current_state%q(n)%data(k, current_y_index-1, current_x_index)-&
384 current_state%v%data(k, current_y_index, current_x_index)*&
385 current_state%q(n)%data(k, current_y_index+1, current_x_index))
388 current_state%sq(n)%data(k, current_y_index, current_x_index)=&
389 current_state%sq(n)%data(k, current_y_index, current_x_index)+&
390 current_state%global_grid%configuration%vertical%tzc1(k)*2.0_default_precision*&
391 current_state%w%data(k-1, current_y_index, current_x_index)*&
392 current_state%q(n)%data(k-1, current_y_index, current_x_index)
403 type(model_state_type),
target,
intent(inout) :: current_state
404 integer,
intent(in) :: current_x_index, current_y_index
408 if (current_state%th%active)
then
410 do k=2,current_state%local_grid%size(z_index)-1
412 current_state%sth%data(k, current_y_index, current_x_index)= &
413 current_state%global_grid%configuration%horizontal%cx*&
414 0.5_default_precision*(current_state%u%data(k, current_y_index, current_x_index-1)*&
415 current_state%th%data(k, current_y_index, current_x_index-1)-&
416 current_state%u%data(k, current_y_index, current_x_index)*&
417 current_state%th%data(k, current_y_index, current_x_index+1))
420 current_state%sth%data(k, current_y_index, current_x_index)=current_state%sth%data(k, current_y_index, current_x_index)+&
421 current_state%global_grid%configuration%horizontal%cy*0.5_default_precision*&
422 (current_state%v%data(k, current_y_index-1, current_x_index)*&
423 current_state%th%data(k, current_y_index-1, current_x_index)-&
424 current_state%v%data(k, current_y_index, current_x_index)*&
425 current_state%th%data(k, current_y_index+1, current_x_index))
428 current_state%sth%data(k, current_y_index, current_x_index)=current_state%sth%data(k, current_y_index, current_x_index)+&
429 2.0_default_precision*(current_state%global_grid%configuration%vertical%tzc1(k)*&
430 current_state%w%data(k-1, current_y_index, current_x_index)*&
431 current_state%th%data(k-1, current_y_index, current_x_index)-&
432 current_state%global_grid%configuration%vertical%tzc2(k)*&
433 current_state%w%data(k, current_y_index, current_x_index)*&
434 current_state%th%data(k+1, current_y_index, current_x_index))
440 k=current_state%local_grid%size(z_index)
442 current_state%sth%data(k, current_y_index, current_x_index)= &
443 current_state%global_grid%configuration%horizontal%cx*&
444 0.5_default_precision*(current_state%u%data(k, current_y_index, current_x_index-1)*&
445 current_state%th%data(k, current_y_index, current_x_index-1)-&
446 current_state%u%data(k, current_y_index, current_x_index)*&
447 current_state%th%data(k, current_y_index, current_x_index+1))
450 current_state%sth%data(k, current_y_index, current_x_index)=current_state%sth%data(k, current_y_index, current_x_index)+&
451 current_state%global_grid%configuration%horizontal%cy*0.5_default_precision*&
452 (current_state%v%data(k, current_y_index-1, current_x_index)*&
453 current_state%th%data(k, current_y_index-1, current_x_index)-&
454 current_state%v%data(k, current_y_index, current_x_index)*&
455 current_state%th%data(k, current_y_index+1, current_x_index))
458 current_state%sth%data(k, current_y_index, current_x_index)=current_state%sth%data(k, current_y_index, current_x_index)+&
459 current_state%global_grid%configuration%vertical%tzc1(k)*2.0_default_precision*&
460 current_state%w%data(k-1, current_y_index, current_x_index)*current_state%th%data(k-1, current_y_index, &
472 type(model_state_type),
target,
intent(inout) :: current_state
473 integer,
intent(in) :: current_x_index, current_y_index
477 do k=2,current_state%local_grid%size(z_index)-1
479 current_state%su%data(k, current_y_index, current_x_index)=&
480 current_state%global_grid%configuration%horizontal%tcx*(current_state%u%data(k, current_y_index, current_x_index-1)*&
481 (current_state%u%data(k, current_y_index, current_x_index)+&
482 current_state%u%data(k, current_y_index, current_x_index-1))-&
483 current_state%u%data(k, current_y_index, current_x_index+1)*&
484 (current_state%u%data(k, current_y_index, current_x_index)+&
485 current_state%u%data(k, current_y_index, current_x_index+1)))
487 current_state%su%data(k, current_y_index, current_x_index)=current_state%su%data(k, current_y_index, current_x_index)+&
488 current_state%global_grid%configuration%horizontal%tcy*(current_state%u%data(k, current_y_index-1, current_x_index)*&
489 (current_state%v%data(k, current_y_index-1, current_x_index)+&
490 current_state%v%data(k, current_y_index-1, current_x_index+1))-&
491 current_state%u%data(k, current_y_index+1, current_x_index)*&
492 (current_state%v%data(k, current_y_index, current_x_index)+&
493 current_state%v%data(k, current_y_index, current_x_index+1)))
496 current_state%su%data(k, current_y_index, current_x_index)=current_state%su%data(k, current_y_index, current_x_index)+&
497 (current_state%global_grid%configuration%vertical%tzc1(k)*current_state%u%data(k-1, current_y_index, current_x_index)*&
498 (current_state%w%data(k-1, current_y_index, current_x_index)+&
499 current_state%w%data(k-1, current_y_index, current_x_index+1))-&
500 current_state%global_grid%configuration%vertical%tzc2(k)*current_state%u%data(k+1, current_y_index, current_x_index)*&
501 (current_state%w%data(k, current_y_index, current_x_index)+&
502 current_state%w%data(k, current_y_index, current_x_index+1)))
507 current_state%sv%data(k, current_y_index, current_x_index)=current_state%global_grid%configuration%horizontal%tcy*(&
508 current_state%v%data(k, current_y_index-1, current_x_index)*&
509 (current_state%v%data(k, current_y_index, current_x_index)+&
510 current_state%v%data(k, current_y_index-1, current_x_index))-&
511 current_state%v%data(k, current_y_index+1, current_x_index)*&
512 (current_state%v%data(k, current_y_index, current_x_index)+&
513 current_state%v%data(k, current_y_index+1, current_x_index)))
515 current_state%sv%data(k, current_y_index, current_x_index)=current_state%sv%data(k, current_y_index, current_x_index)+&
516 current_state%global_grid%configuration%horizontal%tcx*(current_state%v%data(k, current_y_index, current_x_index-1)*&
517 (current_state%u%data(k, current_y_index, current_x_index-1)+&
518 current_state%u%data(k, current_y_index+1, current_x_index-1))-&
519 current_state%v%data(k, current_y_index, current_x_index+1)*&
520 (current_state%u%data(k, current_y_index, current_x_index)+&
521 current_state%u%data(k, current_y_index+1, current_x_index)))
524 current_state%sv%data(k, current_y_index, current_x_index)=current_state%sv%data(k, current_y_index, current_x_index)+&
525 (current_state%global_grid%configuration%vertical%tzc1(k)*current_state%v%data(k-1, current_y_index, current_x_index)*&
526 (current_state%w%data(k-1, current_y_index, current_x_index)+&
527 current_state%w%data(k-1, current_y_index+1, current_x_index))-&
528 current_state%global_grid%configuration%vertical%tzc2(k)*current_state%v%data(k+1, current_y_index, current_x_index)*&
529 (current_state%w%data(k, current_y_index, current_x_index)+&
530 current_state%w%data(k, current_y_index+1, current_x_index)))
535 current_state%sw%data(k, current_y_index, current_x_index)=(current_state%global_grid%configuration%vertical%tzd1(k)*&
536 current_state%w%data(k-1, current_y_index, current_x_index)*&
537 (current_state%w%data(k, current_y_index, current_x_index)+&
538 current_state%w%data(k-1, current_y_index, current_x_index))-&
539 current_state%global_grid%configuration%vertical%tzd2(k)*current_state%w%data(k+1, current_y_index, current_x_index)*&
540 (current_state%w%data(k, current_y_index, current_x_index)+&
541 current_state%w%data(k+1, current_y_index, current_x_index)))
543 current_state%sw%data(k, current_y_index, current_x_index)=current_state%sw%data(k, current_y_index, current_x_index)+&
544 current_state%global_grid%configuration%horizontal%tcx*(current_state%w%data(k, current_y_index, current_x_index-1)*&
545 (current_state%u%data(k, current_y_index, current_x_index-1)+&
546 current_state%u%data(k+1, current_y_index, current_x_index-1))-&
547 current_state%w%data(k, current_y_index, current_x_index+1)*&
548 (current_state%u%data(k, current_y_index, current_x_index)+&
549 current_state%u%data(k+1, current_y_index, current_x_index)))
552 current_state%sw%data(k, current_y_index, current_x_index)=current_state%sw%data(k, current_y_index, current_x_index)+&
553 current_state%global_grid%configuration%horizontal%tcy*(current_state%w%data(k, current_y_index-1, current_x_index)*&
554 (current_state%v%data(k, current_y_index-1, current_x_index)+&
555 current_state%v%data(k+1, current_y_index-1, current_x_index))-&
556 current_state%w%data(k, current_y_index+1, current_x_index)*&
557 (current_state%v%data(k, current_y_index, current_x_index)+&
558 current_state%v%data(k+1, current_y_index, current_x_index)))
564 k=current_state%local_grid%size(z_index)
566 current_state%su%data(k, current_y_index, current_x_index)=current_state%global_grid%configuration%horizontal%tcx*&
567 (current_state%u%data(k, current_y_index, current_x_index-1)*&
568 (current_state%u%data(k, current_y_index, current_x_index)+&
569 current_state%u%data(k, current_y_index, current_x_index-1))-&
570 current_state%u%data(k, current_y_index, current_x_index+1)*&
571 (current_state%u%data(k, current_y_index, current_x_index)+&
572 current_state%u%data(k, current_y_index, current_x_index+1)))
574 current_state%su%data(k, current_y_index, current_x_index)=current_state%su%data(k, current_y_index, current_x_index)+&
575 current_state%global_grid%configuration%horizontal%tcy*(current_state%u%data(k, current_y_index-1, current_x_index)*&
576 (current_state%v%data(k, current_y_index-1, current_x_index)+&
577 current_state%v%data(k, current_y_index-1, current_x_index+1))-&
578 current_state%u%data(k, current_y_index+1, current_x_index)*&
579 (current_state%v%data(k, current_y_index, current_x_index)+&
580 current_state%v%data(k, current_y_index, current_x_index+1)))
583 current_state%su%data(k, current_y_index, current_x_index)=current_state%su%data(k, current_y_index, current_x_index)+&
584 current_state%global_grid%configuration%vertical%tzc1(k)*current_state%u%data(k-1, current_y_index, current_x_index)*&
585 (current_state%w%data(k-1, current_y_index, current_x_index)+&
586 current_state%w%data(k-1, current_y_index, current_x_index+1))
591 current_state%sv%data(k, current_y_index, current_x_index)=current_state%global_grid%configuration%horizontal%tcy*&
592 (current_state%v%data(k, current_y_index-1, current_x_index)*&
593 (current_state%v%data(k, current_y_index, current_x_index)+&
594 current_state%v%data(k, current_y_index-1, current_x_index))-&
595 current_state%v%data(k, current_y_index+1, current_x_index)*&
596 (current_state%v%data(k, current_y_index, current_x_index)+&
597 current_state%v%data(k, current_y_index+1, current_x_index)))
599 current_state%sv%data(k, current_y_index, current_x_index)=current_state%sv%data(k, current_y_index, current_x_index)+&
600 current_state%global_grid%configuration%horizontal%tcx*(current_state%v%data(k, current_y_index, current_x_index-1)*&
601 (current_state%u%data(k, current_y_index, current_x_index-1)+&
602 current_state%u%data(k, current_y_index+1, current_x_index-1))-&
603 current_state%v%data(k, current_y_index, current_x_index+1)*&
604 (current_state%u%data(k, current_y_index, current_x_index)+&
605 current_state%u%data(k, current_y_index+1, current_x_index)))
608 current_state%sv%data(k, current_y_index, current_x_index)=current_state%sv%data(k, current_y_index, current_x_index)+&
609 current_state%global_grid%configuration%vertical%tzc1(k)*current_state%v%data(k-1, current_y_index, current_x_index)*&
610 (current_state%w%data(k-1, current_y_index, current_x_index)+&
611 current_state%w%data(k-1, current_y_index+1, current_x_index))
625 type(model_state_type),
target,
intent(in) :: current_state
626 integer,
intent(in) :: cxn, cyn, txn, tyn
630 tend_3d_u(:,tyn,txn)=current_state%su%data(:,cyn,cxn)
633 tend_3d_v(:,tyn,txn)=current_state%sv%data(:,cyn,cxn)
636 tend_3d_w(:,tyn,txn)=current_state%sw%data(:,cyn,cxn)
639 tend_3d_th(:,tyn,txn)=current_state%sth%data(:,cyn,cxn)
660 tend_3d_tabs(:,tyn,txn)=current_state%sth%data(:,cyn,cxn) * current_state%global_grid%configuration%vertical%rprefrcp(:)
673 type(model_state_type),
target,
intent(inout) :: current_state
674 integer,
intent(in) :: cxn, cyn, txn, tyn
709 current_state%sth%data(:,cyn,cxn) * current_state%global_grid%configuration%vertical%rprefrcp(:) &
757 type(model_state_type),
target,
intent(inout) :: current_state
758 character(len=*),
intent(in) :: name
759 type(component_field_information_type),
intent(out) :: field_information
763 strcomp=index(name,
"pwadvection_3d_local")
764 if (strcomp .ne. 0)
then
765 field_information%field_type=component_array_field_type
766 field_information%number_dimensions=3
767 field_information%dimension_sizes(1)=current_state%local_grid%size(z_index)
768 field_information%dimension_sizes(2)=current_state%local_grid%size(y_index)
769 field_information%dimension_sizes(3)=current_state%local_grid%size(x_index)
770 field_information%data_type=component_double_data_type
772 if (name .eq.
"tend_u_pwadvection_3d_local")
then
774 else if (name .eq.
"tend_v_pwadvection_3d_local")
then
776 else if (name .eq.
"tend_w_pwadvection_3d_local")
then
778 else if (name .eq.
"tend_th_pwadvection_3d_local")
then
780 else if (name .eq.
"tend_qv_pwadvection_3d_local")
then
782 else if (name .eq.
"tend_ql_pwadvection_3d_local")
then
784 else if (name .eq.
"tend_qi_pwadvection_3d_local")
then
786 else if (name .eq.
"tend_qr_pwadvection_3d_local")
then
788 else if (name .eq.
"tend_qs_pwadvection_3d_local")
then
790 else if (name .eq.
"tend_qg_pwadvection_3d_local")
then
792 else if (name .eq.
"tend_tabs_pwadvection_3d_local")
then
795 field_information%enabled=.true.
801 strcomp=index(name,
"pwadvection_profile_total_local")
802 if (strcomp .ne. 0)
then
803 field_information%field_type=component_array_field_type
804 field_information%number_dimensions=1
805 field_information%dimension_sizes(1)=current_state%local_grid%size(z_index)
806 field_information%data_type=component_double_data_type
808 if (name .eq.
"tend_u_pwadvection_profile_total_local")
then
810 else if (name .eq.
"tend_v_pwadvection_profile_total_local")
then
812 else if (name .eq.
"tend_w_pwadvection_profile_total_local")
then
814 else if (name .eq.
"tend_th_pwadvection_profile_total_local")
then
816 else if (name .eq.
"tend_qv_pwadvection_profile_total_local")
then
818 else if (name .eq.
"tend_ql_pwadvection_profile_total_local")
then
820 else if (name .eq.
"tend_qi_pwadvection_profile_total_local")
then
822 else if (name .eq.
"tend_qr_pwadvection_profile_total_local")
then
824 else if (name .eq.
"tend_qs_pwadvection_profile_total_local")
then
826 else if (name .eq.
"tend_qg_pwadvection_profile_total_local")
then
828 else if (name .eq.
"tend_tabs_pwadvection_profile_total_local")
then
831 field_information%enabled=.true.
844 type(model_state_type),
target,
intent(inout) :: current_state
845 character(len=*),
intent(in) :: name
846 type(component_field_value_type),
intent(out) :: field_value
849 if (name .eq.
"tend_u_pwadvection_3d_local" .and.
allocated(
tend_3d_u))
then
851 else if (name .eq.
"tend_v_pwadvection_3d_local" .and.
allocated(
tend_3d_v))
then
853 else if (name .eq.
"tend_w_pwadvection_3d_local" .and.
allocated(
tend_3d_w))
then
855 else if (name .eq.
"tend_th_pwadvection_3d_local" .and.
allocated(
tend_3d_th))
then
857 else if (name .eq.
"tend_qv_pwadvection_3d_local" .and.
allocated(
tend_3d_qv))
then
859 else if (name .eq.
"tend_ql_pwadvection_3d_local" .and.
allocated(
tend_3d_ql))
then
861 else if (name .eq.
"tend_qi_pwadvection_3d_local" .and.
allocated(
tend_3d_qi))
then
863 else if (name .eq.
"tend_qr_pwadvection_3d_local" .and.
allocated(
tend_3d_qr))
then
865 else if (name .eq.
"tend_qs_pwadvection_3d_local" .and.
allocated(
tend_3d_qs))
then
867 else if (name .eq.
"tend_qg_pwadvection_3d_local" .and.
allocated(
tend_3d_qg))
then
869 else if (name .eq.
"tend_tabs_pwadvection_3d_local" .and.
allocated(
tend_3d_tabs))
then
873 else if (name .eq.
"tend_u_pwadvection_profile_total_local" .and.
allocated(
tend_pr_tot_u))
then
875 else if (name .eq.
"tend_v_pwadvection_profile_total_local" .and.
allocated(
tend_pr_tot_v))
then
877 else if (name .eq.
"tend_w_pwadvection_profile_total_local" .and.
allocated(
tend_pr_tot_w))
then
879 else if (name .eq.
"tend_th_pwadvection_profile_total_local" .and.
allocated(
tend_pr_tot_th))
then
881 else if (name .eq.
"tend_qv_pwadvection_profile_total_local" .and.
allocated(
tend_pr_tot_qv))
then
883 else if (name .eq.
"tend_ql_pwadvection_profile_total_local" .and.
allocated(
tend_pr_tot_ql))
then
885 else if (name .eq.
"tend_qi_pwadvection_profile_total_local" .and.
allocated(
tend_pr_tot_qi))
then
887 else if (name .eq.
"tend_qr_pwadvection_profile_total_local" .and.
allocated(
tend_pr_tot_qr))
then
889 else if (name .eq.
"tend_qs_pwadvection_profile_total_local" .and.
allocated(
tend_pr_tot_qs))
then
891 else if (name .eq.
"tend_qg_pwadvection_profile_total_local" .and.
allocated(
tend_pr_tot_qg))
then
893 else if (name .eq.
"tend_tabs_pwadvection_profile_total_local" .and.
allocated(
tend_pr_tot_tabs))
then
905 type(component_field_value_type),
intent(inout) :: field_value
906 real(kind=default_precision),
dimension(:),
optional :: real_1d_field
907 real(kind=default_precision),
dimension(:,:),
optional :: real_2d_field
908 real(kind=default_precision),
dimension(:,:,:),
optional :: real_3d_field
910 if (
present(real_1d_field))
then
911 allocate(field_value%real_1d_array(
size(real_1d_field)), source=real_1d_field)
912 else if (
present(real_2d_field))
then
913 allocate(field_value%real_2d_array(
size(real_2d_field, 1),
size(real_2d_field, 2)), source=real_2d_field)
914 else if (
present(real_3d_field))
then
915 allocate(field_value%real_3d_array(
size(real_3d_field, 1),
size(real_3d_field, 2),
size(real_3d_field, 3)), &
916 source=real_3d_field)
926 character(len=*),
intent(in) :: field
928 if (len_trim(field) .ne. 0)
then
929 if (trim(field) .eq.
"pw" .or. trim(field) .eq.
"any")
then