Ignore:
Timestamp:
10/24/17 01:32:57 (7 years ago)
Author:
dubos
Message:

trunk : backported r600-603 from devel

File:
1 edited

Legend:

Unmodified
Added
Removed
  • codes/icosagcm/trunk/src/diagnostics/observable.f90

    r599 r604  
    11MODULE observable_mod 
    22  USE icosa 
     3  USE diagflux_mod 
     4  USE output_field_mod 
    35  IMPLICIT NONE 
    46  PRIVATE 
     
    3840    USE disvert_mod 
    3941    USE wind_mod 
    40     USE output_field_mod 
    4142    USE omp_para 
    4243    USE time_mod 
     
    4748    USE theta2theta_rhodz_mod 
    4849    USE omega_mod 
    49     USE diagflux_mod 
    5050    LOGICAL, INTENT(IN) :: init 
    5151    INTEGER :: l 
     
    166166          CALL output_field("massflux_lat",f_buf_ulat) 
    167167 
    168           CALL transfert_request(f_epotfluxt,req_e1_vect)  
    169           CALL flux_centered_lonlat(1./(itau_out*dt) , f_epotfluxt, f_buf_ulon, f_buf_ulat) 
    170           CALL output_field("epot_t", f_epot) 
    171           CALL output_field("epotflux_lon",f_buf_ulon) 
    172           CALL output_field("epotflux_lat",f_buf_ulat) 
    173  
    174           CALL transfert_request(f_ekinfluxt,req_e1_vect)  
    175           CALL flux_centered_lonlat(1./(itau_out*dt) , f_ekinfluxt, f_buf_ulon, f_buf_ulat) 
    176           CALL output_field("ekin_t", f_ekin) 
    177           CALL output_field("ekinflux_lon",f_buf_ulon) 
    178           CALL output_field("ekinflux_lat",f_buf_ulat) 
    179  
    180           CALL transfert_request(f_enthalpyfluxt,req_e1_vect)  
    181           CALL flux_centered_lonlat(1./(itau_out*dt) , f_enthalpyfluxt, f_buf_ulon, f_buf_ulat) 
    182           CALL output_field("enthalpy_t", f_enthalpy) 
    183           CALL output_field("enthalpyflux_lon",f_buf_ulon) 
    184           CALL output_field("enthalpyflux_lat",f_buf_ulat) 
     168          CALL output_energyflux(f_ulont, f_ulonfluxt, "ulon_t", "ulonflux_lon", "ulonflux_lat") 
     169          CALL output_energyflux(f_thetat, f_thetafluxt, "theta_t", "thetaflux_lon", "thetaflux_lat") 
     170          CALL output_energyflux(f_epot, f_epotfluxt, "epot_t", "epotflux_lon", "epotflux_lat") 
     171          CALL output_energyflux(f_ekin, f_ekinfluxt, "ekin_t", "ekinflux_lon", "ekinflux_lat") 
     172          CALL output_energyflux(f_enthalpy, f_enthalpyfluxt, "enthalpy_t", "enthalpyflux_lon", "enthalpyflux_lat") 
    185173 
    186174          CALL qflux_centered_lonlat(1./(itau_out*dt) , f_qfluxt, f_qfluxt_lon, f_qfluxt_lat) 
     
    192180    END IF 
    193181  END SUBROUTINE write_output_fields_basic 
     182 
     183  SUBROUTINE output_energyflux(f_energy, f_flux, name_energy, name_fluxlon, name_fluxlat) 
     184    TYPE(t_field), POINTER :: f_energy(:), f_flux(:) 
     185    CHARACTER(*), INTENT(IN) :: name_energy, name_fluxlon, name_fluxlat 
     186    CALL transfert_request(f_flux,req_e1_vect) 
     187    CALL flux_centered_lonlat(1./(itau_out*dt) , f_flux, f_buf_ulon, f_buf_ulat) 
     188    CALL output_field(name_energy,  f_energy) 
     189    CALL output_field(name_fluxlon, f_buf_ulon) 
     190    CALL output_field(name_fluxlat, f_buf_ulat) 
     191  END SUBROUTINE output_energyflux 
    194192   
    195193 !------------------- Conversion from prognostic to observable variables ------------------ 
Note: See TracChangeset for help on using the changeset viewer.