29 real(kind=fms_svp_kind_),
intent(in) :: temp
30 real(kind=fms_svp_kind_),
intent(out) :: esat
31 character(len=*),
intent(out),
optional :: err_msg
34 character(len=128) :: err_msg_local
36 if (.not.module_is_initialized)
then
37 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
40 call lookup_es_k(temp, esat, nbad)
43 if(
present(err_msg)) err_msg =
''
45 if(show_all_bad_values)
call show_all_bad ( temp )
46 write(err_msg_local,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
47 if(fms_error_handler(
'lookup_es',err_msg_local,err_msg))
return
61 real(kind=fms_svp_kind_),
intent(in) :: temp(:)
62 real(kind=fms_svp_kind_),
intent(out) :: esat(:)
63 character(len=*),
intent(out),
optional :: err_msg
65 character(len=54) :: err_msg_local
69 if (.not.module_is_initialized)
then
70 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
73 call lookup_es_k(temp, esat, nbad)
76 if(
present(err_msg)) err_msg =
''
78 if(show_bad_value_count_by_slice)
call temp_check ( temp )
79 if(show_all_bad_values)
call show_all_bad ( temp )
80 write(err_msg_local,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
81 if(fms_error_handler(
'lookup_es',err_msg_local,err_msg))
return
97 real(kind=fms_svp_kind_),
intent(in) :: temp(:,:)
98 real(kind=fms_svp_kind_),
intent(out) :: esat(:,:)
99 character(len=*),
intent(out),
optional :: err_msg
101 character(len=54) :: err_msg_local
105 if (.not.module_is_initialized)
then
106 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
109 call lookup_es_k(temp, esat, nbad)
111 if ( nbad == 0 )
then
112 if(
present(err_msg)) err_msg =
''
114 if(show_bad_value_count_by_slice)
call temp_check ( temp )
115 if(show_all_bad_values)
call show_all_bad ( temp )
116 write(err_msg_local,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
117 if(fms_error_handler(
'lookup_es',err_msg_local,err_msg))
return
133 real(kind=fms_svp_kind_),
intent(in) :: temp(:,:,:)
134 real(kind=fms_svp_kind_),
intent(out) :: esat(:,:,:)
135 character(len=*),
intent(out),
optional :: err_msg
138 character(len=128) :: err_msg_tmp
140 if (.not.module_is_initialized)
then
141 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
144 call lookup_es_k(temp, esat, nbad)
146 if ( nbad == 0 )
then
147 if(
present(err_msg)) err_msg =
''
149 if(show_bad_value_count_by_slice)
call temp_check ( temp )
150 if(show_all_bad_values)
call show_all_bad ( temp )
151 write(err_msg_tmp,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
152 if(fms_error_handler(
'lookup_es',err_msg_tmp,err_msg))
return
166 real(kind=fms_svp_kind_),
intent(in) :: temp
167 real(kind=fms_svp_kind_),
intent(out) :: esat
168 character(len=*),
intent(out),
optional :: err_msg
171 character(len=128) :: err_msg_local
173 if (.not.module_is_initialized)
then
174 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
177 call lookup_es2_k(temp, esat, nbad)
179 if ( nbad == 0 )
then
180 if(
present(err_msg)) err_msg =
''
182 if(show_all_bad_values)
call show_all_bad ( temp )
183 write(err_msg_local,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
184 if(fms_error_handler(
'lookup_es2',err_msg_local,err_msg))
return
198 real(kind=fms_svp_kind_),
intent(in) :: temp(:)
199 real(kind=fms_svp_kind_),
intent(out) :: esat(:)
200 character(len=*),
intent(out),
optional :: err_msg
202 character(len=54) :: err_msg_local
206 if (.not.module_is_initialized)
then
207 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
210 call lookup_es2_k(temp, esat, nbad)
212 if ( nbad == 0 )
then
213 if(
present(err_msg)) err_msg =
''
215 if(show_bad_value_count_by_slice)
call temp_check ( temp )
216 if(show_all_bad_values)
call show_all_bad ( temp )
217 write(err_msg_local,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
218 if(fms_error_handler(
'lookup_es2',err_msg_local,err_msg))
return
234 real(kind=fms_svp_kind_),
intent(in) :: temp(:,:)
235 real(kind=fms_svp_kind_),
intent(out) :: esat(:,:)
236 character(len=*),
intent(out),
optional :: err_msg
238 character(len=54) :: err_msg_local
242 if (.not.module_is_initialized)
then
243 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
246 call lookup_es2_k(temp, esat, nbad)
248 if ( nbad == 0 )
then
249 if(
present(err_msg)) err_msg =
''
251 if(show_bad_value_count_by_slice)
call temp_check ( temp )
252 if(show_all_bad_values)
call show_all_bad ( temp )
253 write(err_msg_local,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
254 if(fms_error_handler(
'lookup_es2',err_msg_local,err_msg))
return
270 real(kind=fms_svp_kind_),
intent(in) :: temp(:,:,:)
271 real(kind=fms_svp_kind_),
intent(out) :: esat(:,:,:)
272 character(len=*),
intent(out),
optional :: err_msg
275 character(len=128) :: err_msg_tmp
277 if (.not.module_is_initialized)
then
278 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
281 call lookup_es2_k(temp, esat, nbad)
283 if ( nbad == 0 )
then
284 if(
present(err_msg)) err_msg =
''
286 if(show_bad_value_count_by_slice)
call temp_check ( temp )
287 if(show_all_bad_values)
call show_all_bad ( temp )
288 write(err_msg_tmp,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
289 if(fms_error_handler(
'lookup_es2',err_msg_tmp,err_msg))
return
303 real(kind=fms_svp_kind_),
intent(in) :: temp
304 real(kind=fms_svp_kind_),
intent(out) :: esat
305 character(len=*),
intent(out),
optional :: err_msg
308 character(len=128) :: err_msg_local
310 if (.not.module_is_initialized)
then
311 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
314 call lookup_es3_k(temp, esat, nbad)
316 if ( nbad == 0 )
then
317 if(
present(err_msg)) err_msg =
''
319 if(show_all_bad_values)
call show_all_bad ( temp )
320 write(err_msg_local,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
321 if(fms_error_handler(
'lookup_es3',err_msg_local,err_msg))
return
335 real(kind=fms_svp_kind_),
intent(in) :: temp(:)
336 real(kind=fms_svp_kind_),
intent(out) :: esat(:)
337 character(len=*),
intent(out),
optional :: err_msg
339 character(len=54) :: err_msg_local
343 if (.not.module_is_initialized)
then
344 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
347 call lookup_es3_k(temp, esat, nbad)
349 if ( nbad == 0 )
then
350 if(
present(err_msg)) err_msg =
''
352 if(show_bad_value_count_by_slice)
call temp_check ( temp )
353 if(show_all_bad_values)
call show_all_bad ( temp )
354 write(err_msg_local,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
355 if(fms_error_handler(
'lookup_es3',err_msg_local,err_msg))
return
371 real(kind=fms_svp_kind_),
intent(in) :: temp(:,:)
372 real(kind=fms_svp_kind_),
intent(out) :: esat(:,:)
373 character(len=*),
intent(out),
optional :: err_msg
375 character(len=54) :: err_msg_local
379 if (.not.module_is_initialized)
then
380 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
383 call lookup_es3_k(temp, esat, nbad)
385 if ( nbad == 0 )
then
386 if(
present(err_msg)) err_msg =
''
388 if(show_bad_value_count_by_slice)
call temp_check ( temp )
389 if(show_all_bad_values)
call show_all_bad ( temp )
390 write(err_msg_local,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
391 if(fms_error_handler(
'lookup_es3',err_msg_local,err_msg))
return
407 real(kind=fms_svp_kind_),
intent(in) :: temp(:,:,:)
408 real(kind=fms_svp_kind_),
intent(out) :: esat(:,:,:)
409 character(len=*),
intent(out),
optional :: err_msg
412 character(len=128) :: err_msg_tmp
414 if (.not.module_is_initialized)
then
415 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
418 call lookup_es3_k(temp, esat, nbad)
420 if ( nbad == 0 )
then
421 if(
present(err_msg)) err_msg =
''
423 if(show_bad_value_count_by_slice)
call temp_check ( temp )
424 if(show_all_bad_values)
call show_all_bad ( temp )
425 write(err_msg_tmp,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
426 if(fms_error_handler(
'lookup_es3',err_msg_tmp,err_msg))
return
443 real(kind=fms_svp_kind_),
intent(in) :: temp
444 real(kind=fms_svp_kind_),
intent(out) :: desat
445 character(len=*),
intent(out),
optional :: err_msg
448 character(len=128) :: err_msg_local
450 if (.not.module_is_initialized)
then
451 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
454 call lookup_des_k( temp, desat, nbad)
456 if ( nbad == 0 )
then
457 if(
present(err_msg)) err_msg =
''
459 if(show_all_bad_values)
call show_all_bad ( temp )
460 write(err_msg_local,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
461 if(fms_error_handler(
'lookup_des',err_msg_local,err_msg))
return
475 real(kind=fms_svp_kind_),
intent(in) :: temp(:)
476 real(kind=fms_svp_kind_),
intent(out) :: desat(:)
477 character(len=*),
intent(out),
optional :: err_msg
479 character(len=54) :: err_msg_local
483 if (.not.module_is_initialized)
then
484 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
487 if(
present(err_msg)) err_msg=
''
489 call lookup_des_k(temp, desat, nbad)
491 if ( nbad == 0 )
then
492 if(
present(err_msg)) err_msg =
''
494 if(show_bad_value_count_by_slice)
call temp_check ( temp )
495 if(show_all_bad_values)
call show_all_bad ( temp )
496 write(err_msg_local,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
497 if(fms_error_handler(
'lookup_es',err_msg_local,err_msg))
return
512 real(kind=fms_svp_kind_),
intent(in) :: temp(:,:)
513 real(kind=fms_svp_kind_),
intent(out) :: desat(:,:)
514 character(len=*),
intent(out),
optional :: err_msg
516 character(len=54) :: err_msg_local
520 if (.not.module_is_initialized)
then
521 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
524 call lookup_des_k(temp, desat, nbad)
526 if ( nbad == 0 )
then
527 if(
present(err_msg)) err_msg =
''
529 if(show_bad_value_count_by_slice)
call temp_check ( temp )
530 if(show_all_bad_values)
call show_all_bad ( temp )
531 write(err_msg_local,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
532 if(fms_error_handler(
'lookup_es',err_msg_local,err_msg))
return
546 real(kind=fms_svp_kind_),
intent(in) :: temp(:,:,:)
547 real(kind=fms_svp_kind_),
intent(out) :: desat(:,:,:)
548 character(len=*),
intent(out),
optional :: err_msg
551 character(len=128) :: err_msg_tmp
553 if (.not.module_is_initialized)
then
554 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
557 call lookup_des_k( temp, desat, nbad )
559 if ( nbad == 0 )
then
560 if(
present(err_msg)) err_msg=
''
562 if(show_bad_value_count_by_slice)
call temp_check ( temp )
563 if(show_all_bad_values)
call show_all_bad ( temp )
564 write(err_msg_tmp,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
565 if(fms_error_handler(
'lookup_des',err_msg_tmp,err_msg))
return
578 real(kind=fms_svp_kind_),
intent(in) :: temp
579 real(kind=fms_svp_kind_),
intent(out) :: desat
580 character(len=*),
intent(out),
optional :: err_msg
583 character(len=128) :: err_msg_local
585 if (.not.module_is_initialized)
then
586 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
589 call lookup_des2_k( temp, desat, nbad)
591 if ( nbad == 0 )
then
592 if(
present(err_msg)) err_msg =
''
594 if(show_all_bad_values)
call show_all_bad ( temp )
595 write(err_msg_local,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
596 if(fms_error_handler(
'lookup_des2',err_msg_local,err_msg))
return
610 real(kind=fms_svp_kind_),
intent(in) :: temp(:)
611 real(kind=fms_svp_kind_),
intent(out) :: desat(:)
612 character(len=*),
intent(out),
optional :: err_msg
614 character(len=54) :: err_msg_local
618 if (.not.module_is_initialized)
then
619 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
622 if(
present(err_msg)) err_msg=
''
624 call lookup_des2_k(temp, desat, nbad)
626 if ( nbad == 0 )
then
627 if(
present(err_msg)) err_msg =
''
629 if(show_bad_value_count_by_slice)
call temp_check ( temp )
630 if(show_all_bad_values)
call show_all_bad ( temp )
631 write(err_msg_local,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
632 if(fms_error_handler(
'lookup_des2',err_msg_local,err_msg))
return
647 real(kind=fms_svp_kind_),
intent(in) :: temp(:,:)
648 real(kind=fms_svp_kind_),
intent(out) :: desat(:,:)
649 character(len=*),
intent(out),
optional :: err_msg
651 character(len=54) :: err_msg_local
655 if (.not.module_is_initialized)
then
656 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
659 call lookup_des2_k(temp, desat, nbad)
661 if ( nbad == 0 )
then
662 if(
present(err_msg)) err_msg =
''
664 if(show_bad_value_count_by_slice)
call temp_check ( temp )
665 if(show_all_bad_values)
call show_all_bad ( temp )
666 write(err_msg_local,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
667 if(fms_error_handler(
'lookup_des2',err_msg_local,err_msg))
return
681 real(kind=fms_svp_kind_),
intent(in) :: temp(:,:,:)
682 real(kind=fms_svp_kind_),
intent(out) :: desat(:,:,:)
683 character(len=*),
intent(out),
optional :: err_msg
686 character(len=128) :: err_msg_tmp
688 if (.not.module_is_initialized)
then
689 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
692 call lookup_des2_k( temp, desat, nbad )
694 if ( nbad == 0 )
then
695 if(
present(err_msg)) err_msg=
''
697 if(show_bad_value_count_by_slice)
call temp_check ( temp )
698 if(show_all_bad_values)
call show_all_bad ( temp )
699 write(err_msg_tmp,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
700 if(fms_error_handler(
'lookup_des2',err_msg_tmp,err_msg))
return
713 real(kind=fms_svp_kind_),
intent(in) :: temp
714 real(kind=fms_svp_kind_),
intent(out) :: desat
715 character(len=*),
intent(out),
optional :: err_msg
718 character(len=128) :: err_msg_local
720 if (.not.module_is_initialized)
then
721 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
724 call lookup_des3_k( temp, desat, nbad)
726 if ( nbad == 0 )
then
727 if(
present(err_msg)) err_msg =
''
729 if(show_all_bad_values)
call show_all_bad ( temp )
730 write(err_msg_local,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
731 if(fms_error_handler(
'lookup_des3',err_msg_local,err_msg))
return
745 real(kind=fms_svp_kind_),
intent(in) :: temp(:)
746 real(kind=fms_svp_kind_),
intent(out) :: desat(:)
747 character(len=*),
intent(out),
optional :: err_msg
749 character(len=54) :: err_msg_local
753 if (.not.module_is_initialized)
then
754 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
757 if(
present(err_msg)) err_msg=
''
759 call lookup_des3_k(temp, desat, nbad)
761 if ( nbad == 0 )
then
762 if(
present(err_msg)) err_msg =
''
764 if(show_bad_value_count_by_slice)
call temp_check ( temp )
765 if(show_all_bad_values)
call show_all_bad ( temp )
766 write(err_msg_local,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
767 if(fms_error_handler(
'lookup_des3',err_msg_local,err_msg))
return
782 real(kind=fms_svp_kind_),
intent(in) :: temp(:,:)
783 real(kind=fms_svp_kind_),
intent(out) :: desat(:,:)
784 character(len=*),
intent(out),
optional :: err_msg
786 character(len=54) :: err_msg_local
790 if (.not.module_is_initialized)
then
791 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
794 call lookup_des3_k(temp, desat, nbad)
796 if ( nbad == 0 )
then
797 if(
present(err_msg)) err_msg =
''
799 if(show_bad_value_count_by_slice)
call temp_check ( temp )
800 if(show_all_bad_values)
call show_all_bad ( temp )
801 write(err_msg_local,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
802 if(fms_error_handler(
'lookup_des3',err_msg_local,err_msg))
return
816 real(kind=fms_svp_kind_),
intent(in) :: temp(:,:,:)
817 real(kind=fms_svp_kind_),
intent(out) :: desat(:,:,:)
818 character(len=*),
intent(out),
optional :: err_msg
821 character(len=128) :: err_msg_tmp
823 if (.not.module_is_initialized)
then
824 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
827 call lookup_des3_k( temp, desat, nbad )
829 if ( nbad == 0 )
then
830 if(
present(err_msg)) err_msg=
''
832 if(show_bad_value_count_by_slice)
call temp_check ( temp )
833 if(show_all_bad_values)
call show_all_bad ( temp )
834 write(err_msg_tmp,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
835 if(fms_error_handler(
'lookup_des3',err_msg_tmp,err_msg))
return
852 real(kind=fms_svp_kind_),
intent(in) :: temp
853 real(kind=fms_svp_kind_),
intent(out) :: esat
854 real(kind=fms_svp_kind_),
intent(out) :: desat
855 character(len=*),
intent(out),
optional :: err_msg
858 character(len=128) :: err_msg_local
860 if (.not.module_is_initialized)
then
861 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
864 call lookup_es_des_k(temp, esat, desat, nbad)
866 if ( nbad == 0 )
then
867 if(
present(err_msg)) err_msg =
''
869 if(show_all_bad_values)
call show_all_bad ( temp )
870 write(err_msg_local,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
871 if(fms_error_handler(
'lookup_es',err_msg_local,err_msg))
return
886 real(kind=fms_svp_kind_),
dimension(:),
intent(in) :: temp
887 real(kind=fms_svp_kind_),
dimension(:),
intent(out) :: esat
888 real(kind=fms_svp_kind_),
dimension(:),
intent(out) :: desat
889 character(len=*),
intent(out),
optional :: err_msg
892 character(len=128) :: err_msg_local
894 if (.not.module_is_initialized)
then
895 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
898 call lookup_es_des_k(temp, esat, desat, nbad)
900 if ( nbad == 0 )
then
901 if(
present(err_msg)) err_msg =
''
903 if(show_bad_value_count_by_slice)
call temp_check ( temp )
904 if(show_all_bad_values)
call show_all_bad ( temp )
905 write(err_msg_local,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
906 if(fms_error_handler(
'lookup_es',err_msg_local,err_msg))
return
921 real(kind=fms_svp_kind_),
dimension(:,:),
intent(in) :: temp
922 real(kind=fms_svp_kind_),
dimension(:,:),
intent(out) :: esat
923 real(kind=fms_svp_kind_),
dimension(:,:),
intent(out) :: desat
924 character(len=*),
intent(out),
optional :: err_msg
927 character(len=128) :: err_msg_local
929 if (.not.module_is_initialized)
then
930 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
933 call lookup_es_des_k(temp, esat, desat, nbad)
935 if ( nbad == 0 )
then
936 if(
present(err_msg)) err_msg =
''
938 if(show_bad_value_count_by_slice)
call temp_check ( temp )
939 if(show_all_bad_values)
call show_all_bad ( temp )
940 write(err_msg_local,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
941 if(fms_error_handler(
'lookup_es',err_msg_local,err_msg))
return
956 real(kind=fms_svp_kind_),
dimension(:,:,:),
intent(in) :: temp
957 real(kind=fms_svp_kind_),
dimension(:,:,:),
intent(out) :: esat
958 real(kind=fms_svp_kind_),
dimension(:,:,:),
intent(out) :: desat
959 character(len=*),
intent(out),
optional :: err_msg
962 character(len=128) :: err_msg_local
964 if (.not.module_is_initialized)
then
965 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
968 call lookup_es_des_k(temp, esat, desat, nbad)
970 if ( nbad == 0 )
then
971 if(
present(err_msg)) err_msg =
''
973 if(show_bad_value_count_by_slice)
call temp_check ( temp )
974 if(show_all_bad_values)
call show_all_bad ( temp )
975 write(err_msg_local,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
976 if(fms_error_handler(
'lookup_es',err_msg_local,err_msg))
return
992 real(kind=fms_svp_kind_),
intent(in) :: temp
993 real(kind=fms_svp_kind_),
intent(out) :: esat
994 real(kind=fms_svp_kind_),
intent(out) :: desat
995 character(len=*),
intent(out),
optional :: err_msg
998 character(len=128) :: err_msg_local
1000 if (.not.module_is_initialized)
then
1001 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
1004 call lookup_es2_des2_k(temp, esat, desat, nbad)
1006 if ( nbad == 0 )
then
1007 if(
present(err_msg)) err_msg =
''
1009 if(show_all_bad_values)
call show_all_bad ( temp )
1010 write(err_msg_local,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
1011 if(fms_error_handler(
'lookup_es2_des2',err_msg_local,err_msg))
return
1026 real(kind=fms_svp_kind_),
dimension(:),
intent(in) :: temp
1027 real(kind=fms_svp_kind_),
dimension(:),
intent(out) :: esat
1028 real(kind=fms_svp_kind_),
dimension(:),
intent(out) :: desat
1029 character(len=*),
intent(out),
optional :: err_msg
1032 character(len=128) :: err_msg_local
1034 if (.not.module_is_initialized)
then
1035 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
1038 call lookup_es2_des2_k(temp, esat, desat, nbad)
1040 if ( nbad == 0 )
then
1041 if(
present(err_msg)) err_msg =
''
1043 if(show_bad_value_count_by_slice)
call temp_check ( temp )
1044 if(show_all_bad_values)
call show_all_bad ( temp )
1045 write(err_msg_local,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
1046 if(fms_error_handler(
'lookup_es2_des2',err_msg_local,err_msg))
return
1061 real(kind=fms_svp_kind_),
dimension(:,:),
intent(in) :: temp
1062 real(kind=fms_svp_kind_),
dimension(:,:),
intent(out) :: esat
1063 real(kind=fms_svp_kind_),
dimension(:,:),
intent(out) :: desat
1064 character(len=*),
intent(out),
optional :: err_msg
1067 character(len=128) :: err_msg_local
1069 if (.not.module_is_initialized)
then
1070 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
1073 call lookup_es2_des2_k(temp, esat, desat, nbad)
1075 if ( nbad == 0 )
then
1076 if(
present(err_msg)) err_msg =
''
1078 if(show_bad_value_count_by_slice)
call temp_check ( temp )
1079 if(show_all_bad_values)
call show_all_bad ( temp )
1080 write(err_msg_local,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
1081 if(fms_error_handler(
'lookup_es2_des2',err_msg_local,err_msg))
return
1096 real(kind=fms_svp_kind_),
dimension(:,:,:),
intent(in) :: temp
1097 real(kind=fms_svp_kind_),
dimension(:,:,:),
intent(out) :: esat
1098 real(kind=fms_svp_kind_),
dimension(:,:,:),
intent(out) :: desat
1099 character(len=*),
intent(out),
optional :: err_msg
1102 character(len=128) :: err_msg_local
1104 if (.not.module_is_initialized)
then
1105 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
1108 call lookup_es2_des2_k(temp, esat, desat, nbad)
1110 if ( nbad == 0 )
then
1111 if(
present(err_msg)) err_msg =
''
1113 if(show_bad_value_count_by_slice)
call temp_check ( temp )
1114 if(show_all_bad_values)
call show_all_bad ( temp )
1115 write(err_msg_local,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
1116 if(fms_error_handler(
'lookup_es2_des2',err_msg_local,err_msg))
return
1133 real(kind=fms_svp_kind_),
intent(in) :: temp
1134 real(kind=fms_svp_kind_),
intent(out) :: esat
1135 real(kind=fms_svp_kind_),
intent(out) :: desat
1136 character(len=*),
intent(out),
optional :: err_msg
1139 character(len=128) :: err_msg_local
1141 if (.not.module_is_initialized)
then
1142 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
1145 call lookup_es3_des3_k(temp, esat, desat, nbad)
1147 if ( nbad == 0 )
then
1148 if(
present(err_msg)) err_msg =
''
1150 if(show_all_bad_values)
call show_all_bad ( temp )
1151 write(err_msg_local,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
1152 if(fms_error_handler(
'lookup_es3_des3',err_msg_local,err_msg))
return
1167 real(kind=fms_svp_kind_),
dimension(:),
intent(in) :: temp
1168 real(kind=fms_svp_kind_),
dimension(:),
intent(out) :: esat
1169 real(kind=fms_svp_kind_),
dimension(:),
intent(out) :: desat
1170 character(len=*),
intent(out),
optional :: err_msg
1173 character(len=128) :: err_msg_local
1175 if (.not.module_is_initialized)
then
1176 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
1179 call lookup_es3_des3_k(temp, esat, desat, nbad)
1181 if ( nbad == 0 )
then
1182 if(
present(err_msg)) err_msg =
''
1184 if(show_bad_value_count_by_slice)
call temp_check ( temp )
1185 if(show_all_bad_values)
call show_all_bad ( temp )
1186 write(err_msg_local,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
1187 if(fms_error_handler(
'lookup_es3_des3',err_msg_local,err_msg))
return
1202 real(kind=fms_svp_kind_),
dimension(:,:),
intent(in) :: temp
1203 real(kind=fms_svp_kind_),
dimension(:,:),
intent(out) :: esat
1204 real(kind=fms_svp_kind_),
dimension(:,:),
intent(out) :: desat
1205 character(len=*),
intent(out),
optional :: err_msg
1208 character(len=128) :: err_msg_local
1210 if (.not.module_is_initialized)
then
1211 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
1214 call lookup_es3_des3_k(temp, esat, desat, nbad)
1216 if ( nbad == 0 )
then
1217 if(
present(err_msg)) err_msg =
''
1219 if(show_bad_value_count_by_slice)
call temp_check ( temp )
1220 if(show_all_bad_values)
call show_all_bad ( temp )
1221 write(err_msg_local,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
1222 if(fms_error_handler(
'lookup_es3_des3',err_msg_local,err_msg))
return
1237 real(kind=fms_svp_kind_),
dimension(:,:,:),
intent(in) :: temp
1238 real(kind=fms_svp_kind_),
dimension(:,:,:),
intent(out) :: esat
1239 real(kind=fms_svp_kind_),
dimension(:,:,:),
intent(out) :: desat
1240 character(len=*),
intent(out),
optional :: err_msg
1243 character(len=128) :: err_msg_local
1245 if (.not.module_is_initialized)
then
1246 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
1249 call lookup_es3_des3_k(temp, esat, desat, nbad)
1251 if ( nbad == 0 )
then
1252 if(
present(err_msg)) err_msg =
''
1254 if(show_bad_value_count_by_slice)
call temp_check ( temp )
1255 if(show_all_bad_values)
call show_all_bad ( temp )
1256 write(err_msg_local,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
1257 if(fms_error_handler(
'lookup_es3_des3',err_msg_local,err_msg))
return
1275 err_msg, es_over_liq, es_over_liq_and_ice )
1277 real(kind=fms_svp_kind_),
intent(in) :: temp
1278 real(kind=fms_svp_kind_),
intent(in) :: press
1279 real(kind=fms_svp_kind_),
intent(out) :: qsat
1280 real(kind=fms_svp_kind_),
intent(in),
optional :: q
1281 real(kind=fms_svp_kind_),
intent(in),
optional :: hc
1282 real(kind=fms_svp_kind_),
intent(out),
optional :: dqsdt
1283 real(kind=fms_svp_kind_),
intent(out),
optional :: esat
1284 character(len=*),
intent(out),
optional :: err_msg
1285 logical,
intent(in),
optional :: es_over_liq
1286 logical,
intent(in),
optional :: es_over_liq_and_ice
1289 character(len=128) :: err_msg_tmp
1293 real(kind=fms_svp_kind_),
parameter :: epsilo_loc=real(epsilo,fms_svp_kind_)
1294 real(kind=fms_svp_kind_),
parameter :: zvirl=real(zvir,fms_svp_kind_)
1296 if (.not.module_is_initialized)
then
1297 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
1300 if (
present(es_over_liq))
then
1301 if (.not. (construct_table_wrt_liq))
then
1302 call error_mesg (
'compute_qs', &
1303 'requesting es wrt liq, but that table not constructed', &
1307 if (
present(es_over_liq_and_ice))
then
1308 if (.not. (construct_table_wrt_liq_and_ice))
then
1309 call error_mesg (
'compute_qs', &
1310 'requesting es wrt liq and ice, but that table not constructed', &
1315 call compute_qs_k (temp, press, epsilo_loc, zvirl, qsat, nbad, q, hc, &
1316 dqsdt, esat, es_over_liq, es_over_liq_and_ice)
1318 if ( nbad == 0 )
then
1319 if(
present(err_msg)) err_msg =
''
1321 if(show_all_bad_values)
call show_all_bad ( temp )
1322 write(err_msg_tmp,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
1323 if(fms_error_handler(
'compute_qs',err_msg_tmp,err_msg))
return
1341 err_msg, es_over_liq, es_over_liq_and_ice )
1343 real(kind=fms_svp_kind_),
intent(in) :: temp(:)
1344 real(kind=fms_svp_kind_),
intent(in) :: press(:)
1345 real(kind=fms_svp_kind_),
intent(out) :: qsat(:)
1346 real(kind=fms_svp_kind_),
intent(in),
optional :: q(:)
1347 real(kind=fms_svp_kind_),
intent(in),
optional :: hc
1348 real(kind=fms_svp_kind_),
intent(out),
optional :: dqsdt(:)
1349 real(kind=fms_svp_kind_),
intent(out),
optional :: esat(:)
1350 character(len=*),
intent(out),
optional :: err_msg
1351 logical,
intent(in),
optional :: es_over_liq
1352 logical,
intent(in),
optional :: es_over_liq_and_ice
1355 character(len=128) :: err_msg_tmp
1358 real(kind=fms_svp_kind_),
parameter :: epsilol=real(epsilo,fms_svp_kind_)
1359 real(kind=fms_svp_kind_),
parameter :: zvirl=real(zvir,fms_svp_kind_)
1361 if (.not.module_is_initialized)
then
1362 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
1365 if (
present(es_over_liq))
then
1366 if (.not. (construct_table_wrt_liq))
then
1367 call error_mesg (
'compute_qs', &
1368 'requesting es wrt liq, but that table not constructed', &
1372 if (
present(es_over_liq_and_ice))
then
1373 if (.not. (construct_table_wrt_liq_and_ice))
then
1374 call error_mesg (
'compute_qs', &
1375 'requesting es wrt liq and ice, but that table not constructed', &
1381 call compute_qs_k (temp, press, epsilol, zvirl, qsat, nbad, q, hc, &
1382 dqsdt, esat, es_over_liq, es_over_liq_and_ice)
1384 if ( nbad == 0 )
then
1385 if(
present(err_msg)) err_msg =
''
1387 if(show_bad_value_count_by_slice)
call temp_check ( temp )
1388 if(show_all_bad_values)
call show_all_bad ( temp )
1389 write(err_msg_tmp,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
1390 if(fms_error_handler(
'compute_qs',err_msg_tmp,err_msg))
return
1409 err_msg, es_over_liq, es_over_liq_and_ice )
1411 real(kind=fms_svp_kind_),
intent(in) :: temp(:,:)
1412 real(kind=fms_svp_kind_),
intent(in) :: press(:,:)
1413 real(kind=fms_svp_kind_),
intent(out) :: qsat(:,:)
1414 real(kind=fms_svp_kind_),
intent(in),
optional :: q(:,:)
1415 real(kind=fms_svp_kind_),
intent(in),
optional :: hc
1416 real(kind=fms_svp_kind_),
intent(out),
optional :: dqsdt(:,:)
1417 real(kind=fms_svp_kind_),
intent(out),
optional :: esat(:,:)
1418 character(len=*),
intent(out),
optional :: err_msg
1419 logical,
intent(in),
optional :: es_over_liq
1420 logical,
intent(in),
optional :: es_over_liq_and_ice
1423 character(len=128) :: err_msg_tmp
1426 real(kind=fms_svp_kind_),
parameter :: epsilol=real(epsilo,fms_svp_kind_)
1427 real(kind=fms_svp_kind_),
parameter :: zvirl=real(zvir,fms_svp_kind_)
1429 if (.not.module_is_initialized)
then
1430 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
1433 if (
present(es_over_liq))
then
1434 if (.not. (construct_table_wrt_liq))
then
1435 call error_mesg (
'compute_qs', &
1436 'requesting es wrt liq, but that table not constructed', &
1440 if (
present(es_over_liq_and_ice))
then
1441 if (.not. (construct_table_wrt_liq_and_ice))
then
1442 call error_mesg (
'compute_qs', &
1443 'requesting es wrt liq and ice, but that table not constructed', &
1449 call compute_qs_k (temp, press, epsilol, zvirl, qsat, nbad, q, hc, &
1450 dqsdt, esat, es_over_liq, es_over_liq_and_ice)
1452 if ( nbad == 0 )
then
1453 if(
present(err_msg)) err_msg =
''
1455 if(show_bad_value_count_by_slice)
call temp_check ( temp )
1456 if(show_all_bad_values)
call show_all_bad ( temp )
1457 write(err_msg_tmp,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
1458 if(fms_error_handler(
'compute_qs',err_msg_tmp,err_msg))
return
1476 err_msg, es_over_liq, es_over_liq_and_ice )
1478 real(kind=fms_svp_kind_),
intent(in) :: temp(:,:,:)
1479 real(kind=fms_svp_kind_),
intent(in) :: press(:,:,:)
1480 real(kind=fms_svp_kind_),
intent(out) :: qsat(:,:,:)
1481 real(kind=fms_svp_kind_),
intent(in),
optional :: q(:,:,:)
1482 real(kind=fms_svp_kind_),
intent(in),
optional :: hc
1483 real(kind=fms_svp_kind_),
intent(out),
optional :: dqsdt(:,:,:)
1484 real(kind=fms_svp_kind_),
intent(out),
optional :: esat(:,:,:)
1485 character(len=*),
intent(out),
optional :: err_msg
1486 logical,
intent(in),
optional :: es_over_liq
1487 logical,
intent(in),
optional :: es_over_liq_and_ice
1490 character(len=128) :: err_msg_tmp
1493 real(kind=fms_svp_kind_),
parameter :: epsilol=real(epsilo,fms_svp_kind_)
1494 real(kind=fms_svp_kind_),
parameter :: zvirl=real(zvir,fms_svp_kind_)
1496 if (.not.module_is_initialized)
then
1497 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
1500 if (
present(es_over_liq))
then
1501 if (.not. (construct_table_wrt_liq))
then
1502 call error_mesg (
'compute_qs', &
1503 'requesting es wrt liq, but that table not constructed', &
1507 if (
present(es_over_liq_and_ice))
then
1508 if (.not. (construct_table_wrt_liq_and_ice))
then
1509 call error_mesg (
'compute_qs', &
1510 'requesting es wrt liq and ice, but that table not constructed', &
1516 call compute_qs_k (temp, press, epsilol, zvirl, qsat, nbad, q, hc, &
1517 dqsdt, esat, es_over_liq, es_over_liq_and_ice)
1520 if ( nbad == 0 )
then
1521 if(
present(err_msg)) err_msg =
''
1523 if(show_bad_value_count_by_slice)
call temp_check ( temp )
1524 if(show_all_bad_values)
call show_all_bad ( temp )
1525 write(err_msg_tmp,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
1526 if(fms_error_handler(
'compute_qs',err_msg_tmp,err_msg))
return
1545 err_msg, es_over_liq, es_over_liq_and_ice )
1547 real(kind=fms_svp_kind_),
intent(in) :: temp
1548 real(kind=fms_svp_kind_),
intent(in) :: press
1549 real(kind=fms_svp_kind_),
intent(out) :: mrsat
1550 real(kind=fms_svp_kind_),
intent(in),
optional :: mr
1551 real(kind=fms_svp_kind_),
intent(in),
optional :: hc
1552 real(kind=fms_svp_kind_),
intent(out),
optional :: dmrsdt
1553 real(kind=fms_svp_kind_),
intent(out),
optional :: esat
1554 character(len=*),
intent(out),
optional :: err_msg
1555 logical,
intent(in),
optional :: es_over_liq
1556 logical,
intent(in),
optional :: es_over_liq_and_ice
1559 character(len=128) :: err_msg_tmp
1562 real(kind=fms_svp_kind_),
parameter :: epsilol=real(epsilo,fms_svp_kind_)
1563 real(kind=fms_svp_kind_),
parameter :: zvirl=real(zvir,fms_svp_kind_)
1565 if (.not.module_is_initialized)
then
1566 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
1569 if (
present(es_over_liq))
then
1570 if (.not. (construct_table_wrt_liq))
then
1571 call error_mesg (
'compute_mrs', &
1572 'requesting es wrt liq, but that table not constructed', &
1576 if (
present(es_over_liq_and_ice))
then
1577 if (.not. (construct_table_wrt_liq_and_ice))
then
1578 call error_mesg (
'compute_qs', &
1579 'requesting es wrt liq and ice, but that table not constructed', &
1584 call compute_mrs_k (temp, press, epsilol, zvirl, mrsat, nbad, mr, &
1585 hc, dmrsdt, esat, es_over_liq, es_over_liq_and_ice)
1587 if ( nbad == 0 )
then
1588 if(
present(err_msg)) err_msg =
''
1590 if(show_all_bad_values)
call show_all_bad ( temp )
1591 write(err_msg_tmp,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
1592 if(fms_error_handler(
'compute_mrs',err_msg_tmp,err_msg))
return
1611 err_msg, es_over_liq, es_over_liq_and_ice )
1613 real(kind=fms_svp_kind_),
intent(in) :: temp(:)
1614 real(kind=fms_svp_kind_),
intent(in) :: press(:)
1615 real(kind=fms_svp_kind_),
intent(out) :: mrsat(:)
1616 real(kind=fms_svp_kind_),
intent(in),
optional :: mr(:)
1617 real(kind=fms_svp_kind_),
intent(in),
optional :: hc
1618 real(kind=fms_svp_kind_),
intent(out),
optional :: dmrsdt(:)
1619 real(kind=fms_svp_kind_),
intent(out),
optional :: esat(:)
1620 character(len=*),
intent(out),
optional :: err_msg
1621 logical,
intent(in),
optional :: es_over_liq
1622 logical,
intent(in),
optional :: es_over_liq_and_ice
1625 character(len=128) :: err_msg_tmp
1628 real(kind=fms_svp_kind_),
parameter :: epsilol=real(epsilo,fms_svp_kind_)
1629 real(kind=fms_svp_kind_),
parameter :: zvirl=real(zvir,fms_svp_kind_)
1631 if (.not.module_is_initialized)
then
1632 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
1635 if (
present(es_over_liq))
then
1636 if (.not. (construct_table_wrt_liq))
then
1637 call error_mesg (
'compute_mrs', &
1638 'requesting es wrt liq, but that table not constructed', &
1642 if (
present(es_over_liq_and_ice))
then
1643 if (.not. (construct_table_wrt_liq_and_ice))
then
1644 call error_mesg (
'compute_qs', &
1645 'requesting es wrt liq and ice, but that table not constructed', &
1652 call compute_mrs_k (temp, press, epsilol, zvirl, mrsat, nbad, mr, &
1653 hc, dmrsdt, esat, es_over_liq, es_over_liq_and_ice)
1655 if ( nbad == 0 )
then
1656 if(
present(err_msg)) err_msg =
''
1658 if(show_bad_value_count_by_slice)
call temp_check ( temp )
1659 if(show_all_bad_values)
call show_all_bad ( temp )
1660 write(err_msg_tmp,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
1661 if(fms_error_handler(
'compute_mrs',err_msg_tmp,err_msg))
return
1679 err_msg, es_over_liq, es_over_liq_and_ice )
1681 real(kind=fms_svp_kind_),
intent(in) :: temp(:,:)
1682 real(kind=fms_svp_kind_),
intent(in) :: press(:,:)
1683 real(kind=fms_svp_kind_),
intent(out) :: mrsat(:,:)
1684 real(kind=fms_svp_kind_),
intent(in),
optional :: mr(:,:)
1685 real(kind=fms_svp_kind_),
intent(in),
optional :: hc
1686 real(kind=fms_svp_kind_),
intent(out),
optional :: dmrsdt(:,:)
1687 real(kind=fms_svp_kind_),
intent(out),
optional :: esat(:,:)
1688 character(len=*),
intent(out),
optional :: err_msg
1689 logical,
intent(in),
optional :: es_over_liq
1690 logical,
intent(in),
optional :: es_over_liq_and_ice
1693 character(len=128) :: err_msg_tmp
1696 real(kind=fms_svp_kind_),
parameter :: epsilol=real(epsilo,fms_svp_kind_)
1697 real(kind=fms_svp_kind_),
parameter :: zvirl=real(zvir,fms_svp_kind_)
1699 if (.not.module_is_initialized)
then
1700 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
1703 if (
present(es_over_liq))
then
1704 if (.not. (construct_table_wrt_liq))
then
1705 call error_mesg (
'compute_mrs', &
1706 'requesting es wrt liq, but that table not constructed', &
1710 if (
present(es_over_liq_and_ice))
then
1711 if (.not. (construct_table_wrt_liq_and_ice))
then
1712 call error_mesg (
'compute_qs', &
1713 'requesting es wrt liq and ice, but that table not constructed', &
1720 call compute_mrs_k (temp, press, epsilol, zvirl, mrsat, nbad, mr, &
1721 hc, dmrsdt, esat, es_over_liq, es_over_liq_and_ice)
1723 if ( nbad == 0 )
then
1724 if(
present(err_msg)) err_msg =
''
1726 if(show_bad_value_count_by_slice)
call temp_check ( temp )
1727 if(show_all_bad_values)
call show_all_bad ( temp )
1728 write(err_msg_tmp,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
1729 if(fms_error_handler(
'compute_mrs',err_msg_tmp,err_msg))
return
1747 err_msg, es_over_liq, es_over_liq_and_ice )
1749 real(kind=fms_svp_kind_),
intent(in) :: temp(:,:,:)
1750 real(kind=fms_svp_kind_),
intent(in) :: press(:,:,:)
1751 real(kind=fms_svp_kind_),
intent(out) :: mrsat(:,:,:)
1752 real(kind=fms_svp_kind_),
intent(in),
optional :: mr(:,:,:)
1753 real(kind=fms_svp_kind_),
intent(in),
optional :: hc
1754 real(kind=fms_svp_kind_),
intent(out),
optional :: dmrsdt(:,:,:)
1755 real(kind=fms_svp_kind_),
intent(out),
optional :: esat(:,:,:)
1756 character(len=*),
intent(out),
optional :: err_msg
1757 logical,
intent(in),
optional :: es_over_liq
1758 logical,
intent(in),
optional :: es_over_liq_and_ice
1761 character(len=128) :: err_msg_tmp
1764 real(kind=fms_svp_kind_),
parameter :: epsilol=real(epsilo,fms_svp_kind_)
1765 real(kind=fms_svp_kind_),
parameter :: zvirl=real(zvir,fms_svp_kind_)
1767 if (.not.module_is_initialized)
then
1768 if(fms_error_handler(
'lookup_es',
'sat_vapor_pres_init is not called' ,err_msg))
return
1771 if (
present(es_over_liq))
then
1772 if (.not. (construct_table_wrt_liq))
then
1773 call error_mesg (
'compute_mrs', &
1774 'requesting es wrt liq, but that table not constructed', &
1778 if (
present(es_over_liq_and_ice))
then
1779 if (.not. (construct_table_wrt_liq_and_ice))
then
1780 call error_mesg (
'compute_qs', &
1781 'requesting es wrt liq and ice, but that table not constructed', &
1788 call compute_mrs_k (temp, press, epsilol, zvirl, mrsat, nbad, mr, &
1789 hc, dmrsdt, esat, es_over_liq, es_over_liq_and_ice)
1791 if ( nbad == 0 )
then
1792 if(
present(err_msg)) err_msg =
''
1794 if(show_bad_value_count_by_slice)
call temp_check ( temp )
1795 if(show_all_bad_values)
call show_all_bad ( temp )
1796 write(err_msg_tmp,
'(a47,i7)')
'saturation vapor pressure table overflow, nbad=', nbad
1797 if(fms_error_handler(
'compute_mrs',err_msg_tmp,err_msg))
return
1806 real(kind=fms_svp_kind_) ,
intent(in) :: temp(:)
1807 integer :: nbad, ind, i
1811 real(fms_svp_kind_) :: dtinvll
1812 real(fms_svp_kind_) :: tminll
1813 real(fms_svp_kind_) :: tepsll
1815 dtinvll=real(dtinv,fms_svp_kind_)
1816 tminll=real(tmin,fms_svp_kind_)
1817 tepsll=real(teps,fms_svp_kind_)
1820 do i = 1,
size(temp,1)
1821 ind = int( dtinvll*(temp(i)-tminll + tepsll) )
1822 if (ind < 0 .or. ind > nlim) nbad = nbad+1
1830 real(kind=fms_svp_kind_) ,
intent(in) :: temp(:,:)
1835 do j = 1,
size(temp,2)
1836 nbad = nbad + check_1d( temp(:,j) )
1843 real(kind=fms_svp_kind_) ,
intent(in) :: temp(:)
1847 write(iunit,*)
'Bad temperatures (dimension 1): ', (check_1d(temp(i:i)),i=1,
size(temp,1))
1854 real(kind=fms_svp_kind_) ,
intent(in) :: temp(:,:)
1855 integer :: i, j, iunit
1858 write(iunit,*)
'Bad temperatures (dimension 1): ', (check_1d(temp(i,:)),i=1,
size(temp,1))
1859 write(iunit,*)
'Bad temperatures (dimension 2): ', (check_1d(temp(:,j)),j=1,
size(temp,2))
1866 real(kind=fms_svp_kind_),
intent(in) :: temp(:,:,:)
1867 integer :: i, j, k, iunit
1870 write(iunit,*)
'Bad temperatures (dimension 1): ', (check_2d(temp(i,:,:)),i=1,
size(temp,1))
1871 write(iunit,*)
'Bad temperatures (dimension 2): ', (check_2d(temp(:,j,:)),j=1,
size(temp,2))
1872 write(iunit,*)
'Bad temperatures (dimension 3): ', (check_2d(temp(:,:,k)),k=1,
size(temp,3))
1879 real(kind=fms_svp_kind_) ,
intent(in) :: temp
1881 character(len=256) :: output_msg
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_)
1892 ind = int( dtinvll*(temp-tminll+tepsll) )
1893 if (ind < 0 .or. ind > nlim)
then
1894 write(output_msg,
'(a,e10.3)')
'Bad temperature=',temp
1895 call mpp_error(warning, output_msg)
1903 real(kind=fms_svp_kind_) ,
intent(in) :: temp(:)
1905 character(len=256) :: output_msg
1908 real(FMS_SVP_KIND_) :: dtinvll
1909 real(FMS_SVP_KIND_) :: tminll
1910 real(FMS_SVP_KIND_) :: tepsll
1912 dtinvll=real(dtinv,fms_svp_kind_)
1913 tminll=real(tmin,fms_svp_kind_)
1914 tepsll=real(teps,fms_svp_kind_)
1917 ind = int( dtinvll*(temp(i)-tminll+tepsll) )
1918 if (ind < 0 .or. ind > nlim)
then
1919 write(output_msg,
'(a,e10.3,a,i4)')
'Bad temperature=',temp(i),
' at i=',i
1920 call mpp_error(warning,output_msg)
1929 real(kind=fms_svp_kind_) ,
intent(in) :: temp(:,:)
1930 integer :: i, j, ind
1931 character(len=256) :: output_msg
1934 real(FMS_SVP_KIND_) :: dtinvll
1935 real(FMS_SVP_KIND_) :: tminll
1936 real(FMS_SVP_KIND_) :: tepsll
1938 dtinvll=real(dtinv,fms_svp_kind_)
1939 tminll=real(tmin,fms_svp_kind_)
1940 tepsll=real(teps,fms_svp_kind_)
1944 ind = int( dtinvll*(temp(i,j)-tminll+tepsll) )
1945 if (ind < 0 .or. ind > nlim)
then
1946 write(output_msg,
'(a,e10.3,a,i4,a,i4)')
'Bad temperature=',temp(i,j),
' at i=',i,
' j=',j
1947 call mpp_error(warning, output_msg)
1957 real(kind=fms_svp_kind_),
intent(in) :: temp(:,:,:)
1958 integer :: i, j, k, ind
1959 character(len=256) :: output_msg
1962 real(FMS_SVP_KIND_) :: dtinvll
1963 real(FMS_SVP_KIND_) :: tminll
1964 real(FMS_SVP_KIND_) :: tepsll
1966 dtinvll=real(dtinv,fms_svp_kind_)
1967 tminll=real(tmin,fms_svp_kind_)
1968 tepsll=real(teps,fms_svp_kind_)
1973 ind = int( dtinvll*(temp(i,j,k)-tminll+tepsll) )
1974 if (ind < 0 .or. ind > nlim)
then
1975 write(output_msg,
'(a,e10.3,a,i4,a,i4,a,i4)')
'Bad temperature=',temp(i,j,k),
' at i=',i,
' j=',j,
' k=',k
1976 call mpp_error(warning, output_msg)
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)