35 PUBLIC ::
OPERATOR(==)
49 INTERFACE OPERATOR(==)
51 END INTERFACE OPERATOR(==)
59 '$Id: CloudCoeff_Define.f90 60152 2015-08-13 19:19:13Z paul.vandelst@noaa.gov $' 61 REAL(Double),
PARAMETER ::
zero = 0.0_double
63 INTEGER,
PARAMETER ::
set = 1
68 INTEGER,
PARAMETER ::
ml = 256
96 LOGICAL :: is_allocated = .false.
102 INTEGER(Long) :: n_mw_frequencies = 0
103 INTEGER(Long) :: n_mw_radii = 0
104 INTEGER(Long) :: n_ir_frequencies = 0
105 INTEGER(Long) :: n_ir_radii = 0
106 INTEGER(Long) :: n_temperatures = 0
107 INTEGER(Long) :: n_densities = 0
108 INTEGER(Long) :: max_legendre_terms = 0
109 INTEGER(Long) :: n_legendre_terms = 0
110 INTEGER(Long) :: max_phase_elements = 0
111 INTEGER(Long) :: n_phase_elements = 0
113 REAL(Double),
ALLOCATABLE :: frequency_mw(:)
114 REAL(Double),
ALLOCATABLE :: frequency_ir(:)
115 REAL(Double),
ALLOCATABLE :: reff_mw(:)
116 REAL(Double),
ALLOCATABLE :: reff_ir(:)
117 REAL(Double),
ALLOCATABLE :: temperature(:)
118 REAL(Double),
ALLOCATABLE :: density(:)
120 REAL(Double),
ALLOCATABLE :: ke_l_mw(:,:,:)
121 REAL(Double),
ALLOCATABLE :: w_l_mw(:,:,:)
122 REAL(Double),
ALLOCATABLE :: g_l_mw(:,:,:)
123 REAL(Double),
ALLOCATABLE :: pcoeff_l_mw(:,:,:,:,:)
125 REAL(Double),
ALLOCATABLE :: ke_s_mw(:,:,:)
126 REAL(Double),
ALLOCATABLE :: w_s_mw(:,:,:)
127 REAL(Double),
ALLOCATABLE :: g_s_mw(:,:,:)
128 REAL(Double),
ALLOCATABLE :: pcoeff_s_mw(:,:,:,:,:)
133 REAL(Double),
ALLOCATABLE :: ke_ir(:,:,:)
134 REAL(Double),
ALLOCATABLE :: w_ir(:,:,:)
135 REAL(Double),
ALLOCATABLE :: g_ir(:,:,:)
136 REAL(Double),
ALLOCATABLE :: pcoeff_ir(:,:,:,:)
190 status = cloudcoeff%Is_Allocated
218 cloudcoeff%Is_Allocated = .false.
219 cloudcoeff%n_MW_Frequencies = 0
220 cloudcoeff%n_MW_Radii = 0
221 cloudcoeff%n_IR_Frequencies = 0
222 cloudcoeff%n_IR_Radii = 0
223 cloudcoeff%n_Temperatures = 0
224 cloudcoeff%n_Densities = 0
225 cloudcoeff%Max_Legendre_Terms = 0
226 cloudcoeff%n_Legendre_Terms = 0
227 cloudcoeff%Max_Phase_Elements = 0
228 cloudcoeff%n_Phase_Elements = 0
337 INTEGER,
INTENT(IN) :: n_mw_frequencies
338 INTEGER,
INTENT(IN) :: n_mw_radii
339 INTEGER,
INTENT(IN) :: n_ir_frequencies
340 INTEGER,
INTENT(IN) :: n_ir_radii
341 INTEGER,
INTENT(IN) :: n_temperatures
342 INTEGER,
INTENT(IN) :: n_densities
343 INTEGER,
INTENT(IN) :: n_legendre_terms
344 INTEGER,
INTENT(IN) :: n_phase_elements
346 CHARACTER(*),
PARAMETER :: routine_name =
'CloudCoeff_Create' 348 INTEGER :: alloc_stat(4)
351 IF ( n_mw_frequencies < 1 .OR. &
352 n_mw_radii < 1 .OR. &
353 n_ir_frequencies < 1 .OR. &
354 n_ir_radii < 1 .OR. &
355 n_temperatures < 1 .OR. &
356 n_densities < 1 .OR. &
357 n_legendre_terms < 0 .OR. &
358 n_phase_elements < 1 )
RETURN 364 ALLOCATE( cloudcoeff%Frequency_MW(n_mw_frequencies), &
365 cloudcoeff%Frequency_IR(n_ir_frequencies), &
366 cloudcoeff%Reff_MW(n_mw_radii), &
367 cloudcoeff%Reff_IR(n_ir_radii), &
368 cloudcoeff%Temperature(n_temperatures), &
369 cloudcoeff%Density(n_densities), &
370 stat = alloc_stat(1) )
372 ALLOCATE( cloudcoeff%ke_L_MW(n_mw_frequencies, n_mw_radii, n_temperatures), &
373 cloudcoeff%w_L_MW(n_mw_frequencies , n_mw_radii, n_temperatures), &
374 cloudcoeff%g_L_MW(n_mw_frequencies , n_mw_radii, n_temperatures), &
375 cloudcoeff%pcoeff_L_MW(n_mw_frequencies , &
378 0:n_legendre_terms, &
379 n_phase_elements ), &
380 stat = alloc_stat(2) )
382 ALLOCATE( cloudcoeff%ke_S_MW(n_mw_frequencies, n_mw_radii, n_densities), &
383 cloudcoeff%w_S_MW(n_mw_frequencies , n_mw_radii, n_densities), &
384 cloudcoeff%g_S_MW(n_mw_frequencies , n_mw_radii, n_densities), &
385 cloudcoeff%pcoeff_S_MW(n_mw_frequencies , &
388 0:n_legendre_terms, &
389 n_phase_elements ), &
390 stat = alloc_stat(3) )
392 ALLOCATE( cloudcoeff%ke_IR(n_ir_frequencies, n_ir_radii, 0:n_densities), &
393 cloudcoeff%w_IR(n_ir_frequencies , n_ir_radii, 0:n_densities), &
394 cloudcoeff%g_IR(n_ir_frequencies , n_ir_radii, 0:n_densities), &
395 cloudcoeff%pcoeff_IR(n_ir_frequencies , &
398 0:n_legendre_terms ), &
399 stat = alloc_stat(4) )
400 IF ( any(alloc_stat /= 0) )
RETURN 405 cloudcoeff%n_MW_Frequencies = n_mw_frequencies
406 cloudcoeff%n_MW_Radii = n_mw_radii
407 cloudcoeff%n_IR_Frequencies = n_ir_frequencies
408 cloudcoeff%n_IR_Radii = n_ir_radii
409 cloudcoeff%n_Temperatures = n_temperatures
410 cloudcoeff%n_Densities = n_densities
411 cloudcoeff%Max_Legendre_Terms = n_legendre_terms
412 cloudcoeff%n_Legendre_Terms = n_legendre_terms
413 cloudcoeff%Max_Phase_Elements = n_phase_elements
414 cloudcoeff%n_Phase_Elements = n_phase_elements
416 cloudcoeff%Frequency_MW =
zero 417 cloudcoeff%Frequency_IR =
zero 418 cloudcoeff%Reff_MW =
zero 419 cloudcoeff%Reff_IR =
zero 420 cloudcoeff%Temperature =
zero 421 cloudcoeff%Density =
zero 423 cloudcoeff%ke_L_MW =
zero 424 cloudcoeff%w_L_MW =
zero 425 cloudcoeff%g_L_MW =
zero 426 cloudcoeff%pcoeff_L_MW =
zero 428 cloudcoeff%ke_S_MW =
zero 429 cloudcoeff%w_S_MW =
zero 430 cloudcoeff%g_S_MW =
zero 431 cloudcoeff%pcoeff_S_MW =
zero 433 cloudcoeff%ke_IR =
zero 434 cloudcoeff%w_IR =
zero 435 cloudcoeff%g_IR =
zero 436 cloudcoeff%pcoeff_IR =
zero 440 cloudcoeff%Is_Allocated = .true.
470 LOGICAL,
OPTIONAL,
INTENT(IN) :: pause
472 INTEGER :: i, j, k, l, m
477 IF (
PRESENT(pause) ) wait = pause
479 WRITE(*,
'(1x,"CloudCoeff OBJECT")')
481 WRITE(*,
'(3x,"n_MW_Frequencies :",1x,i0)') cloudcoeff%n_MW_Frequencies
482 WRITE(*,
'(3x,"n_MW_Radii :",1x,i0)') cloudcoeff%n_MW_Radii
483 WRITE(*,
'(3x,"n_IR_Frequencies :",1x,i0)') cloudcoeff%n_IR_Frequencies
484 WRITE(*,
'(3x,"n_IR_Radii :",1x,i0)') cloudcoeff%n_IR_Radii
485 WRITE(*,
'(3x,"n_Temperatures :",1x,i0)') cloudcoeff%n_Temperatures
486 WRITE(*,
'(3x,"n_Densities :",1x,i0)') cloudcoeff%n_Densities
487 WRITE(*,
'(3x,"n_Legendre_Terms :",1x,i0)') cloudcoeff%n_Legendre_Terms
488 WRITE(*,
'(3x,"n_Phase_Elements :",1x,i0)') cloudcoeff%n_Phase_Elements
491 WRITE(*,
'(/3x,"Dimensional vectors...")')
492 WRITE(*,
'(5x,"CloudCoeff Frequency_MW:")')
493 WRITE(*,
'(5(1x,es13.6,:))') cloudcoeff%Frequency_MW
494 WRITE(*,
'(5x,"CloudCoeff Frequency_IR:")')
495 WRITE(*,
'(5(1x,es13.6,:))') cloudcoeff%Frequency_IR
496 WRITE(*,
'(5x,"CloudCoeff Reff_MW :")')
497 WRITE(*,
'(5(1x,es13.6,:))') cloudcoeff%Reff_MW
498 WRITE(*,
'(5x,"CloudCoeff Reff_IR :")')
499 WRITE(*,
'(5(1x,es13.6,:))') cloudcoeff%Reff_IR
500 WRITE(*,
'(5x,"CloudCoeff Temperature :")')
501 WRITE(*,
'(5(1x,es13.6,:))') cloudcoeff%Temperature
502 WRITE(*,
'(5x,"CloudCoeff Density :")')
503 WRITE(*,
'(5(1x,es13.6,:))') cloudcoeff%Density
506 WRITE(*,
'(/3x,"Microwave data...")')
510 WRITE(*,
'(/5x,"Press <ENTER> to view the microwave liquid phase mass extinction coefficients")')
513 DO j = 1, cloudcoeff%n_Temperatures
514 WRITE(*,
'(5x,"Microwave liquid phase mass extinction coefficients:")')
515 WRITE(*,
'(7x,"Temperature : ",es13.6)') cloudcoeff%Temperature(j)
516 DO i = 1, cloudcoeff%n_MW_Radii
517 WRITE(*,
'(7x,"Effective radius: ",es13.6)') cloudcoeff%Reff_MW(i)
518 WRITE(*,
'(5(1x,es13.6,:))') cloudcoeff%ke_L_MW(:,i,j)
523 WRITE(*,
'(/5x,"Press <ENTER> to view the microwave liquid phase single scatter albedo")')
526 DO j = 1, cloudcoeff%n_Temperatures
527 WRITE(*,
'(5x,"Microwave liquid phase single scatter albedo:")')
528 WRITE(*,
'(7x,"Temperature : ",es13.6)') cloudcoeff%Temperature(j)
529 DO i = 1, cloudcoeff%n_MW_Radii
530 WRITE(*,
'(7x,"Effective radius: ",es13.6)') cloudcoeff%Reff_MW(i)
531 WRITE(*,
'(5(1x,es13.6,:))') cloudcoeff%w_L_MW(:,i,j)
536 WRITE(*,
'(/5x,"Press <ENTER> to view the microwave liquid phase asymmetry parameter")')
539 DO j = 1, cloudcoeff%n_Temperatures
540 WRITE(*,
'(5x,"Microwave liquid phase asymmetry parameter:")')
541 WRITE(*,
'(7x,"Temperature : ",es13.6)') cloudcoeff%Temperature(j)
542 DO i = 1, cloudcoeff%n_MW_Radii
543 WRITE(*,
'(7x,"Effective radius: ",es13.6)') cloudcoeff%Reff_MW(i)
544 WRITE(*,
'(5(1x,es13.6,:))') cloudcoeff%g_L_MW(:,i,j)
548 DO m = 1, cloudcoeff%n_Stream_Sets
550 WRITE(*,
'(/5x,"Press <ENTER> to view the ",i0,"-stream microwave liquid ",& 551 &"phase phase coefficients")') cloudcoeff%n_Streams(m)
554 WRITE(*,
'(5x,i0,"-stream microwave liquid phase phase coefficients:")') cloudcoeff%n_Streams(m)
555 DO l = 1, cloudcoeff%n_Phase_Elements
556 WRITE(*,
'(7x,"Phase element: ",i0)') l
557 DO k = 1, cloudcoeff%n_Streams(m)
558 WRITE(*,
'(7x,"Legendre term: ",i0)') k
559 kidx = k + cloudcoeff%Legendre_Offset(m)
560 DO j = 1, cloudcoeff%n_Temperatures
561 WRITE(*,
'(7x,"Temperature : ",es13.6)') cloudcoeff%Temperature(j)
562 DO i = 1, cloudcoeff%n_MW_Radii
563 WRITE(*,
'(7x,"Effective radius: ",es13.6)') cloudcoeff%Reff_MW(i)
564 WRITE(*,
'(5(1x,es13.6,:))') cloudcoeff%pcoeff_L_MW(:,i,j,kidx,l)
573 WRITE(*,
'(/5x,"Press <ENTER> to view the microwave solid phase mass extinction coefficients")')
576 DO j = 1, cloudcoeff%n_Densities
577 WRITE(*,
'(5x,"Microwave solid phase mass extinction coefficients:")')
578 WRITE(*,
'(7x,"Density : ",es13.6)') cloudcoeff%Density(j)
579 DO i = 1, cloudcoeff%n_MW_Radii
580 WRITE(*,
'(7x,"Effective radius: ",es13.6)') cloudcoeff%Reff_MW(i)
581 WRITE(*,
'(5(1x,es13.6,:))') cloudcoeff%ke_S_MW(:,i,j)
586 WRITE(*,
'(/5x,"Press <ENTER> to view the microwave solid phase single scatter albedo")')
589 DO j = 1, cloudcoeff%n_Densities
590 WRITE(*,
'(5x,"Microwave solid phase single scatter albedo:")')
591 WRITE(*,
'(7x,"Density : ",es13.6)') cloudcoeff%Density(j)
592 DO i = 1, cloudcoeff%n_MW_Radii
593 WRITE(*,
'(7x,"Effective radius: ",es13.6)') cloudcoeff%Reff_MW(i)
594 WRITE(*,
'(5(1x,es13.6,:))') cloudcoeff%w_S_MW(:,i,j)
599 WRITE(*,
'(/5x,"Press <ENTER> to view the microwave solid phase asymmetry parameter")')
602 DO j = 1, cloudcoeff%n_Densities
603 WRITE(*,
'(5x,"Microwave solid phase asymmetry parameter:")')
604 WRITE(*,
'(7x,"Density : ",es13.6)') cloudcoeff%Density(j)
605 DO i = 1, cloudcoeff%n_MW_Radii
606 WRITE(*,
'(7x,"Effective radius: ",es13.6)') cloudcoeff%Reff_MW(i)
607 WRITE(*,
'(5(1x,es13.6,:))') cloudcoeff%g_S_MW(:,i,j)
611 DO m = 1, cloudcoeff%n_Stream_Sets
613 WRITE(*,
'(/5x,"Press <ENTER> to view the ",i0,"-stream microwave solid ",& 614 &"phase phase coefficients")') cloudcoeff%n_Streams(m)
617 WRITE(*,
'(5x,i0,"-stream microwave solid phase phase coefficients:")') cloudcoeff%n_Streams(m)
618 DO l = 1, cloudcoeff%n_Phase_Elements
619 WRITE(*,
'(7x,"Phase element: ",i0)') l
620 DO k = 1, cloudcoeff%n_Streams(m)
621 WRITE(*,
'(7x,"Legendre term: ",i0)') k
622 kidx = k + cloudcoeff%Legendre_Offset(m)
623 DO j = 1, cloudcoeff%n_Densities
624 WRITE(*,
'(7x,"Density : ",es13.6)') cloudcoeff%Density(j)
625 DO i = 1, cloudcoeff%n_MW_Radii
626 WRITE(*,
'(7x,"Effective radius: ",es13.6)') cloudcoeff%Reff_MW(i)
627 WRITE(*,
'(5(1x,es13.6,:))') cloudcoeff%pcoeff_S_MW(:,i,j,kidx,l)
636 WRITE(*,
'(/3x,"Infrared data...")')
640 WRITE(*,
'(/5x,"Press <ENTER> to view the infrared liquid phase mass extinction coefficients")')
643 WRITE(*,
'(5x,"Infrared liquid phase mass extinction coefficients:")')
644 DO i = 1, cloudcoeff%n_IR_Radii
645 WRITE(*,
'(7x,"Effective radius: ",es13.6)') cloudcoeff%Reff_IR(i)
646 WRITE(*,
'(5(1x,es13.6,:))') cloudcoeff%ke_IR(:,i,0)
650 WRITE(*,
'(/5x,"Press <ENTER> to view the infrared liquid phase single scatter albedo")')
653 WRITE(*,
'(5x,"Infrared liquid phase single scatter albedo:")')
654 DO i = 1, cloudcoeff%n_IR_Radii
655 WRITE(*,
'(7x,"Effective radius: ",es13.6)') cloudcoeff%Reff_IR(i)
656 WRITE(*,
'(5(1x,es13.6,:))') cloudcoeff%w_IR(:,i,0)
660 WRITE(*,
'(/5x,"Press <ENTER> to view the infrared liquid phase asymmetry parameter")')
663 WRITE(*,
'(5x,"Infrared liquid phase asymmetry parameter:")')
664 DO i = 1, cloudcoeff%n_IR_Radii
665 WRITE(*,
'(7x,"Effective radius: ",es13.6)') cloudcoeff%Reff_IR(i)
666 WRITE(*,
'(5(1x,es13.6,:))') cloudcoeff%g_IR(:,i,0)
669 DO m = 1, cloudcoeff%n_Stream_Sets
671 WRITE(*,
'(/5x,"Press <ENTER> to view the ",i0,"-stream infrared liquid ",& 672 &"phase phase coefficients")') cloudcoeff%n_Streams(m)
675 WRITE(*,
'(5x,i0,"-stream infrared liquid phase phase coefficients:")') cloudcoeff%n_Streams(m)
676 DO k = 1, cloudcoeff%n_Streams(m)
677 WRITE(*,
'(7x,"Legendre term: ",i0)') k
678 kidx = k + cloudcoeff%Legendre_Offset(m)
679 DO i = 1, cloudcoeff%n_IR_Radii
680 WRITE(*,
'(7x,"Effective radius: ",es13.6)') cloudcoeff%Reff_IR(i)
681 WRITE(*,
'(5(1x,es13.6,:))') cloudcoeff%pcoeff_IR(:,i,0,kidx)
688 WRITE(*,
'(/5x,"Press <ENTER> to view the infrared solid phase mass extinction coefficients")')
691 DO j = 1, cloudcoeff%n_Densities
692 WRITE(*,
'(5x,"Infrared solid phase mass extinction coefficients:")')
693 WRITE(*,
'(7x,"Density : ",es13.6)') cloudcoeff%Density(j)
694 DO i = 1, cloudcoeff%n_IR_Radii
695 WRITE(*,
'(7x,"Effective radius: ",es13.6)') cloudcoeff%Reff_IR(i)
696 WRITE(*,
'(5(1x,es13.6,:))') cloudcoeff%ke_IR(:,i,j)
701 WRITE(*,
'(/5x,"Press <ENTER> to view the infrared solid phase single scatter albedo")')
704 DO j = 1, cloudcoeff%n_Densities
705 WRITE(*,
'(5x,"Infrared solid phase single scatter albedo:")')
706 WRITE(*,
'(7x,"Density : ",es13.6)') cloudcoeff%Density(j)
707 DO i = 1, cloudcoeff%n_IR_Radii
708 WRITE(*,
'(7x,"Effective radius: ",es13.6)') cloudcoeff%Reff_IR(i)
709 WRITE(*,
'(5(1x,es13.6,:))') cloudcoeff%w_IR(:,i,j)
714 WRITE(*,
'(/5x,"Press <ENTER> to view the infrared solid phase asymmetry parameter")')
717 DO j = 1, cloudcoeff%n_Densities
718 WRITE(*,
'(5x,"Infrared solid phase asymmetry parameter:")')
719 WRITE(*,
'(7x,"Density : ",es13.6)') cloudcoeff%Density(j)
720 DO i = 1, cloudcoeff%n_IR_Radii
721 WRITE(*,
'(7x,"Effective radius: ",es13.6)') cloudcoeff%Reff_IR(i)
722 WRITE(*,
'(5(1x,es13.6,:))') cloudcoeff%g_IR(:,i,j)
726 DO m = 1, cloudcoeff%n_Stream_Sets
728 WRITE(*,
'(/5x,"Press <ENTER> to view the ",i0,"-stream infrared solid ",& 729 &"phase phase coefficients")') cloudcoeff%n_Streams(m)
732 WRITE(*,
'(5x,i0,"-stream infrared solid phase phase coefficients:")') cloudcoeff%n_Streams(m)
733 DO k = 1, cloudcoeff%n_Streams(m)
734 WRITE(*,
'(7x,"Legendre term: ",i0)') k
735 kidx = k + cloudcoeff%Legendre_Offset(m)
736 DO j = 1, cloudcoeff%n_Densities
737 WRITE(*,
'(7x,"Density : ",es13.6)') cloudcoeff%Density(j)
738 DO i = 1, cloudcoeff%n_IR_Radii
739 WRITE(*,
'(7x,"Effective radius: ",es13.6)') cloudcoeff%Reff_IR(i)
740 WRITE(*,
'(5(1x,es13.6,:))') cloudcoeff%pcoeff_IR(:,i,j,kidx)
783 CHARACTER(*),
PARAMETER :: routine_name =
'CloudCoeff_ValidRelease' 794 WRITE( msg,
'("A CloudCoeff data update is needed. ", & 795 &"CloudCoeff release is ",i0, & 796 &". Valid release is ",i0,"." )' ) &
806 WRITE( msg,
'("A CloudCoeff software update is needed. ", & 807 &"CloudCoeff release is ",i0, & 808 &". Valid release is ",i0,"." )' ) &
851 CHARACTER(*),
INTENT(OUT) :: info
853 INTEGER,
PARAMETER :: carriage_return = 13
854 INTEGER,
PARAMETER :: linefeed = 10
856 CHARACTER(2000) :: long_string
859 WRITE( long_string, &
860 '( a,1x,"CloudCoeff RELEASE.VERSION: ", i2, ".", i2.2, 2x, & 861 &"N_FREQUENCIES(MW)=",i4,2x,& 862 &"N_FREQUENCIES(IR)=",i4,2x,& 863 &"N_RADII(MW)=",i2,2x,& 864 &"N_RADII(IR)=",i2,2x,& 865 &"N_TEMPERATURES=",i2,2x,& 866 &"N_DENSITIES=",i2,2x,& 867 &"N_LEGENDRE_TERMS=",i2,2x,& 868 &"N_PHASE_ELEMENTS=",i2 )' ) &
869 achar(carriage_return)//achar(linefeed), &
870 cloudcoeff%Release, cloudcoeff%Version, &
871 cloudcoeff%n_MW_Frequencies, &
872 cloudcoeff%n_IR_Frequencies, &
873 cloudcoeff%n_MW_Radii , &
874 cloudcoeff%n_IR_Radii , &
875 cloudcoeff%n_Temperatures , &
876 cloudcoeff%n_Densities , &
877 cloudcoeff%n_Legendre_Terms, &
878 cloudcoeff%n_Phase_Elements
882 info = long_string(1:
min(len(info), len_trim(long_string)))
911 CHARACTER(*),
INTENT(OUT) :: id
972 IF ( (x%n_MW_Frequencies /= y%n_MW_Frequencies) .OR. &
973 (x%n_IR_Frequencies /= y%n_IR_Frequencies) .OR. &
974 (x%n_MW_Radii /= y%n_MW_Radii ) .OR. &
975 (x%n_IR_Radii /= y%n_IR_Radii ) .OR. &
976 (x%n_Temperatures /= y%n_Temperatures ) .OR. &
977 (x%n_Densities /= y%n_Densities ) .OR. &
978 (x%n_Legendre_Terms /= y%n_Legendre_Terms) .OR. &
979 (x%n_Phase_Elements /= y%n_Phase_Elements) )
RETURN 981 IF ( all(x%Frequency_MW .equalto. y%Frequency_MW ) .AND. &
982 all(x%Frequency_IR .equalto. y%Frequency_IR ) .AND. &
983 all(x%Reff_MW .equalto. y%Reff_MW ) .AND. &
984 all(x%Reff_IR .equalto. y%Reff_IR ) .AND. &
985 all(x%Temperature .equalto. y%Temperature ) .AND. &
986 all(x%Density .equalto. y%Density ) .AND. &
987 all(x%ke_L_MW .equalto. y%ke_L_MW ) .AND. &
988 all(x%w_L_MW .equalto. y%w_L_MW ) .AND. &
989 all(x%g_L_MW .equalto. y%g_L_MW ) .AND. &
990 all(x%pcoeff_L_MW .equalto. y%pcoeff_L_MW ) .AND. &
991 all(x%ke_S_MW .equalto. y%ke_S_MW ) .AND. &
992 all(x%w_S_MW .equalto. y%w_S_MW ) .AND. &
993 all(x%g_S_MW .equalto. y%g_S_MW ) .AND. &
994 all(x%pcoeff_S_MW .equalto. y%pcoeff_S_MW ) .AND. &
995 all(x%ke_IR .equalto. y%ke_IR ) .AND. &
996 all(x%w_IR .equalto. y%w_IR ) .AND. &
997 all(x%g_IR .equalto. y%g_IR ) .AND. &
998 all(x%pcoeff_IR .equalto. y%pcoeff_IR ) ) &
integer, parameter, public failure
integer, parameter, public long
character(*), parameter module_version_id
elemental subroutine, public cloudcoeff_destroy(CloudCoeff)
elemental subroutine, public cloudcoeff_create(CloudCoeff, n_MW_Frequencies, n_MW_Radii, n_IR_Frequencies, n_IR_Radii, n_Temperatures, n_Densities, n_Legendre_Terms, n_Phase_Elements)
integer, parameter, public double
integer, parameter cloudcoeff_release
subroutine, public cloudcoeff_inspect(CloudCoeff, Pause)
integer, dimension(def_n_stream_sets), parameter def_legendre_offset
real(double), parameter zero
integer, parameter cloudcoeff_version
subroutine, public cloudcoeff_defineversion(Id)
elemental logical function cloudcoeff_equal(x, y)
integer, parameter def_n_stream_sets
recursive subroutine, public display_message(Routine_Name, Message, Error_State, Message_Log)
subroutine, public cloudcoeff_info(CloudCoeff, Info)
elemental logical function, public cloudcoeff_associated(CloudCoeff)
logical function, public cloudcoeff_validrelease(CloudCoeff)
integer, parameter, public success
integer, parameter, public information
integer, dimension(def_n_stream_sets), parameter def_n_streams