Ignore:
Timestamp:
Apr 14, 2010, 10:55:22 AM (14 years ago)
Author:
musat
Message:

Add 3 output files for standard pressure levels AR5 exercice and flags
to manage their computation and output frequencies
histhfNMC.nc with 3 standard pressure levels
histdayNMC.nc with 8 (or may have 17) standard pressure levels
histmthNMC.nc with 17 standard pressure levels
Add 3 flags in the physiq.def file: freq_calNMC(3), freq_outNMC(3) and lev_histdayNMC
freq_calNMC(3) : computation frequency of variables on standard pressure levels

and by default has fallowing values (in fact physics' time step dtime)

freq_calNMC(1)=900.
freq_calNMC(2)=900.
freq_calNMC(3)=900.
freq_outNMC(3) : output frequency of variables on standard pressure levels

with following default values

freq_out(1) = 2592000. (30 days)
freq_out(2) = 86400. (1 day)
freq_out(3) = 21600. (6 hours)
lev_histdayNMC is 8 by default but may be switched to 17 (if we need more levels for a particular run)
IM

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ4/branches/LMDZ4V5.0-dev/libf/phylmd/write_histmthNMC.h

    r776 r1350  
    22! $Header$
    33!
    4       IF (ok_mensuel) THEN
    54c
    65       ndex3d = 0
     
    98c  Champs interpolles sur des niveaux de pression du NMC
    109c
    11 c     PARAMETER(nout=3) !nout=1 : day; =2 : mth; =3 : NMC
     10c     PARAMETER(nout=3)
     11c nout=1 : in=pdtphys,    out=mth
     12c nout=2 : in=pdtphys,    out=day
     13c nout=3 : in=pdtphys,    out=hf
    1214ccc
    13       IF(type_run.EQ."CLIM".OR.type_run.EQ."ENSP") THEN
    14 ccc
    15 cym       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,tsumSTD(:,:,2),
    16 cym     $      zx_tmp_NC)
    17        CALL histwrite_phy(nid_nmc,"temp",itau_w,tsumSTD(:,:,2))
     15       CALL histwrite_phy(nid_mthnmc,"tnondef",itau_w,tnondef(:,:,1))
    1816c
    19 cym       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,phisumSTD(:,:,2),
    20 cym     $     zx_tmp_NC)
    21        CALL histwrite_phy(nid_nmc,"phi",itau_w,phisumSTD(:,:,2))
     17c      CALL histwrite_phy(nid_mthnmc,"ta",itau_w,twriteSTD(:,:,1))
     18       CALL histwrite_phy(nid_mthnmc,"ta",itau_w,tsumSTD(:,:,1))
    2219c
    23 cym       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,qsumSTD(:,:,2),
    24 cym     $     zx_tmp_NC)
    25        CALL histwrite_phy(nid_nmc,"q",itau_w,qsumSTD(:,:,2))
     20       CALL histwrite_phy(nid_mthnmc,"zg",itau_w,phiwriteSTD(:,:,1))
    2621c
    27 cym       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,rhsumSTD(:,:,2),
    28 cym     $     zx_tmp_NC)
    29        CALL histwrite_phy(nid_nmc,"rh",itau_w,rhsumSTD(:,:,2))
     22       CALL histwrite_phy(nid_mthnmc,"hus",itau_w,qwriteSTD(:,:,1))
    3023c
    31 cym       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,usumSTD(:,:,2),
    32 cym     $     zx_tmp_NC)
    33        CALL histwrite_phy(nid_nmc,"u",itau_w,usumSTD(:,:,2))
     24       CALL histwrite_phy(nid_mthnmc,"hur",itau_w,rhwriteSTD(:,:,1))
    3425c
    35 cym       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,vsumSTD(:,:,2),
    36 cym     $     zx_tmp_NC)
    37        CALL histwrite_phy(nid_nmc,"v",itau_w,vsumSTD(:,:,2))
    38 ccc
    39       ELSE IF(type_run.EQ."AMIP".OR.type_run.EQ."CFMI") THEN
    40 ccc
    41 cym       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,tsumSTD(:,:,3),
    42 cym     $     zx_tmp_NC)
    43        CALL histwrite_phy(nid_nmc,"temp",itau_w,tsumSTD(:,:,3))
     26       CALL histwrite_phy(nid_mthnmc,"ua",itau_w,uwriteSTD(:,:,1))
    4427c
    45 cym       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,phisumSTD(:,:,3),
    46 cym     $     zx_tmp_NC)
    47        CALL histwrite_phy(nid_nmc,"phi",itau_w,phisumSTD(:,:,3))
     28       CALL histwrite_phy(nid_mthnmc,"va",itau_w,vwriteSTD(:,:,1))
    4829c
    49 cym       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,qsumSTD(:,:,3),
    50 cym     $     zx_tmp_NC)
    51        CALL histwrite_phy(nid_nmc,"q",itau_w,qsumSTD(:,:,3))
    52 c
    53 cym       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,rhsumSTD(:,:,3),
    54 cym     $     zx_tmp_NC)
    55        CALL histwrite_phy(nid_nmc,"rh",itau_w,rhsumSTD(:,:,3))
    56 c
    57 cym       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,usumSTD(:,:,3),
    58 cym     $     zx_tmp_NC)
    59        CALL histwrite_phy(nid_nmc,"u",itau_w,usumSTD(:,:,3))
    60 c
    61 cym       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,vsumSTD(:,:,3),
    62 cym     $     zx_tmp_NC)
    63        CALL histwrite_phy(nid_nmc,"v",itau_w,vsumSTD(:,:,3))
    64 c
    65 cym       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,wsumSTD(:,:,3),
    66 cym     $     zx_tmp_NC)
    67        CALL histwrite_phy(nid_nmc,"w",itau_w,wsumSTD(:,:,3))
     30       CALL histwrite_phy(nid_mthnmc,"wap",itau_w,wwriteSTD(:,:,1))
    6831c
    6932       DO k=1, nlevSTD
    7033        DO i=1, klon
    71          IF(tnondef(i,k,3).NE.1.E+20) THEN
    72           zx_tmp_fiNC(i,k) = (100.*tnondef(i,k,3))/ecrit_hf2mth
     34         IF(tnondef(i,k,1).NE.missing_val) THEN
     35          zx_tmp_fiNC(i,k) = (100.*tnondef(i,k,1))/ecrit_hf2mth
    7336         ELSE
    74           zx_tmp_fiNC(i,k) = 1.E+20
     37          zx_tmp_fiNC(i,k) = missing_val
    7538         ENDIF
    7639        ENDDO
    7740       ENDDO !k=1, nlevSTD
    7841c
    79 cym       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,zx_tmp_fiNC,zx_tmp_NC)
    80        CALL histwrite_phy(nid_nmc,"psbg",itau_w,zx_tmp_fiNC)
     42       CALL histwrite_phy(nid_mthnmc,"psbg",itau_w,zx_tmp_fiNC)
    8143c
    82 cym       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,uvsumSTD(:,:,3),
    83 cym     $     zx_tmp_NC)
    84        CALL histwrite_phy(nid_nmc,"uv",itau_w,uvsumSTD(:,:,3))
     44       CALL histwrite_phy(nid_mthnmc,"uv",itau_w,uvsumSTD(:,:,1))
    8545c
    86 cym       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,vqsumSTD(:,:,3),
    87 cym     $     zx_tmp_NC)
    88        CALL histwrite_phy(nid_nmc,"vq",itau_w,vqsumSTD(:,:,3))
     46       CALL histwrite_phy(nid_mthnmc,"vq",itau_w,vqsumSTD(:,:,1))
    8947c
    90 cym       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,vTsumSTD(:,:,3),
    91 cym     $     zx_tmp_NC)
    92        CALL histwrite_phy(nid_nmc,"vT",itau_w,vTsumSTD(:,:,3))
     48       CALL histwrite_phy(nid_mthnmc,"vT",itau_w,vTsumSTD(:,:,1))
    9349c
    94 cym       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1, wqsumSTD(:,:,3),
    95 cym     $     zx_tmp_NC)
    96        CALL histwrite_phy(nid_nmc,"wq",itau_w,wqsumSTD(:,:,3))
     50       CALL histwrite_phy(nid_mthnmc,"wq",itau_w,wqsumSTD(:,:,1))
    9751c
    98 cym       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,vphisumSTD(:,:,3),
    99 cym     $     zx_tmp_NC)
    100        CALL histwrite_phy(nid_nmc,"vphi",itau_w,vphisumSTD(:,:,3))
     52       CALL histwrite_phy(nid_mthnmc,"vphi",itau_w,vphisumSTD(:,:,1))
    10153c
    102 cym       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,wTsumSTD(:,:,3),
    103 cym     $     zx_tmp_NC)
    104        CALL histwrite_phy(nid_nmc,"wT",itau_w,wTsumSTD(:,:,3))
     54       CALL histwrite_phy(nid_mthnmc,"wT",itau_w,wTsumSTD(:,:,1))
    10555c
    106 cym       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,u2sumSTD(:,:,3),
    107 cym     $     zx_tmp_NC)
    108        CALL histwrite_phy(nid_nmc,"uxu",itau_w,u2sumSTD(:,:,3))
     56       CALL histwrite_phy(nid_mthnmc,"uxu",itau_w,u2sumSTD(:,:,1))
    10957c
    110 cym       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,v2sumSTD(:,:,3),
    111 cym     $     zx_tmp_NC)
    112        CALL histwrite_phy(nid_nmc,"vxv",itau_w,v2sumSTD(:,:,3))
     58       CALL histwrite_phy(nid_mthnmc,"vxv",itau_w,v2sumSTD(:,:,1))
    11359c
    114 cym       CALL gr_fi_ecrit(nlevSTD, klon,iim,jjmp1,T2sumSTD(:,:,3),
    115 cym     $     zx_tmp_NC)
    116        CALL histwrite_phy(nid_nmc,"TxT",itau_w,T2sumSTD(:,:,3))
    117 c
    118       ENDIF !type_run
     60       CALL histwrite_phy(nid_mthnmc,"TxT",itau_w,T2sumSTD(:,:,1))
    11961c
    12062      if (ok_sync) then
    12163c$OMP MASTER
    122         call histsync(nid_nmc)
     64        call histsync(nid_mthnmc)
    12365c$OMP END MASTER
    12466      endif
    125 
    126       ENDIF
Note: See TracChangeset for help on using the changeset viewer.