source: codes/icosagcm/devel/src/diagnostics/compute_diagnostics.f90 @ 1052

Last change on this file since 1052 was 1052, checked in by dubos, 4 years ago

devel : diagnose divergence and vorticity

File size: 2.4 KB
RevLine 
[906]1MODULE compute_diagnostics_mod
[952]2  USE icosa
[906]3  IMPLICIT NONE
[952]4  PRIVATE
[906]5
6  INTERFACE
7
8    SUBROUTINE comp_rhodz(flag,ps,rhodz)
[952]9      IMPORT
[906]10      LOGICAL, INTENT(IN) :: flag
[1027]11      REAL(rstd),INTENT(IN)  :: ps(:)
12      REAL(rstd),INTENT(INOUT) :: rhodz(:,:)
[906]13    END SUBROUTINE comp_rhodz
14
[913]15    SUBROUTINE comp_pression(ps, p, offset)
[952]16      IMPORT
[913]17      INTEGER, INTENT(IN) :: offset
[1027]18      REAL(rstd), INTENT(IN) :: ps(:)
19      REAL(rstd), INTENT(OUT) :: p(:,:)
[913]20    END SUBROUTINE comp_pression
[952]21
22    SUBROUTINE comp_temperature(pmid,q,temp)
23      IMPORT
[1027]24      REAL(rstd),INTENT(IN)    :: pmid(:,:)
25      REAL(rstd),INTENT(IN)    :: q(:,:,:)
26      REAL(rstd),INTENT(INOUT) :: temp(:,:)
[952]27    END SUBROUTINE comp_temperature
28
[1052]29    SUBROUTINE comp_vorticity(ue, vort)
30      IMPORT
31      REAL(rstd),INTENT(IN)  :: ue(:,:)
32      REAL(rstd),INTENT(OUT) :: vort(:,:)
33    END SUBROUTINE comp_vorticity
34
35    SUBROUTINE comp_divergence(ue, div)
36      IMPORT
37      REAL(rstd),INTENT(IN)  :: ue(:,:)
38      REAL(rstd),INTENT(OUT) :: div(:,:)
39    END SUBROUTINE comp_divergence
40
[955]41    SUBROUTINE comp_hydro_press(rhodz, theta_rhodz, ps, p)
42      IMPORT
[1027]43      REAL(rstd),INTENT(IN)  :: rhodz(:,:)
44      REAL(rstd),INTENT(IN)  :: theta_rhodz(:,:,:)
45      REAL(rstd),INTENT(OUT) :: ps(:)
46      REAL(rstd),INTENT(OUT) :: p(:,:)
[955]47    END SUBROUTINE comp_hydro_press
48
[958]49    SUBROUTINE comp_vert_interp(pmid,in,out,pval)
50      IMPORT
[1027]51      REAL(rstd),INTENT(IN) :: pmid(:,:)
52      REAL(rstd),INTENT(IN) :: in(:,:)
53      REAL(rstd),INTENT(OUT):: out(:)
[958]54      REAL(rstd),INTENT(IN) :: pval
55    END SUBROUTINE comp_vert_interp
56
[906]57  END INTERFACE
58
[1034]59  PROCEDURE(comp_rhodz),       POINTER, SAVE :: compute_rhodz   => NULL()
60  PROCEDURE(comp_pression),    POINTER, SAVE :: compute_pression => NULL(), compute_pression_mid => NULL()
61  PROCEDURE(comp_temperature), POINTER, SAVE :: compute_temperature => NULL()
[1052]62  PROCEDURE(comp_vorticity),   POINTER, SAVE :: compute_vorticity => NULL()
63  PROCEDURE(comp_divergence),  POINTER, SAVE :: compute_divergence => NULL()
[1034]64  PROCEDURE(comp_hydro_press), POINTER, SAVE :: compute_hydrostatic_pressure => NULL()
65  PROCEDURE(comp_vert_interp), POINTER, SAVE :: compute_vertical_interp => NULL()
[906]66
[1052]67  PUBLIC :: compute_rhodz, compute_pression, compute_pression_mid, compute_temperature, &
68       compute_vorticity, compute_divergence, compute_hydrostatic_pressure, compute_vertical_interp
[952]69
[906]70END MODULE compute_diagnostics_mod
Note: See TracBrowser for help on using the repository browser.