Ignore:
Timestamp:
09/23/20 16:00:58 (4 years ago)
Author:
dubos
Message:

devel : diagnose divergence and vorticity

Location:
codes/icosagcm/devel/src/diagnostics
Files:
2 added
3 edited

Legend:

Unmodified
Added
Removed
  • codes/icosagcm/devel/src/diagnostics/check_conserve.f90

    r913 r1052  
    5252 
    5353  SUBROUTINE check_conserve(f_ps,f_dps,f_ue,f_theta_rhodz,f_phis,it)  
    54   USE vorticity_mod 
     54  USE compute_vorticity_mod 
    5555  USE caldyn_gcm_mod 
    5656  USE exner_mod  
     
    153153 
    154154  SUBROUTINE check_conserve_detailed(it,tag, f_ps,f_dps,f_ue,f_theta_rhodz,f_phis)  
    155     USE vorticity_mod 
    156155    USE caldyn_gcm_mod 
    157156    USE exner_mod  
    158 !    USE mpipara, ONLY : is_mpi_root, comm_icosa 
    159157    USE omp_para, ONLY : is_master 
    160158    INTEGER, INTENT(IN) :: tag 
     
    268266  SUBROUTINE check_energy(f_ue,f_theta_rhodz,f_phis, etot, & 
    269267                      stot, AAM_mass_tot, AAM_vel_tot, AAM_velp_tot, AAM_velm_tot, rmsvtot)   
    270   USE vorticity_mod 
    271268    TYPE(t_field), POINTER :: f_ue(:) 
    272269    TYPE(t_field), POINTER :: f_theta_rhodz(:) 
  • codes/icosagcm/devel/src/diagnostics/compute_diagnostics.f90

    r1034 r1052  
    2727    END SUBROUTINE comp_temperature 
    2828 
     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 
    2941    SUBROUTINE comp_hydro_press(rhodz, theta_rhodz, ps, p) 
    3042      IMPORT 
     
    4860  PROCEDURE(comp_pression),    POINTER, SAVE :: compute_pression => NULL(), compute_pression_mid => NULL() 
    4961  PROCEDURE(comp_temperature), POINTER, SAVE :: compute_temperature => NULL() 
     62  PROCEDURE(comp_vorticity),   POINTER, SAVE :: compute_vorticity => NULL() 
     63  PROCEDURE(comp_divergence),  POINTER, SAVE :: compute_divergence => NULL() 
    5064  PROCEDURE(comp_hydro_press), POINTER, SAVE :: compute_hydrostatic_pressure => NULL() 
    5165  PROCEDURE(comp_vert_interp), POINTER, SAVE :: compute_vertical_interp => NULL() 
    5266 
    53   PUBLIC :: compute_rhodz, compute_pression, compute_pression_mid, compute_temperature, compute_hydrostatic_pressure, & 
    54        compute_vertical_interp 
     67  PUBLIC :: compute_rhodz, compute_pression, compute_pression_mid, compute_temperature, & 
     68       compute_vorticity, compute_divergence, compute_hydrostatic_pressure, compute_vertical_interp 
    5569 
    5670END MODULE compute_diagnostics_mod 
  • codes/icosagcm/devel/src/diagnostics/observable.f90

    r955 r1052  
    4646    USE compute_temperature_mod 
    4747    USE compute_velocity_mod 
     48    USE compute_vorticity_mod 
     49    USE compute_divergence_mod 
    4850    USE vertical_interp_mod 
    4951    USE theta2theta_rhodz_mod 
     
    109111 
    110112       CALL output_field("temp_init",f_buf_i) 
     113       CALL output_field("vort_init",f_buf_v) 
    111114    ELSE 
    112115       CALL output_field("p",f_pmid) 
     
    123126       CALL vertical_interp(f_pmid,f_buf_i,f_buf_s,preff) 
    124127       CALL output_field("SST",f_buf_s)        
     128    END IF 
     129 
     130    CALL vorticity(f_u, f_buf_v) 
     131    CALL divergence(f_u, f_buf_i) 
     132    IF(init) THEN 
     133       CALL output_field("vort_init",f_buf_v) 
     134       CALL output_field("div_init",f_buf_i) 
     135    ELSE 
     136       CALL output_field("vort",f_buf_v) 
     137       CALL output_field("div",f_buf_i) 
    125138    END IF 
    126139     
Note: See TracChangeset for help on using the changeset viewer.