Ignore:
Timestamp:
08/04/12 00:13:44 (12 years ago)
Author:
ymipsl
Message:

Put conforming IO for dcmip testcase

YM

File:
1 edited

Legend:

Unmodified
Added
Removed
  • codes/icosagcm/trunk/src/caldyn_gcm.f90

    r96 r97  
    643643    USE omega_mod 
    644644    USE write_field 
     645    USE vertical_interp_mod 
    645646    TYPE(t_field),POINTER :: f_ps(:), f_phis(:), f_u(:), f_theta_rhodz(:), f_dps(:), & 
    646647         f_buf_i(:), f_buf_v(:), f_buf_i3(:), f_buf1_i(:), f_buf2_i(:), f_buf_s(:), f_buf_p(:) 
     648     
     649    REAL(rstd) :: out_pression_lev 
     650    CHARACTER(LEN=255) :: str_pression 
     651     
     652    out_pression_level=0 
     653    CALL getin("out_pression_level",out_pression_level)  
     654    WRITE(str_pression,*) INT(out_pression_level/100) 
     655    str_pression=ADJUSTL(str_pression) 
    647656     
    648657    CALL writefield("ps",f_ps) 
     
    654663    CALL w_omega(f_ps, f_u, f_buf_i) 
    655664    CALL writefield('omega', f_buf_i) 
     665    IF (out_pression_level<=preff) THEN 
     666      CALL vertical_interp(f_ps,f_buf_i,f_buf_s,out_pression_level) 
     667      CALL writefield("omega"//TRIM(str_pression),f_buf_s) 
     668    ENDIF 
    656669     
    657670    ! Temperature 
    658671    CALL theta_rhodz2temperature(f_ps,f_theta_rhodz,f_buf_i) ; 
    659672    CALL writefield("T",f_buf_i) 
     673     
     674    IF (out_pression_level<=preff) THEN 
     675      CALL vertical_interp(f_ps,f_buf_i,f_buf_s,out_pression_level) 
     676      CALL writefield("T"//TRIM(str_pression),f_buf_s) 
     677    ENDIF 
    660678     
    661679    ! velocity components 
     
    663681    CALL writefield("ulon",f_buf1_i) 
    664682    CALL writefield("ulat",f_buf2_i) 
     683 
     684    IF (out_pression_level<=preff) THEN 
     685      CALL vertical_interp(f_ps,f_buf1_i,f_buf_s,out_pression_level) 
     686      CALL writefield("ulon"//TRIM(str_pression),f_buf_s) 
     687      CALL vertical_interp(f_ps,f_buf2_i,f_buf_s,out_pression_level) 
     688      CALL writefield("vlon"//TRIM(str_pression),f_buf_s) 
     689    ENDIF 
    665690     
    666691    ! geopotential 
     
    670695    CALL writefield("theta",f_buf1_i) ! potential temperature 
    671696    CALL writefield("pk",f_buf2_i) ! Exner pressure 
     697   
    672698   
    673699  END SUBROUTINE write_output_fields 
Note: See TracChangeset for help on using the changeset viewer.