30 real(kind=fms_svp_kind_),
intent(in) :: temp
31 real(kind=fms_svp_kind_),
intent(out) :: esat
32 character(len=*),
intent(out),
optional :: err_msg
35 character(len=128) :: err_msg_local
37 if (.not.module_is_initialized)
then
38 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
41 call lookup_es_k(temp, esat, nbad)
44 if(
present(err_msg)) err_msg =
''
46 if(show_all_bad_values)
call show_all_bad ( temp )
47 write(err_msg_local,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
48 if(fms_error_handler(
'lookup_es',err_msg_local,err_msg))
return
62 real(kind=fms_svp_kind_),
intent(in) :: temp(:)
63 real(kind=fms_svp_kind_),
intent(out) :: esat(:)
64 character(len=*),
intent(out),
optional :: err_msg
66 character(len=54) :: err_msg_local
70 if (.not.module_is_initialized)
then
71 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
74 call lookup_es_k(temp, esat, nbad)
77 if(
present(err_msg)) err_msg =
''
79 if(show_bad_value_count_by_slice)
call temp_check ( temp )
80 if(show_all_bad_values)
call show_all_bad ( temp )
81 write(err_msg_local,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
82 if(fms_error_handler(
'lookup_es',err_msg_local,err_msg))
return
98 real(kind=fms_svp_kind_),
intent(in) :: temp(:,:)
99 real(kind=fms_svp_kind_),
intent(out) :: esat(:,:)
100 character(len=*),
intent(out),
optional :: err_msg
102 character(len=54) :: err_msg_local
106 if (.not.module_is_initialized)
then
107 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
110 call lookup_es_k(temp, esat, nbad)
112 if ( nbad == 0 )
then
113 if(
present(err_msg)) err_msg =
''
115 if(show_bad_value_count_by_slice)
call temp_check ( temp )
116 if(show_all_bad_values)
call show_all_bad ( temp )
117 write(err_msg_local,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
118 if(fms_error_handler(
'lookup_es',err_msg_local,err_msg))
return
134 real(kind=fms_svp_kind_),
intent(in) :: temp(:,:,:)
135 real(kind=fms_svp_kind_),
intent(out) :: esat(:,:,:)
136 character(len=*),
intent(out),
optional :: err_msg
139 character(len=128) :: err_msg_tmp
141 if (.not.module_is_initialized)
then
142 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
145 call lookup_es_k(temp, esat, nbad)
147 if ( nbad == 0 )
then
148 if(
present(err_msg)) err_msg =
''
150 if(show_bad_value_count_by_slice)
call temp_check ( temp )
151 if(show_all_bad_values)
call show_all_bad ( temp )
152 write(err_msg_tmp,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
153 if(fms_error_handler(
'lookup_es',err_msg_tmp,err_msg))
return
167 real(kind=fms_svp_kind_),
intent(in) :: temp
168 real(kind=fms_svp_kind_),
intent(out) :: esat
169 character(len=*),
intent(out),
optional :: err_msg
172 character(len=128) :: err_msg_local
174 if (.not.module_is_initialized)
then
175 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
178 call lookup_es2_k(temp, esat, nbad)
180 if ( nbad == 0 )
then
181 if(
present(err_msg)) err_msg =
''
183 if(show_all_bad_values)
call show_all_bad ( temp )
184 write(err_msg_local,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
185 if(fms_error_handler(
'lookup_es2',err_msg_local,err_msg))
return
199 real(kind=fms_svp_kind_),
intent(in) :: temp(:)
200 real(kind=fms_svp_kind_),
intent(out) :: esat(:)
201 character(len=*),
intent(out),
optional :: err_msg
203 character(len=54) :: err_msg_local
207 if (.not.module_is_initialized)
then
208 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
211 call lookup_es2_k(temp, esat, nbad)
213 if ( nbad == 0 )
then
214 if(
present(err_msg)) err_msg =
''
216 if(show_bad_value_count_by_slice)
call temp_check ( temp )
217 if(show_all_bad_values)
call show_all_bad ( temp )
218 write(err_msg_local,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
219 if(fms_error_handler(
'lookup_es2',err_msg_local,err_msg))
return
235 real(kind=fms_svp_kind_),
intent(in) :: temp(:,:)
236 real(kind=fms_svp_kind_),
intent(out) :: esat(:,:)
237 character(len=*),
intent(out),
optional :: err_msg
239 character(len=54) :: err_msg_local
243 if (.not.module_is_initialized)
then
244 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
247 call lookup_es2_k(temp, esat, nbad)
249 if ( nbad == 0 )
then
250 if(
present(err_msg)) err_msg =
''
252 if(show_bad_value_count_by_slice)
call temp_check ( temp )
253 if(show_all_bad_values)
call show_all_bad ( temp )
254 write(err_msg_local,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
255 if(fms_error_handler(
'lookup_es2',err_msg_local,err_msg))
return
271 real(kind=fms_svp_kind_),
intent(in) :: temp(:,:,:)
272 real(kind=fms_svp_kind_),
intent(out) :: esat(:,:,:)
273 character(len=*),
intent(out),
optional :: err_msg
276 character(len=128) :: err_msg_tmp
278 if (.not.module_is_initialized)
then
279 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
282 call lookup_es2_k(temp, esat, nbad)
284 if ( nbad == 0 )
then
285 if(
present(err_msg)) err_msg =
''
287 if(show_bad_value_count_by_slice)
call temp_check ( temp )
288 if(show_all_bad_values)
call show_all_bad ( temp )
289 write(err_msg_tmp,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
290 if(fms_error_handler(
'lookup_es2',err_msg_tmp,err_msg))
return
304 real(kind=fms_svp_kind_),
intent(in) :: temp
305 real(kind=fms_svp_kind_),
intent(out) :: esat
306 character(len=*),
intent(out),
optional :: err_msg
309 character(len=128) :: err_msg_local
311 if (.not.module_is_initialized)
then
312 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
315 call lookup_es3_k(temp, esat, nbad)
317 if ( nbad == 0 )
then
318 if(
present(err_msg)) err_msg =
''
320 if(show_all_bad_values)
call show_all_bad ( temp )
321 write(err_msg_local,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
322 if(fms_error_handler(
'lookup_es3',err_msg_local,err_msg))
return
336 real(kind=fms_svp_kind_),
intent(in) :: temp(:)
337 real(kind=fms_svp_kind_),
intent(out) :: esat(:)
338 character(len=*),
intent(out),
optional :: err_msg
340 character(len=54) :: err_msg_local
344 if (.not.module_is_initialized)
then
345 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
348 call lookup_es3_k(temp, esat, nbad)
350 if ( nbad == 0 )
then
351 if(
present(err_msg)) err_msg =
''
353 if(show_bad_value_count_by_slice)
call temp_check ( temp )
354 if(show_all_bad_values)
call show_all_bad ( temp )
355 write(err_msg_local,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
356 if(fms_error_handler(
'lookup_es3',err_msg_local,err_msg))
return
372 real(kind=fms_svp_kind_),
intent(in) :: temp(:,:)
373 real(kind=fms_svp_kind_),
intent(out) :: esat(:,:)
374 character(len=*),
intent(out),
optional :: err_msg
376 character(len=54) :: err_msg_local
380 if (.not.module_is_initialized)
then
381 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
384 call lookup_es3_k(temp, esat, nbad)
386 if ( nbad == 0 )
then
387 if(
present(err_msg)) err_msg =
''
389 if(show_bad_value_count_by_slice)
call temp_check ( temp )
390 if(show_all_bad_values)
call show_all_bad ( temp )
391 write(err_msg_local,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
392 if(fms_error_handler(
'lookup_es3',err_msg_local,err_msg))
return
408 real(kind=fms_svp_kind_),
intent(in) :: temp(:,:,:)
409 real(kind=fms_svp_kind_),
intent(out) :: esat(:,:,:)
410 character(len=*),
intent(out),
optional :: err_msg
413 character(len=128) :: err_msg_tmp
415 if (.not.module_is_initialized)
then
416 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
419 call lookup_es3_k(temp, esat, nbad)
421 if ( nbad == 0 )
then
422 if(
present(err_msg)) err_msg =
''
424 if(show_bad_value_count_by_slice)
call temp_check ( temp )
425 if(show_all_bad_values)
call show_all_bad ( temp )
426 write(err_msg_tmp,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
427 if(fms_error_handler(
'lookup_es3',err_msg_tmp,err_msg))
return
444 real(kind=fms_svp_kind_),
intent(in) :: temp
445 real(kind=fms_svp_kind_),
intent(out) :: desat
446 character(len=*),
intent(out),
optional :: err_msg
449 character(len=128) :: err_msg_local
451 if (.not.module_is_initialized)
then
452 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
455 call lookup_des_k( temp, desat, nbad)
457 if ( nbad == 0 )
then
458 if(
present(err_msg)) err_msg =
''
460 if(show_all_bad_values)
call show_all_bad ( temp )
461 write(err_msg_local,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
462 if(fms_error_handler(
'lookup_des',err_msg_local,err_msg))
return
476 real(kind=fms_svp_kind_),
intent(in) :: temp(:)
477 real(kind=fms_svp_kind_),
intent(out) :: desat(:)
478 character(len=*),
intent(out),
optional :: err_msg
480 character(len=54) :: err_msg_local
484 if (.not.module_is_initialized)
then
485 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
488 if(
present(err_msg)) err_msg=
''
490 call lookup_des_k(temp, desat, nbad)
492 if ( nbad == 0 )
then
493 if(
present(err_msg)) err_msg =
''
495 if(show_bad_value_count_by_slice)
call temp_check ( temp )
496 if(show_all_bad_values)
call show_all_bad ( temp )
497 write(err_msg_local,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
498 if(fms_error_handler(
'lookup_es',err_msg_local,err_msg))
return
513 real(kind=fms_svp_kind_),
intent(in) :: temp(:,:)
514 real(kind=fms_svp_kind_),
intent(out) :: desat(:,:)
515 character(len=*),
intent(out),
optional :: err_msg
517 character(len=54) :: err_msg_local
521 if (.not.module_is_initialized)
then
522 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
525 call lookup_des_k(temp, desat, nbad)
527 if ( nbad == 0 )
then
528 if(
present(err_msg)) err_msg =
''
530 if(show_bad_value_count_by_slice)
call temp_check ( temp )
531 if(show_all_bad_values)
call show_all_bad ( temp )
532 write(err_msg_local,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
533 if(fms_error_handler(
'lookup_es',err_msg_local,err_msg))
return
547 real(kind=fms_svp_kind_),
intent(in) :: temp(:,:,:)
548 real(kind=fms_svp_kind_),
intent(out) :: desat(:,:,:)
549 character(len=*),
intent(out),
optional :: err_msg
552 character(len=128) :: err_msg_tmp
554 if (.not.module_is_initialized)
then
555 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
558 call lookup_des_k( temp, desat, nbad )
560 if ( nbad == 0 )
then
561 if(
present(err_msg)) err_msg=
''
563 if(show_bad_value_count_by_slice)
call temp_check ( temp )
564 if(show_all_bad_values)
call show_all_bad ( temp )
565 write(err_msg_tmp,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
566 if(fms_error_handler(
'lookup_des',err_msg_tmp,err_msg))
return
579 real(kind=fms_svp_kind_),
intent(in) :: temp
580 real(kind=fms_svp_kind_),
intent(out) :: desat
581 character(len=*),
intent(out),
optional :: err_msg
584 character(len=128) :: err_msg_local
586 if (.not.module_is_initialized)
then
587 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
590 call lookup_des2_k( temp, desat, nbad)
592 if ( nbad == 0 )
then
593 if(
present(err_msg)) err_msg =
''
595 if(show_all_bad_values)
call show_all_bad ( temp )
596 write(err_msg_local,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
597 if(fms_error_handler(
'lookup_des2',err_msg_local,err_msg))
return
611 real(kind=fms_svp_kind_),
intent(in) :: temp(:)
612 real(kind=fms_svp_kind_),
intent(out) :: desat(:)
613 character(len=*),
intent(out),
optional :: err_msg
615 character(len=54) :: err_msg_local
619 if (.not.module_is_initialized)
then
620 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
623 if(
present(err_msg)) err_msg=
''
625 call lookup_des2_k(temp, desat, nbad)
627 if ( nbad == 0 )
then
628 if(
present(err_msg)) err_msg =
''
630 if(show_bad_value_count_by_slice)
call temp_check ( temp )
631 if(show_all_bad_values)
call show_all_bad ( temp )
632 write(err_msg_local,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
633 if(fms_error_handler(
'lookup_des2',err_msg_local,err_msg))
return
648 real(kind=fms_svp_kind_),
intent(in) :: temp(:,:)
649 real(kind=fms_svp_kind_),
intent(out) :: desat(:,:)
650 character(len=*),
intent(out),
optional :: err_msg
652 character(len=54) :: err_msg_local
656 if (.not.module_is_initialized)
then
657 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
660 call lookup_des2_k(temp, desat, nbad)
662 if ( nbad == 0 )
then
663 if(
present(err_msg)) err_msg =
''
665 if(show_bad_value_count_by_slice)
call temp_check ( temp )
666 if(show_all_bad_values)
call show_all_bad ( temp )
667 write(err_msg_local,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
668 if(fms_error_handler(
'lookup_des2',err_msg_local,err_msg))
return
682 real(kind=fms_svp_kind_),
intent(in) :: temp(:,:,:)
683 real(kind=fms_svp_kind_),
intent(out) :: desat(:,:,:)
684 character(len=*),
intent(out),
optional :: err_msg
687 character(len=128) :: err_msg_tmp
689 if (.not.module_is_initialized)
then
690 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
693 call lookup_des2_k( temp, desat, nbad )
695 if ( nbad == 0 )
then
696 if(
present(err_msg)) err_msg=
''
698 if(show_bad_value_count_by_slice)
call temp_check ( temp )
699 if(show_all_bad_values)
call show_all_bad ( temp )
700 write(err_msg_tmp,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
701 if(fms_error_handler(
'lookup_des2',err_msg_tmp,err_msg))
return
714 real(kind=fms_svp_kind_),
intent(in) :: temp
715 real(kind=fms_svp_kind_),
intent(out) :: desat
716 character(len=*),
intent(out),
optional :: err_msg
719 character(len=128) :: err_msg_local
721 if (.not.module_is_initialized)
then
722 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
725 call lookup_des3_k( temp, desat, nbad)
727 if ( nbad == 0 )
then
728 if(
present(err_msg)) err_msg =
''
730 if(show_all_bad_values)
call show_all_bad ( temp )
731 write(err_msg_local,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
732 if(fms_error_handler(
'lookup_des3',err_msg_local,err_msg))
return
746 real(kind=fms_svp_kind_),
intent(in) :: temp(:)
747 real(kind=fms_svp_kind_),
intent(out) :: desat(:)
748 character(len=*),
intent(out),
optional :: err_msg
750 character(len=54) :: err_msg_local
754 if (.not.module_is_initialized)
then
755 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
758 if(
present(err_msg)) err_msg=
''
760 call lookup_des3_k(temp, desat, nbad)
762 if ( nbad == 0 )
then
763 if(
present(err_msg)) err_msg =
''
765 if(show_bad_value_count_by_slice)
call temp_check ( temp )
766 if(show_all_bad_values)
call show_all_bad ( temp )
767 write(err_msg_local,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
768 if(fms_error_handler(
'lookup_des3',err_msg_local,err_msg))
return
783 real(kind=fms_svp_kind_),
intent(in) :: temp(:,:)
784 real(kind=fms_svp_kind_),
intent(out) :: desat(:,:)
785 character(len=*),
intent(out),
optional :: err_msg
787 character(len=54) :: err_msg_local
791 if (.not.module_is_initialized)
then
792 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
795 call lookup_des3_k(temp, desat, nbad)
797 if ( nbad == 0 )
then
798 if(
present(err_msg)) err_msg =
''
800 if(show_bad_value_count_by_slice)
call temp_check ( temp )
801 if(show_all_bad_values)
call show_all_bad ( temp )
802 write(err_msg_local,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
803 if(fms_error_handler(
'lookup_des3',err_msg_local,err_msg))
return
817 real(kind=fms_svp_kind_),
intent(in) :: temp(:,:,:)
818 real(kind=fms_svp_kind_),
intent(out) :: desat(:,:,:)
819 character(len=*),
intent(out),
optional :: err_msg
822 character(len=128) :: err_msg_tmp
824 if (.not.module_is_initialized)
then
825 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
828 call lookup_des3_k( temp, desat, nbad )
830 if ( nbad == 0 )
then
831 if(
present(err_msg)) err_msg=
''
833 if(show_bad_value_count_by_slice)
call temp_check ( temp )
834 if(show_all_bad_values)
call show_all_bad ( temp )
835 write(err_msg_tmp,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
836 if(fms_error_handler(
'lookup_des3',err_msg_tmp,err_msg))
return
853 real(kind=fms_svp_kind_),
intent(in) :: temp
854 real(kind=fms_svp_kind_),
intent(out) :: esat
855 real(kind=fms_svp_kind_),
intent(out) :: desat
856 character(len=*),
intent(out),
optional :: err_msg
859 character(len=128) :: err_msg_local
861 if (.not.module_is_initialized)
then
862 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
865 call lookup_es_des_k(temp, esat, desat, nbad)
867 if ( nbad == 0 )
then
868 if(
present(err_msg)) err_msg =
''
870 if(show_all_bad_values)
call show_all_bad ( temp )
871 write(err_msg_local,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
872 if(fms_error_handler(
'lookup_es',err_msg_local,err_msg))
return
887 real(kind=fms_svp_kind_),
dimension(:),
intent(in) :: temp
888 real(kind=fms_svp_kind_),
dimension(:),
intent(out) :: esat
889 real(kind=fms_svp_kind_),
dimension(:),
intent(out) :: desat
890 character(len=*),
intent(out),
optional :: err_msg
893 character(len=128) :: err_msg_local
895 if (.not.module_is_initialized)
then
896 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
899 call lookup_es_des_k(temp, esat, desat, nbad)
901 if ( nbad == 0 )
then
902 if(
present(err_msg)) err_msg =
''
904 if(show_bad_value_count_by_slice)
call temp_check ( temp )
905 if(show_all_bad_values)
call show_all_bad ( temp )
906 write(err_msg_local,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
907 if(fms_error_handler(
'lookup_es',err_msg_local,err_msg))
return
922 real(kind=fms_svp_kind_),
dimension(:,:),
intent(in) :: temp
923 real(kind=fms_svp_kind_),
dimension(:,:),
intent(out) :: esat
924 real(kind=fms_svp_kind_),
dimension(:,:),
intent(out) :: desat
925 character(len=*),
intent(out),
optional :: err_msg
928 character(len=128) :: err_msg_local
930 if (.not.module_is_initialized)
then
931 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
934 call lookup_es_des_k(temp, esat, desat, nbad)
936 if ( nbad == 0 )
then
937 if(
present(err_msg)) err_msg =
''
939 if(show_bad_value_count_by_slice)
call temp_check ( temp )
940 if(show_all_bad_values)
call show_all_bad ( temp )
941 write(err_msg_local,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
942 if(fms_error_handler(
'lookup_es',err_msg_local,err_msg))
return
957 real(kind=fms_svp_kind_),
dimension(:,:,:),
intent(in) :: temp
958 real(kind=fms_svp_kind_),
dimension(:,:,:),
intent(out) :: esat
959 real(kind=fms_svp_kind_),
dimension(:,:,:),
intent(out) :: desat
960 character(len=*),
intent(out),
optional :: err_msg
963 character(len=128) :: err_msg_local
965 if (.not.module_is_initialized)
then
966 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
969 call lookup_es_des_k(temp, esat, desat, nbad)
971 if ( nbad == 0 )
then
972 if(
present(err_msg)) err_msg =
''
974 if(show_bad_value_count_by_slice)
call temp_check ( temp )
975 if(show_all_bad_values)
call show_all_bad ( temp )
976 write(err_msg_local,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
977 if(fms_error_handler(
'lookup_es',err_msg_local,err_msg))
return
993 real(kind=fms_svp_kind_),
intent(in) :: temp
994 real(kind=fms_svp_kind_),
intent(out) :: esat
995 real(kind=fms_svp_kind_),
intent(out) :: desat
996 character(len=*),
intent(out),
optional :: err_msg
999 character(len=128) :: err_msg_local
1001 if (.not.module_is_initialized)
then
1002 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
1005 call lookup_es2_des2_k(temp, esat, desat, nbad)
1007 if ( nbad == 0 )
then
1008 if(
present(err_msg)) err_msg =
''
1010 if(show_all_bad_values)
call show_all_bad ( temp )
1011 write(err_msg_local,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
1012 if(fms_error_handler(
'lookup_es2_des2',err_msg_local,err_msg))
return
1027 real(kind=fms_svp_kind_),
dimension(:),
intent(in) :: temp
1028 real(kind=fms_svp_kind_),
dimension(:),
intent(out) :: esat
1029 real(kind=fms_svp_kind_),
dimension(:),
intent(out) :: desat
1030 character(len=*),
intent(out),
optional :: err_msg
1033 character(len=128) :: err_msg_local
1035 if (.not.module_is_initialized)
then
1036 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
1039 call lookup_es2_des2_k(temp, esat, desat, nbad)
1041 if ( nbad == 0 )
then
1042 if(
present(err_msg)) err_msg =
''
1044 if(show_bad_value_count_by_slice)
call temp_check ( temp )
1045 if(show_all_bad_values)
call show_all_bad ( temp )
1046 write(err_msg_local,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
1047 if(fms_error_handler(
'lookup_es2_des2',err_msg_local,err_msg))
return
1062 real(kind=fms_svp_kind_),
dimension(:,:),
intent(in) :: temp
1063 real(kind=fms_svp_kind_),
dimension(:,:),
intent(out) :: esat
1064 real(kind=fms_svp_kind_),
dimension(:,:),
intent(out) :: desat
1065 character(len=*),
intent(out),
optional :: err_msg
1068 character(len=128) :: err_msg_local
1070 if (.not.module_is_initialized)
then
1071 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
1074 call lookup_es2_des2_k(temp, esat, desat, nbad)
1076 if ( nbad == 0 )
then
1077 if(
present(err_msg)) err_msg =
''
1079 if(show_bad_value_count_by_slice)
call temp_check ( temp )
1080 if(show_all_bad_values)
call show_all_bad ( temp )
1081 write(err_msg_local,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
1082 if(fms_error_handler(
'lookup_es2_des2',err_msg_local,err_msg))
return
1097 real(kind=fms_svp_kind_),
dimension(:,:,:),
intent(in) :: temp
1098 real(kind=fms_svp_kind_),
dimension(:,:,:),
intent(out) :: esat
1099 real(kind=fms_svp_kind_),
dimension(:,:,:),
intent(out) :: desat
1100 character(len=*),
intent(out),
optional :: err_msg
1103 character(len=128) :: err_msg_local
1105 if (.not.module_is_initialized)
then
1106 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
1109 call lookup_es2_des2_k(temp, esat, desat, nbad)
1111 if ( nbad == 0 )
then
1112 if(
present(err_msg)) err_msg =
''
1114 if(show_bad_value_count_by_slice)
call temp_check ( temp )
1115 if(show_all_bad_values)
call show_all_bad ( temp )
1116 write(err_msg_local,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
1117 if(fms_error_handler(
'lookup_es2_des2',err_msg_local,err_msg))
return
1134 real(kind=fms_svp_kind_),
intent(in) :: temp
1135 real(kind=fms_svp_kind_),
intent(out) :: esat
1136 real(kind=fms_svp_kind_),
intent(out) :: desat
1137 character(len=*),
intent(out),
optional :: err_msg
1140 character(len=128) :: err_msg_local
1142 if (.not.module_is_initialized)
then
1143 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
1146 call lookup_es3_des3_k(temp, esat, desat, nbad)
1148 if ( nbad == 0 )
then
1149 if(
present(err_msg)) err_msg =
''
1151 if(show_all_bad_values)
call show_all_bad ( temp )
1152 write(err_msg_local,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
1153 if(fms_error_handler(
'lookup_es3_des3',err_msg_local,err_msg))
return
1168 real(kind=fms_svp_kind_),
dimension(:),
intent(in) :: temp
1169 real(kind=fms_svp_kind_),
dimension(:),
intent(out) :: esat
1170 real(kind=fms_svp_kind_),
dimension(:),
intent(out) :: desat
1171 character(len=*),
intent(out),
optional :: err_msg
1174 character(len=128) :: err_msg_local
1176 if (.not.module_is_initialized)
then
1177 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
1180 call lookup_es3_des3_k(temp, esat, desat, nbad)
1182 if ( nbad == 0 )
then
1183 if(
present(err_msg)) err_msg =
''
1185 if(show_bad_value_count_by_slice)
call temp_check ( temp )
1186 if(show_all_bad_values)
call show_all_bad ( temp )
1187 write(err_msg_local,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
1188 if(fms_error_handler(
'lookup_es3_des3',err_msg_local,err_msg))
return
1203 real(kind=fms_svp_kind_),
dimension(:,:),
intent(in) :: temp
1204 real(kind=fms_svp_kind_),
dimension(:,:),
intent(out) :: esat
1205 real(kind=fms_svp_kind_),
dimension(:,:),
intent(out) :: desat
1206 character(len=*),
intent(out),
optional :: err_msg
1209 character(len=128) :: err_msg_local
1211 if (.not.module_is_initialized)
then
1212 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
1215 call lookup_es3_des3_k(temp, esat, desat, nbad)
1217 if ( nbad == 0 )
then
1218 if(
present(err_msg)) err_msg =
''
1220 if(show_bad_value_count_by_slice)
call temp_check ( temp )
1221 if(show_all_bad_values)
call show_all_bad ( temp )
1222 write(err_msg_local,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
1223 if(fms_error_handler(
'lookup_es3_des3',err_msg_local,err_msg))
return
1238 real(kind=fms_svp_kind_),
dimension(:,:,:),
intent(in) :: temp
1239 real(kind=fms_svp_kind_),
dimension(:,:,:),
intent(out) :: esat
1240 real(kind=fms_svp_kind_),
dimension(:,:,:),
intent(out) :: desat
1241 character(len=*),
intent(out),
optional :: err_msg
1244 character(len=128) :: err_msg_local
1246 if (.not.module_is_initialized)
then
1247 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
1250 call lookup_es3_des3_k(temp, esat, desat, nbad)
1252 if ( nbad == 0 )
then
1253 if(
present(err_msg)) err_msg =
''
1255 if(show_bad_value_count_by_slice)
call temp_check ( temp )
1256 if(show_all_bad_values)
call show_all_bad ( temp )
1257 write(err_msg_local,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
1258 if(fms_error_handler(
'lookup_es3_des3',err_msg_local,err_msg))
return
1276 err_msg, es_over_liq, es_over_liq_and_ice )
1278 real(kind=fms_svp_kind_),
intent(in) :: temp
1279 real(kind=fms_svp_kind_),
intent(in) :: press
1280 real(kind=fms_svp_kind_),
intent(out) :: qsat
1281 real(kind=fms_svp_kind_),
intent(in),
optional :: q
1282 real(kind=fms_svp_kind_),
intent(in),
optional :: hc
1283 real(kind=fms_svp_kind_),
intent(out),
optional :: dqsdt
1284 real(kind=fms_svp_kind_),
intent(out),
optional :: esat
1285 character(len=*),
intent(out),
optional :: err_msg
1286 logical,
intent(in),
optional :: es_over_liq
1287 logical,
intent(in),
optional :: es_over_liq_and_ice
1290 character(len=128) :: err_msg_tmp
1294 real(kind=fms_svp_kind_),
parameter :: epsilo_loc=real(epsilo,fms_svp_kind_)
1295 real(kind=fms_svp_kind_),
parameter :: zvirl=real(zvir,fms_svp_kind_)
1297 if (.not.module_is_initialized)
then
1298 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
1301 if (
present(es_over_liq))
then
1302 if (.not. (construct_table_wrt_liq))
then
1303 call error_mesg (
'compute_qs', &
1304 'requesting es wrt liq, but that table not constructed', &
1308 if (
present(es_over_liq_and_ice))
then
1309 if (.not. (construct_table_wrt_liq_and_ice))
then
1310 call error_mesg (
'compute_qs', &
1311 'requesting es wrt liq and ice, but that table not constructed', &
1316 call compute_qs_k (temp, press, epsilo_loc, zvirl, qsat, nbad, q, hc, &
1317 dqsdt, esat, es_over_liq, es_over_liq_and_ice)
1319 if ( nbad == 0 )
then
1320 if(
present(err_msg)) err_msg =
''
1322 if(show_all_bad_values)
call show_all_bad ( temp )
1323 write(err_msg_tmp,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
1324 if(fms_error_handler(
'compute_qs',err_msg_tmp,err_msg))
return
1342 err_msg, es_over_liq, es_over_liq_and_ice )
1344 real(kind=fms_svp_kind_),
intent(in) :: temp(:)
1345 real(kind=fms_svp_kind_),
intent(in) :: press(:)
1346 real(kind=fms_svp_kind_),
intent(out) :: qsat(:)
1347 real(kind=fms_svp_kind_),
intent(in),
optional :: q(:)
1348 real(kind=fms_svp_kind_),
intent(in),
optional :: hc
1349 real(kind=fms_svp_kind_),
intent(out),
optional :: dqsdt(:)
1350 real(kind=fms_svp_kind_),
intent(out),
optional :: esat(:)
1351 character(len=*),
intent(out),
optional :: err_msg
1352 logical,
intent(in),
optional :: es_over_liq
1353 logical,
intent(in),
optional :: es_over_liq_and_ice
1356 character(len=128) :: err_msg_tmp
1359 real(kind=fms_svp_kind_),
parameter :: epsilol=real(epsilo,fms_svp_kind_)
1360 real(kind=fms_svp_kind_),
parameter :: zvirl=real(zvir,fms_svp_kind_)
1362 if (.not.module_is_initialized)
then
1363 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
1366 if (
present(es_over_liq))
then
1367 if (.not. (construct_table_wrt_liq))
then
1368 call error_mesg (
'compute_qs', &
1369 'requesting es wrt liq, but that table not constructed', &
1373 if (
present(es_over_liq_and_ice))
then
1374 if (.not. (construct_table_wrt_liq_and_ice))
then
1375 call error_mesg (
'compute_qs', &
1376 'requesting es wrt liq and ice, but that table not constructed', &
1382 call compute_qs_k (temp, press, epsilol, zvirl, qsat, nbad, q, hc, &
1383 dqsdt, esat, es_over_liq, es_over_liq_and_ice)
1385 if ( nbad == 0 )
then
1386 if(
present(err_msg)) err_msg =
''
1388 if(show_bad_value_count_by_slice)
call temp_check ( temp )
1389 if(show_all_bad_values)
call show_all_bad ( temp )
1390 write(err_msg_tmp,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
1391 if(fms_error_handler(
'compute_qs',err_msg_tmp,err_msg))
return
1410 err_msg, es_over_liq, es_over_liq_and_ice )
1412 real(kind=fms_svp_kind_),
intent(in) :: temp(:,:)
1413 real(kind=fms_svp_kind_),
intent(in) :: press(:,:)
1414 real(kind=fms_svp_kind_),
intent(out) :: qsat(:,:)
1415 real(kind=fms_svp_kind_),
intent(in),
optional :: q(:,:)
1416 real(kind=fms_svp_kind_),
intent(in),
optional :: hc
1417 real(kind=fms_svp_kind_),
intent(out),
optional :: dqsdt(:,:)
1418 real(kind=fms_svp_kind_),
intent(out),
optional :: esat(:,:)
1419 character(len=*),
intent(out),
optional :: err_msg
1420 logical,
intent(in),
optional :: es_over_liq
1421 logical,
intent(in),
optional :: es_over_liq_and_ice
1424 character(len=128) :: err_msg_tmp
1427 real(kind=fms_svp_kind_),
parameter :: epsilol=real(epsilo,fms_svp_kind_)
1428 real(kind=fms_svp_kind_),
parameter :: zvirl=real(zvir,fms_svp_kind_)
1430 if (.not.module_is_initialized)
then
1431 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
1434 if (
present(es_over_liq))
then
1435 if (.not. (construct_table_wrt_liq))
then
1436 call error_mesg (
'compute_qs', &
1437 'requesting es wrt liq, but that table not constructed', &
1441 if (
present(es_over_liq_and_ice))
then
1442 if (.not. (construct_table_wrt_liq_and_ice))
then
1443 call error_mesg (
'compute_qs', &
1444 'requesting es wrt liq and ice, but that table not constructed', &
1450 call compute_qs_k (temp, press, epsilol, zvirl, qsat, nbad, q, hc, &
1451 dqsdt, esat, es_over_liq, es_over_liq_and_ice)
1453 if ( nbad == 0 )
then
1454 if(
present(err_msg)) err_msg =
''
1456 if(show_bad_value_count_by_slice)
call temp_check ( temp )
1457 if(show_all_bad_values)
call show_all_bad ( temp )
1458 write(err_msg_tmp,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
1459 if(fms_error_handler(
'compute_qs',err_msg_tmp,err_msg))
return
1477 err_msg, es_over_liq, es_over_liq_and_ice )
1479 real(kind=fms_svp_kind_),
intent(in) :: temp(:,:,:)
1480 real(kind=fms_svp_kind_),
intent(in) :: press(:,:,:)
1481 real(kind=fms_svp_kind_),
intent(out) :: qsat(:,:,:)
1482 real(kind=fms_svp_kind_),
intent(in),
optional :: q(:,:,:)
1483 real(kind=fms_svp_kind_),
intent(in),
optional :: hc
1484 real(kind=fms_svp_kind_),
intent(out),
optional :: dqsdt(:,:,:)
1485 real(kind=fms_svp_kind_),
intent(out),
optional :: esat(:,:,:)
1486 character(len=*),
intent(out),
optional :: err_msg
1487 logical,
intent(in),
optional :: es_over_liq
1488 logical,
intent(in),
optional :: es_over_liq_and_ice
1491 character(len=128) :: err_msg_tmp
1494 real(kind=fms_svp_kind_),
parameter :: epsilol=real(epsilo,fms_svp_kind_)
1495 real(kind=fms_svp_kind_),
parameter :: zvirl=real(zvir,fms_svp_kind_)
1497 if (.not.module_is_initialized)
then
1498 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
1501 if (
present(es_over_liq))
then
1502 if (.not. (construct_table_wrt_liq))
then
1503 call error_mesg (
'compute_qs', &
1504 'requesting es wrt liq, but that table not constructed', &
1508 if (
present(es_over_liq_and_ice))
then
1509 if (.not. (construct_table_wrt_liq_and_ice))
then
1510 call error_mesg (
'compute_qs', &
1511 'requesting es wrt liq and ice, but that table not constructed', &
1517 call compute_qs_k (temp, press, epsilol, zvirl, qsat, nbad, q, hc, &
1518 dqsdt, esat, es_over_liq, es_over_liq_and_ice)
1521 if ( nbad == 0 )
then
1522 if(
present(err_msg)) err_msg =
''
1524 if(show_bad_value_count_by_slice)
call temp_check ( temp )
1525 if(show_all_bad_values)
call show_all_bad ( temp )
1526 write(err_msg_tmp,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
1527 if(fms_error_handler(
'compute_qs',err_msg_tmp,err_msg))
return
1546 err_msg, es_over_liq, es_over_liq_and_ice )
1548 real(kind=fms_svp_kind_),
intent(in) :: temp
1549 real(kind=fms_svp_kind_),
intent(in) :: press
1550 real(kind=fms_svp_kind_),
intent(out) :: mrsat
1551 real(kind=fms_svp_kind_),
intent(in),
optional :: mr
1552 real(kind=fms_svp_kind_),
intent(in),
optional :: hc
1553 real(kind=fms_svp_kind_),
intent(out),
optional :: dmrsdt
1554 real(kind=fms_svp_kind_),
intent(out),
optional :: esat
1555 character(len=*),
intent(out),
optional :: err_msg
1556 logical,
intent(in),
optional :: es_over_liq
1557 logical,
intent(in),
optional :: es_over_liq_and_ice
1560 character(len=128) :: err_msg_tmp
1563 real(kind=fms_svp_kind_),
parameter :: epsilol=real(epsilo,fms_svp_kind_)
1564 real(kind=fms_svp_kind_),
parameter :: zvirl=real(zvir,fms_svp_kind_)
1566 if (.not.module_is_initialized)
then
1567 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
1570 if (
present(es_over_liq))
then
1571 if (.not. (construct_table_wrt_liq))
then
1572 call error_mesg (
'compute_mrs', &
1573 'requesting es wrt liq, but that table not constructed', &
1577 if (
present(es_over_liq_and_ice))
then
1578 if (.not. (construct_table_wrt_liq_and_ice))
then
1579 call error_mesg (
'compute_qs', &
1580 'requesting es wrt liq and ice, but that table not constructed', &
1585 call compute_mrs_k (temp, press, epsilol, zvirl, mrsat, nbad, mr, &
1586 hc, dmrsdt, esat, es_over_liq, es_over_liq_and_ice)
1588 if ( nbad == 0 )
then
1589 if(
present(err_msg)) err_msg =
''
1591 if(show_all_bad_values)
call show_all_bad ( temp )
1592 write(err_msg_tmp,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
1593 if(fms_error_handler(
'compute_mrs',err_msg_tmp,err_msg))
return
1612 err_msg, es_over_liq, es_over_liq_and_ice )
1614 real(kind=fms_svp_kind_),
intent(in) :: temp(:)
1615 real(kind=fms_svp_kind_),
intent(in) :: press(:)
1616 real(kind=fms_svp_kind_),
intent(out) :: mrsat(:)
1617 real(kind=fms_svp_kind_),
intent(in),
optional :: mr(:)
1618 real(kind=fms_svp_kind_),
intent(in),
optional :: hc
1619 real(kind=fms_svp_kind_),
intent(out),
optional :: dmrsdt(:)
1620 real(kind=fms_svp_kind_),
intent(out),
optional :: esat(:)
1621 character(len=*),
intent(out),
optional :: err_msg
1622 logical,
intent(in),
optional :: es_over_liq
1623 logical,
intent(in),
optional :: es_over_liq_and_ice
1626 character(len=128) :: err_msg_tmp
1629 real(kind=fms_svp_kind_),
parameter :: epsilol=real(epsilo,fms_svp_kind_)
1630 real(kind=fms_svp_kind_),
parameter :: zvirl=real(zvir,fms_svp_kind_)
1632 if (.not.module_is_initialized)
then
1633 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
1636 if (
present(es_over_liq))
then
1637 if (.not. (construct_table_wrt_liq))
then
1638 call error_mesg (
'compute_mrs', &
1639 'requesting es wrt liq, but that table not constructed', &
1643 if (
present(es_over_liq_and_ice))
then
1644 if (.not. (construct_table_wrt_liq_and_ice))
then
1645 call error_mesg (
'compute_qs', &
1646 'requesting es wrt liq and ice, but that table not constructed', &
1653 call compute_mrs_k (temp, press, epsilol, zvirl, mrsat, nbad, mr, &
1654 hc, dmrsdt, esat, es_over_liq, es_over_liq_and_ice)
1656 if ( nbad == 0 )
then
1657 if(
present(err_msg)) err_msg =
''
1659 if(show_bad_value_count_by_slice)
call temp_check ( temp )
1660 if(show_all_bad_values)
call show_all_bad ( temp )
1661 write(err_msg_tmp,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
1662 if(fms_error_handler(
'compute_mrs',err_msg_tmp,err_msg))
return
1680 err_msg, es_over_liq, es_over_liq_and_ice )
1682 real(kind=fms_svp_kind_),
intent(in) :: temp(:,:)
1683 real(kind=fms_svp_kind_),
intent(in) :: press(:,:)
1684 real(kind=fms_svp_kind_),
intent(out) :: mrsat(:,:)
1685 real(kind=fms_svp_kind_),
intent(in),
optional :: mr(:,:)
1686 real(kind=fms_svp_kind_),
intent(in),
optional :: hc
1687 real(kind=fms_svp_kind_),
intent(out),
optional :: dmrsdt(:,:)
1688 real(kind=fms_svp_kind_),
intent(out),
optional :: esat(:,:)
1689 character(len=*),
intent(out),
optional :: err_msg
1690 logical,
intent(in),
optional :: es_over_liq
1691 logical,
intent(in),
optional :: es_over_liq_and_ice
1694 character(len=128) :: err_msg_tmp
1697 real(kind=fms_svp_kind_),
parameter :: epsilol=real(epsilo,fms_svp_kind_)
1698 real(kind=fms_svp_kind_),
parameter :: zvirl=real(zvir,fms_svp_kind_)
1700 if (.not.module_is_initialized)
then
1701 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
1704 if (
present(es_over_liq))
then
1705 if (.not. (construct_table_wrt_liq))
then
1706 call error_mesg (
'compute_mrs', &
1707 'requesting es wrt liq, but that table not constructed', &
1711 if (
present(es_over_liq_and_ice))
then
1712 if (.not. (construct_table_wrt_liq_and_ice))
then
1713 call error_mesg (
'compute_qs', &
1714 'requesting es wrt liq and ice, but that table not constructed', &
1721 call compute_mrs_k (temp, press, epsilol, zvirl, mrsat, nbad, mr, &
1722 hc, dmrsdt, esat, es_over_liq, es_over_liq_and_ice)
1724 if ( nbad == 0 )
then
1725 if(
present(err_msg)) err_msg =
''
1727 if(show_bad_value_count_by_slice)
call temp_check ( temp )
1728 if(show_all_bad_values)
call show_all_bad ( temp )
1729 write(err_msg_tmp,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
1730 if(fms_error_handler(
'compute_mrs',err_msg_tmp,err_msg))
return
1748 err_msg, es_over_liq, es_over_liq_and_ice )
1750 real(kind=fms_svp_kind_),
intent(in) :: temp(:,:,:)
1751 real(kind=fms_svp_kind_),
intent(in) :: press(:,:,:)
1752 real(kind=fms_svp_kind_),
intent(out) :: mrsat(:,:,:)
1753 real(kind=fms_svp_kind_),
intent(in),
optional :: mr(:,:,:)
1754 real(kind=fms_svp_kind_),
intent(in),
optional :: hc
1755 real(kind=fms_svp_kind_),
intent(out),
optional :: dmrsdt(:,:,:)
1756 real(kind=fms_svp_kind_),
intent(out),
optional :: esat(:,:,:)
1757 character(len=*),
intent(out),
optional :: err_msg
1758 logical,
intent(in),
optional :: es_over_liq
1759 logical,
intent(in),
optional :: es_over_liq_and_ice
1762 character(len=128) :: err_msg_tmp
1765 real(kind=fms_svp_kind_),
parameter :: epsilol=real(epsilo,fms_svp_kind_)
1766 real(kind=fms_svp_kind_),
parameter :: zvirl=real(zvir,fms_svp_kind_)
1768 if (.not.module_is_initialized)
then
1769 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
1772 if (
present(es_over_liq))
then
1773 if (.not. (construct_table_wrt_liq))
then
1774 call error_mesg (
'compute_mrs', &
1775 'requesting es wrt liq, but that table not constructed', &
1779 if (
present(es_over_liq_and_ice))
then
1780 if (.not. (construct_table_wrt_liq_and_ice))
then
1781 call error_mesg (
'compute_qs', &
1782 'requesting es wrt liq and ice, but that table not constructed', &
1789 call compute_mrs_k (temp, press, epsilol, zvirl, mrsat, nbad, mr, &
1790 hc, dmrsdt, esat, es_over_liq, es_over_liq_and_ice)
1792 if ( nbad == 0 )
then
1793 if(
present(err_msg)) err_msg =
''
1795 if(show_bad_value_count_by_slice)
call temp_check ( temp )
1796 if(show_all_bad_values)
call show_all_bad ( temp )
1797 write(err_msg_tmp,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
1798 if(fms_error_handler(
'compute_mrs',err_msg_tmp,err_msg))
return
1807 real(kind=fms_svp_kind_) ,
intent(in) :: temp(:)
1808 integer :: nbad, ind, i
1812 real(fms_svp_kind_) :: dtinvll
1813 real(fms_svp_kind_) :: tminll
1814 real(fms_svp_kind_) :: tepsll
1816 dtinvll=real(dtinv,fms_svp_kind_)
1817 tminll=real(tmin,fms_svp_kind_)
1818 tepsll=real(teps,fms_svp_kind_)
1821 do i = 1,
size(temp,1)
1822 ind = int( dtinvll*(temp(i)-tminll + tepsll) )
1823 if (ind < 0 .or. ind > nlim) nbad = nbad+1
1831 real(kind=fms_svp_kind_) ,
intent(in) :: temp(:,:)
1836 do j = 1,
size(temp,2)
1837 nbad = nbad + check_1d( temp(:,j) )
1844 real(kind=fms_svp_kind_) ,
intent(in) :: temp(:)
1848 write(iunit,*)
'Bad temperatures (dimension 1): ', (check_1d(temp(i:i)),i=1,
size(temp,1))
1855 real(kind=fms_svp_kind_) ,
intent(in) :: temp(:,:)
1856 integer :: i, j, iunit
1859 write(iunit,*)
'Bad temperatures (dimension 1): ', (check_1d(temp(i,:)),i=1,
size(temp,1))
1860 write(iunit,*)
'Bad temperatures (dimension 2): ', (check_1d(temp(:,j)),j=1,
size(temp,2))
1867 real(kind=fms_svp_kind_),
intent(in) :: temp(:,:,:)
1868 integer :: i, j, k, iunit
1871 write(iunit,*)
'Bad temperatures (dimension 1): ', (check_2d(temp(i,:,:)),i=1,
size(temp,1))
1872 write(iunit,*)
'Bad temperatures (dimension 2): ', (check_2d(temp(:,j,:)),j=1,
size(temp,2))
1873 write(iunit,*)
'Bad temperatures (dimension 3): ', (check_2d(temp(:,:,k)),k=1,
size(temp,3))
1880 real(kind=fms_svp_kind_) ,
intent(in) :: temp
1881 integer :: ind, iunit
1884 real(FMS_SVP_KIND_) :: dtinvll
1885 real(FMS_SVP_KIND_) :: tminll
1886 real(FMS_SVP_KIND_) :: tepsll
1888 dtinvll=real(dtinv,fms_svp_kind_)
1889 tminll=real(tmin,fms_svp_kind_)
1890 tepsll=real(teps,fms_svp_kind_)
1893 ind = int( dtinvll*(temp-tminll+tepsll) )
1894 if (ind < 0 .or. ind > nlim)
then
1895 write(iunit,
'(a,e10.3,a,i6)')
'Bad temperature=',temp,
' pe=',
mpp_pe()
1903 real(kind=fms_svp_kind_) ,
intent(in) :: temp(:)
1904 integer :: i, ind, iunit
1907 real(FMS_SVP_KIND_) :: dtinvll
1908 real(FMS_SVP_KIND_) :: tminll
1909 real(FMS_SVP_KIND_) :: tepsll
1911 dtinvll=real(dtinv,fms_svp_kind_)
1912 tminll=real(tmin,fms_svp_kind_)
1913 tepsll=real(teps,fms_svp_kind_)
1917 ind = int( dtinvll*(temp(i)-tminll+tepsll) )
1918 if (ind < 0 .or. ind > nlim)
then
1919 write(iunit,
'(a,e10.3,a,i4,a,i6)')
'Bad temperature=',temp(i),
' at i=',i,
' pe=',
mpp_pe()
1928 real(kind=fms_svp_kind_) ,
intent(in) :: temp(:,:)
1929 integer :: i, j, ind, iunit
1932 real(FMS_SVP_KIND_) :: dtinvll
1933 real(FMS_SVP_KIND_) :: tminll
1934 real(FMS_SVP_KIND_) :: tepsll
1936 dtinvll=real(dtinv,fms_svp_kind_)
1937 tminll=real(tmin,fms_svp_kind_)
1938 tepsll=real(teps,fms_svp_kind_)
1943 ind = int( dtinvll*(temp(i,j)-tminll+tepsll) )
1944 if (ind < 0 .or. ind > nlim)
then
1945 write(iunit,
'(a,e10.3,a,i4,a,i4,a,i6)')
'Bad temperature=',temp(i,j),
' at i=',i,
' j=',j,
' pe=',
mpp_pe()
1955 real(kind=fms_svp_kind_),
intent(in) :: temp(:,:,:)
1956 integer :: i, j, k, ind, iunit
1959 real(FMS_SVP_KIND_) :: dtinvll
1960 real(FMS_SVP_KIND_) :: tminll
1961 real(FMS_SVP_KIND_) :: tepsll
1963 dtinvll=real(dtinv,fms_svp_kind_)
1964 tminll=real(tmin,fms_svp_kind_)
1965 tepsll=real(teps,fms_svp_kind_)
1971 ind = int( dtinvll*(temp(i,j,k)-tminll+tepsll) )
1972 if (ind < 0 .or. ind > nlim)
then
1973 write(iunit,
'(a,e10.3,a,i4,a,i4,a,i4,a,i6)')
'Bad temperature=',temp(i,j,k),
' at i=',i,
' j=',j,
' k=',k, &
integer function mpp_pe()
Returns processor ID.
subroutine lookup_es_3d_(temp, esat, err_msg)
subroutine lookup_des_2d_(temp, desat, err_msg)
subroutine lookup_des_1d_(temp, desat, err_msg)
subroutine lookup_es3_des3_0d_(temp, esat, desat, err_msg)
subroutine lookup_des3_1d_(temp, desat, err_msg)
subroutine lookup_es2_3d_(temp, esat, err_msg)
subroutine lookup_es2_des2_1d_(temp, esat, desat, err_msg)
subroutine temp_check_2d_(temp)
subroutine compute_qs_2d_(temp, press, qsat, q, hc, dqsdT, esat, err_msg, es_over_liq, es_over_liq_and_ice)
subroutine lookup_es_des_1d_(temp, esat, desat, err_msg)
subroutine lookup_es_des_3d_(temp, esat, desat, err_msg)
subroutine lookup_des3_2d_(temp, desat, err_msg)
subroutine compute_qs_1d_(temp, press, qsat, q, hc, dqsdT, esat, err_msg, es_over_liq, es_over_liq_and_ice)
subroutine lookup_des3_0d_(temp, desat, err_msg)
subroutine lookup_es2_1d_(temp, esat, err_msg)
subroutine compute_mrs_3d_(temp, press, mrsat, mr, hc, dmrsdT, esat, err_msg, es_over_liq, es_over_liq_and_ice)
subroutine lookup_des_3d_(temp, desat, err_msg)
subroutine lookup_es3_1d_(temp, esat, err_msg)
subroutine lookup_es_2d_(temp, esat, err_msg)
subroutine lookup_es2_des2_3d_(temp, esat, desat, err_msg)
subroutine temp_check_3d_(temp)
subroutine lookup_des3_3d_(temp, desat, err_msg)
subroutine lookup_es3_des3_3d_(temp, esat, desat, err_msg)
subroutine lookup_es3_3d_(temp, esat, err_msg)
subroutine compute_qs_3d_(temp, press, qsat, q, hc, dqsdT, esat, err_msg, es_over_liq, es_over_liq_and_ice)
subroutine lookup_es_des_0d_(temp, esat, desat, err_msg)
subroutine lookup_es_des_2d_(temp, esat, desat, err_msg)
subroutine compute_mrs_0d_(temp, press, mrsat, mr, hc, dmrsdT, esat, err_msg, es_over_liq, es_over_liq_and_ice)
subroutine lookup_es2_0d_(temp, esat, err_msg)
subroutine lookup_es2_2d_(temp, esat, err_msg)
subroutine lookup_des2_0d_(temp, desat, err_msg)
subroutine lookup_es_1d_(temp, esat, err_msg)
subroutine show_all_bad_2d_(temp)
subroutine show_all_bad_1d_(temp)
subroutine lookup_es3_des3_2d_(temp, esat, desat, err_msg)
subroutine compute_mrs_2d_(temp, press, mrsat, mr, hc, dmrsdT, esat, err_msg, es_over_liq, es_over_liq_and_ice)
subroutine temp_check_1d_(temp)
subroutine compute_mrs_1d_(temp, press, mrsat, mr, hc, dmrsdT, esat, err_msg, es_over_liq, es_over_liq_and_ice)
subroutine lookup_des2_3d_(temp, desat, err_msg)
subroutine lookup_es3_2d_(temp, esat, err_msg)
subroutine lookup_des2_1d_(temp, desat, err_msg)
subroutine lookup_es_0d_(temp, esat, err_msg)
subroutine lookup_es2_des2_0d_(temp, esat, desat, err_msg)
integer function check_2d_(temp)
subroutine lookup_es2_des2_2d_(temp, esat, desat, err_msg)
subroutine lookup_des_0d_(temp, desat, err_msg)
subroutine show_all_bad_0d_(temp)
subroutine lookup_des2_2d_(temp, desat, err_msg)
integer function check_1d_(temp)
subroutine compute_qs_0d_(temp, press, qsat, q, hc, dqsdT, esat, err_msg, es_over_liq, es_over_liq_and_ice)
subroutine lookup_es3_des3_1d_(temp, esat, desat, err_msg)
subroutine show_all_bad_3d_(temp)
subroutine lookup_es3_0d_(temp, esat, err_msg)