Ignore:
Timestamp:
10/19/17 17:04:26 (7 years ago)
Author:
dubos
Message:

trunk : backported commits r582-r598 (transport diagnostics)

File:
1 edited

Legend:

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

    r581 r599  
    66  TYPE(t_field),POINTER, SAVE :: f_buf_i(:), & 
    77       f_buf_Fel(:), f_buf_uh(:), & ! horizontal velocity, different from prognostic velocity if NH 
    8        f_buf_ulon(:), f_buf_ulat(:), & 
    9        f_buf_u3d(:) ! unused, remove ? 
     8       f_buf_ulon(:), f_buf_ulat(:) 
    109  TYPE(t_field),POINTER, SAVE :: f_buf1_i(:), f_buf2_i(:) 
    1110  TYPE(t_field),POINTER, SAVE :: f_buf_v(:), f_buf_s(:), f_buf_p(:) 
     
    2423    CALL allocate_field(f_buf2_i,   field_t,type_real,llm,name="buffer2_i") 
    2524    CALL allocate_field(f_buf_p,   field_t,type_real,llm+1)  
    26     CALL allocate_field(f_buf_u3d, field_t,type_real,3,llm)  ! 3D vel at cell centers 
    2725    CALL allocate_field(f_buf_ulon,field_t,type_real,llm, name="buf_ulon") 
    2826    CALL allocate_field(f_buf_ulat,field_t,type_real,llm, name="buf_ulat") 
     
    4947    USE theta2theta_rhodz_mod 
    5048    USE omega_mod 
     49    USE diagflux_mod 
    5150    LOGICAL, INTENT(IN) :: init 
    5251    INTEGER :: l 
     
    160159    END IF 
    161160 
     161    IF(.NOT. init) THEN 
     162       IF(diagflux_on) THEN 
     163          CALL flux_centered_lonlat(1./(itau_out*dt) , f_massfluxt, f_buf_ulon, f_buf_ulat) 
     164          CALL output_field("mass_t", f_masst) 
     165          CALL output_field("massflux_lon",f_buf_ulon) 
     166          CALL output_field("massflux_lat",f_buf_ulat) 
     167 
     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) 
     185 
     186          CALL qflux_centered_lonlat(1./(itau_out*dt) , f_qfluxt, f_qfluxt_lon, f_qfluxt_lat) 
     187          CALL output_field("qmass_t", f_qmasst) 
     188          CALL output_field("qflux_lon",f_qfluxt_lon) 
     189          CALL output_field("qflux_lat",f_qfluxt_lat) 
     190          CALL zero_qfluxt  ! restart accumulating fluxes 
     191       END IF 
     192    END IF 
    162193  END SUBROUTINE write_output_fields_basic 
    163194   
Note: See TracChangeset for help on using the changeset viewer.