Changeset 1052


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

devel : diagnose divergence and vorticity

Location:
codes/icosagcm/devel
Files:
8 added
9 edited

Legend:

Unmodified
Added
Removed
  • codes/icosagcm/devel/arch/arch-X64_IRENE.env

    r809 r1052  
    1 # module c++/gnu is needed to link with XIOS 
    2 # module feature/openmpi/mpi_compiler/intel is made necessary by c++/gnu 
    3  
    4 module purge 
    5 module load feature/openmpi/mpi_compiler/intel 
    6 module load c++/gnu/7.3.0 
    7 module load intel/17.0.6.256 
    8 module load mpi/openmpi/2.0.4 
     1module unload netcdf-c netcdf-fortran hdf5 flavor perl hdf5 boost blitz mpi gnu 
     2#module purge 
    93module load flavor/hdf5/parallel 
    104module load netcdf-fortran/4.4.4 
    11 module load mkl/17.0.6.256 
    125module load hdf5/1.8.20 
     6 
     7# module gnu is needed to link with XIOS 
     8# module feature/openmpi/mpi_compiler/intel is made necessary by gnu 
     9module load gnu 
     10module load feature/bridge/heterogenous_mpmd 
     11 
    1312module load parmetis/4.0.3 
  • codes/icosagcm/devel/src/base/init_grid_param.f90

    r1051 r1052  
    5555    USE compute_pression_mod 
    5656    USE compute_temperature_mod 
     57    USE compute_vorticity_mod 
     58    USE compute_divergence_mod 
    5759    USE vertical_interp_mod 
    5860     
     
    6870    compute_pression_mid => compute_pression_mid_hex 
    6971    compute_temperature => compute_temperature_hex 
     72    compute_vorticity => compute_vorticity_hex 
     73    compute_divergence => compute_divergence_hex 
    7074    compute_hydrostatic_pressure => compute_hydrostatic_pressure_hex 
    7175    compute_vertical_interp => compute_vertical_interp_hex 
     
    8387    USE compute_pression_mod 
    8488    USE compute_temperature_mod 
     89    USE compute_vorticity_mod 
     90    USE compute_divergence_mod 
    8591    USE vertical_interp_mod 
    8692     
     
    96102    compute_pression_mid => compute_pression_mid_unst 
    97103    compute_temperature => compute_temperature_unst 
     104    compute_vorticity => compute_vorticity_unst 
     105    compute_divergence => compute_divergence_unst 
    98106    compute_hydrostatic_pressure => compute_hydrostatic_pressure_unst 
    99107    compute_vertical_interp => compute_vertical_interp_unst 
  • codes/icosagcm/devel/src/base/init_grid_param.j90

    r1051 r1052  
    5050  END SUBROUTINE  init_grid_param 
    5151 
    52 {%- set diags=('rhodz','pression','pression_mid','temperature','hydrostatic_pressure','vertical_interp', 
     52{%- set diags=('rhodz','pression','pression_mid','temperature','vorticity','divergence', 'hydrostatic_pressure','vertical_interp',  
    5353'pvort_only','theta','geopot','caldyn_fast','caldyn_slow_hydro','caldyn_coriolis') %} 
    5454{% for grid in 'hex','unst' %} 
     
    5858    USE compute_pression_mod 
    5959    USE compute_temperature_mod 
     60    USE compute_vorticity_mod 
     61    USE compute_divergence_mod 
    6062    USE vertical_interp_mod 
    6163     
  • 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     
  • codes/icosagcm/devel/src/unstructured/unstructured.h90

    r796 r1052  
    3737#define SIGNS sign1,sign2,sign3,sign4,sign5,sign6 
    3838#define EDGE_ENDS ij_up1,ij_up2,ij_up3,ij_up4,ij_up5,ij_up6,ij_down1,ij_down2,ij_down3,ij_down4,ij_down5,ij_down6 
    39 #define LENGTHS le_de1,le_de2,le_de3,le_de4,le_de5,le_de6 
     39#define LENGTHS1 le_de1,le_de2,le_de3,le_de4,le_de5,le_de6 
     40#define LENGTHS2 de1,de2,de3,de4,de5,de6 
     41#define LENGTHS3 le1,le2,le3,le4,le5,le6 
    4042#define DECLARE_INDICES INTEGER INDICES1,INDICES2 
    41 #define DECLARE_EDGES NUM SIGNS,LENGTHS ; INTEGER EDGES, EDGE_ENDS 
     43#define DECLARE_EDGES NUM SIGNS,LENGTHS1,LENGTHS2,LENGTHS3 ; INTEGER EDGES, EDGE_ENDS 
    4244#define DECLARE_VERTICES INTEGER VERTICES 
    4345 
  • codes/icosagcm/devel/xml/field_def_dynamico.xml

    r1039 r1052  
    2828      <field_group axis_ref="lev">  
    2929        <field id="mass" /> 
     30        <field id="div" /> 
    3031        <field id="p" /> 
    3132        <field id="dmass"/> 
     
    8283         
    8384        <field id="mass_init" /> 
     85        <field id="div_init" /> 
    8486        <field id="p_init" /> 
    8587        <field id="theta_init" /> 
     
    123125    <field_group domain_ref="v" axis_ref="lev"> 
    124126      <field id="vort" /> 
     127      <field id="vort_init" /> 
    125128      <field id="pv" /> 
    126129    </field_group> 
  • codes/icosagcm/devel/xml/file_def_dynamico_native.xml

    r1039 r1052  
    2727      <field field_ref="p"  name="P"        standard_name="air_pressure" long_name="Pressure"     unit="Pa"/> 
    2828      <field field_ref="temp"  name="T"        standard_name="air_temperature" long_name="Temperature"     unit="K"/> 
     29      <field field_ref="vort" /> 
     30      <field field_ref="div" /> 
    2931<!-- 
    3032      <field field_ref="q1"  name="Q"        standard_name="specific_humidity"  long_name="Specific humidity"          unit="kg/kg"/> 
Note: See TracChangeset for help on using the changeset viewer.