Ignore:
Timestamp:
Jan 8, 2017, 4:44:10 PM (7 years ago)
Author:
oboucher
Message:

Changes to StratAer? module, including setting up a new output file
hence dimension of output metadata is increased to 10 items.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/trunk/libf/phylmd/phys_output_mod.F90

    r2704 r2752  
    113113    INTEGER, DIMENSION(nfiles)            :: phys_out_filelevels
    114114    CHARACTER(LEN=20), DIMENSION(nfiles)  :: chtimestep = (/ 'Default', 'Default', 'Default', 'Default', 'Default', &
    115                                                              'Default', 'Default', 'Default', 'Default' /)
     115                                                             'Default', 'Default', 'Default', 'Default', 'Default' /)
    116116    LOGICAL, DIMENSION(nfiles)            :: phys_out_filekeys
    117117    LOGICAL, DIMENSION(nfiles)            :: phys_out_filestations
     
    120120    !                 entre [phys_out_lonmin,phys_out_lonmax] et [phys_out_latmin,phys_out_latmax]
    121121
    122     LOGICAL, DIMENSION(nfiles), SAVE  :: phys_out_regfkey       = (/ .FALSE., .FALSE., .FALSE., .FALSE., &
    123                                                                     .FALSE., .FALSE., .FALSE., .FALSE., .FALSE. /)
    124     REAL, DIMENSION(nfiles), SAVE     :: phys_out_lonmin        = (/   -180.,   -180.,   -180.,    -180., &
    125                                                                      -180.,   -180., -180.,   -180.,    -180. /)
    126     REAL, DIMENSION(nfiles), SAVE     :: phys_out_lonmax        = (/    180.,    180.,    180.,     180., &
    127                                                                       180.,    180., 180.,    180.,     180. /)
    128     REAL, DIMENSION(nfiles), SAVE     :: phys_out_latmin        = (/    -90.,    -90.,    -90.,     -90., &
    129                                                                     -90., -90., -90.,    -90.,     -90. /)
    130     REAL, DIMENSION(nfiles), SAVE     :: phys_out_latmax        = (/  90.,     90.,     90.,     90., &
    131                                                                     90., 90., 90., 90., 90. /)                       
     122    LOGICAL, DIMENSION(nfiles), SAVE  :: phys_out_regfkey       = (/ .FALSE., .FALSE., .FALSE., .FALSE., .FALSE., &
     123                                                                     .FALSE., .FALSE., .FALSE., .FALSE., .FALSE. /)
     124    REAL, DIMENSION(nfiles), SAVE     :: phys_out_lonmin        = (/ -180., -180., -180., -180., -180., &
     125                                                                     -180., -180., -180., -180., -180. /)
     126    REAL, DIMENSION(nfiles), SAVE     :: phys_out_lonmax        = (/  180.,  180.,  180.,  180.,  180., &
     127                                                                      180.,  180.,  180.,  180.,  180. /)
     128    REAL, DIMENSION(nfiles), SAVE     :: phys_out_latmin        = (/  -90.,  -90.,  -90.,  -90.,  -90., &
     129                                                                      -90.,  -90.,  -90.,  -90.,  -90. /)
     130    REAL, DIMENSION(nfiles), SAVE     :: phys_out_latmax        = (/   90.,   90.,   90.,   90.,   90., &
     131                                                                       90.,   90.,   90.,   90.,  90. /)                       
    132132#ifdef CPP_XIOS
    133133    ! ug Variables utilis\'ees pour r\'ecup\'erer le calendrier pour xios
     
    149149    ALLOCATE(o_dtr_dry(nqtot),o_dtr_vdf(nqtot))
    150150
    151 
    152     levmax = (/ klev, klev, klev, klev, klev, klev, nlevSTD, nlevSTD, nlevSTD /)
     151    levmax = (/ klev, klev, klev, klev, klev, klev, nlevSTD, nlevSTD, nlevSTD, klev /)
    153152
    154153    phys_out_filenames(1) = 'histmth'
     
    160159    phys_out_filenames(7) = 'histmthNMC'
    161160    phys_out_filenames(8) = 'histdayNMC'
    162     phys_out_filenames(9) = 'histhfNMC.nc'
     161    phys_out_filenames(9) = 'histhfNMC'
     162    phys_out_filenames(10)= 'histstrataer'
    163163
    164164    type_ecri(1) = 'ave(X)'
     
    171171    type_ecri(8) = 'inst(X)'
    172172    type_ecri(9) = 'inst(X)'
     173    type_ecri(10)= 'ave(X)'
    173174
    174175    clef_files(1) = ok_mensuel
     
    181182    clef_files(8) = ok_histNMC(2)
    182183    clef_files(9) = ok_histNMC(3)
     184#ifdef CPP_StratAer
     185    clef_files(10)= .TRUE.
     186#else
     187    clef_files(10)= .FALSE.
     188#endif
    183189
    184190    !sortir des fichiers "stations" si clef_stations(:)=.TRUE.
     
    192198    clef_stations(8) = .FALSE.
    193199    clef_stations(9) = .FALSE.
     200    clef_stations(10)= .FALSE.
    194201
    195202    lev_files(1) = lev_histmth
     
    202209    lev_files(8) = levout_histNMC(2)
    203210    lev_files(9) = levout_histNMC(3)
     211    lev_files(10)= 5
    204212
    205213    ecrit_files(1) = ecrit_mth
     
    212220    ecrit_files(8) = freq_outNMC(2)
    213221    ecrit_files(9) = freq_outNMC(3)
     222    ecrit_files(10)= ecrit_mth
    214223
    215224    !! Lectures des parametres de sorties dans physiq.def
     
    248257    WRITE(lunout,*)'phys_out_filestations=',clef_stations
    249258    WRITE(lunout,*)'phys_out_filelevels=',lev_files
     259    WRITE(lunout,*)'phys_out_regfkey=',phys_out_regfkey
    250260
    251261! A noter pour
     
    331341      print*,'phys_output_open: Declare vertical axes for each file'
    332342    ENDIF
    333    IF (iff.le.6) THEN
     343   IF (iff.LE.6.OR.iff.EQ.10) THEN
    334344    CALL wxios_add_vaxis("presnivs", &
    335345            levmax(iff) - levmin(iff) + 1, presnivs(levmin(iff):levmax(iff)))
     
    392402                  itau_phy,zjulian,dtime,nhorim(iff),nid_files(iff))
    393403          ELSE
     404
     405             IF (prt_level >= 10) THEN
     406             WRITE(lunout,*)'phys_output_open: iff=',iff,'  phys_out_filenames(iff)=',phys_out_filenames(iff)
     407             ENDIF
     408
    394409             CALL histbeg_phy_all(phys_out_filenames(iff),itau_phy,zjulian,&
    395410                 dtime,nhorim(iff),nid_files(iff))
     
    397412
    398413#ifndef CPP_IOIPSL_NO_OUTPUT
    399           IF (iff.le.6) THEN
     414          IF (iff.LE.6.OR.iff.EQ.10) THEN
    400415             CALL histvert(nid_files(iff), "presnivs", "Vertical levels", "Pa", & 
    401416               levmax(iff) - levmin(iff) + 1, &
     
    412427
    413428          ELSE
     429          ! NMC files
    414430             CALL histvert(nid_files(iff), "plev", "pressure", "Pa", &
    415431               levmax(iff) - levmin(iff) + 1, &
     
    424440            DO iq=nqo+1,nqtot
    425441            iiq=niadv(iq)
    426             o_trac(iq-nqo) = ctrl_out((/ 1, 5, 5, 5, 10, 10, 11, 11, 11 /), &
     442            o_trac(iq-nqo) = ctrl_out((/ 1, 5, 5, 5, 10, 10, 11, 11, 11, 11 /), &
    427443                           tname(iiq),'Tracer '//ttext(iiq), "-",  &
    428                            (/ '', '', '', '', '', '', '', '', '' /))
    429             o_dtr_vdf(iq-nqo) = ctrl_out((/ 4, 7, 7, 7, 10, 10, 11, 11, 11 /), &
     444                           (/ '', '', '', '', '', '', '', '', '', '' /))
     445            o_dtr_vdf(iq-nqo) = ctrl_out((/ 4, 7, 7, 7, 10, 10, 11, 11, 11, 11 /), &
    430446                              'd'//trim(tname(iq))//'_vdf',  &
    431447                              'Tendance tracer '//ttext(iiq), "-" , &
    432                               (/ '', '', '', '', '', '', '', '', '' /))
    433 
    434             o_dtr_the(iq-nqo) = ctrl_out((/ 5, 7, 7, 7, 10, 10, 11, 11, 11 /), &
     448                              (/ '', '', '', '', '', '', '', '', '', '' /))
     449
     450            o_dtr_the(iq-nqo) = ctrl_out((/ 5, 7, 7, 7, 10, 10, 11, 11, 11, 11 /), &
    435451                              'd'//trim(tname(iq))//'_the', &
    436452                              'Tendance tracer '//ttext(iiq), "-", &
    437                               (/ '', '', '', '', '', '', '', '', '' /))
    438 
    439             o_dtr_con(iq-nqo) = ctrl_out((/ 5, 7, 7, 7, 10, 10, 11, 11, 11 /), &
     453                              (/ '', '', '', '', '', '', '', '', '', '' /))
     454
     455            o_dtr_con(iq-nqo) = ctrl_out((/ 5, 7, 7, 7, 10, 10, 11, 11, 11, 11 /), &
    440456                              'd'//trim(tname(iq))//'_con', &
    441457                              'Tendance tracer '//ttext(iiq), "-", &
    442                               (/ '', '', '', '', '', '', '', '', '' /))
    443 
    444             o_dtr_lessi_impa(iq-nqo) = ctrl_out((/ 7, 7, 7, 7, 10, 10, 11, 11, 11 /), &
     458                              (/ '', '', '', '', '', '', '', '', '', '' /))
     459
     460            o_dtr_lessi_impa(iq-nqo) = ctrl_out((/ 7, 7, 7, 7, 10, 10, 11, 11, 11, 11 /), &
    445461                                     'd'//trim(tname(iq))//'_lessi_impa', &
    446462                                     'Tendance tracer '//ttext(iiq), "-", &
    447                                      (/ '', '', '', '', '', '', '', '', '' /))
    448 
    449             o_dtr_lessi_nucl(iq-nqo) = ctrl_out((/ 7, 7, 7, 7, 10, 10, 11, 11, 11 /), &
     463                                     (/ '', '', '', '', '', '', '', '', '', '' /))
     464
     465            o_dtr_lessi_nucl(iq-nqo) = ctrl_out((/ 7, 7, 7, 7, 10, 10, 11, 11, 11, 11 /), &
    450466                                     'd'//trim(tname(iq))//'_lessi_nucl', &
    451467                                     'Tendance tracer '//ttext(iiq), "-", &
    452                                      (/ '', '', '', '', '', '', '', '', '' /))
    453 
    454             o_dtr_insc(iq-nqo) = ctrl_out((/ 7, 7, 7, 7, 10, 10, 11, 11, 11 /), &
     468                                     (/ '', '', '', '', '', '', '', '', '', '' /))
     469
     470            o_dtr_insc(iq-nqo) = ctrl_out((/ 7, 7, 7, 7, 10, 10, 11, 11, 11, 11 /), &
    455471                               'd'//trim(tname(iq))//'_insc', &
    456472                               'Tendance tracer '//ttext(iiq), "-", &
    457                                (/ '', '', '', '', '', '', '', '', '' /))
    458 
    459             o_dtr_bcscav(iq-nqo) = ctrl_out((/ 7, 7, 7, 7, 10, 10, 11, 11, 11 /), &
     473                               (/ '', '', '', '', '', '', '', '', '', '' /))
     474
     475            o_dtr_bcscav(iq-nqo) = ctrl_out((/ 7, 7, 7, 7, 10, 10, 11, 11, 11, 11 /), &
    460476                                 'd'//trim(tname(iq))//'_bcscav', &
    461477                                 'Tendance tracer '//ttext(iiq), "-", &
    462                                  (/ '', '', '', '', '', '', '', '', '' /))
    463 
    464             o_dtr_evapls(iq-nqo) = ctrl_out((/ 7, 7, 7, 7, 10, 10, 11, 11, 11 /), &
     478                                 (/ '', '', '', '', '', '', '', '', '', '' /))
     479
     480            o_dtr_evapls(iq-nqo) = ctrl_out((/ 7, 7, 7, 7, 10, 10, 11, 11, 11, 11 /), &
    465481                                 'd'//trim(tname(iq))//'_evapls', &
    466482                                 'Tendance tracer '//ttext(iiq), "-", &
    467                                  (/ '', '', '', '', '', '', '', '', '' /))
    468 
    469             o_dtr_ls(iq-nqo) = ctrl_out((/ 7, 7, 7, 7, 10, 10, 11, 11, 11 /), &
     483                                 (/ '', '', '', '', '', '', '', '', '', '' /))
     484
     485            o_dtr_ls(iq-nqo) = ctrl_out((/ 7, 7, 7, 7, 10, 10, 11, 11, 11, 11 /), &
    470486                             'd'//trim(tname(iq))//'_ls', &
    471487                             'Tendance tracer '//ttext(iiq), "-", &
    472                              (/ '', '', '', '', '', '', '', '', '' /))
    473 
    474             o_dtr_trsp(iq-nqo) = ctrl_out((/ 7, 7, 7, 7, 10, 10, 11, 11, 11 /), &
     488                             (/ '', '', '', '', '', '', '', '', '', '' /))
     489
     490            o_dtr_trsp(iq-nqo) = ctrl_out((/ 7, 7, 7, 7, 10, 10, 11, 11, 11, 11 /), &
    475491                               'd'//trim(tname(iq))//'_trsp', &
    476492                               'Tendance tracer '//ttext(iiq), "-", &
    477                                (/ '', '', '', '', '', '', '', '', '' /))
    478 
    479             o_dtr_sscav(iq-nqo) = ctrl_out((/ 7, 7, 7, 7, 10, 10, 11, 11, 11 /), &
     493                               (/ '', '', '', '', '', '', '', '', '', '' /))
     494
     495            o_dtr_sscav(iq-nqo) = ctrl_out((/ 7, 7, 7, 7, 10, 10, 11, 11, 11, 11 /), &
    480496                                'd'//trim(tname(iq))//'_sscav', &
    481497                                'Tendance tracer '//ttext(iiq), "-", &
    482                                 (/ '', '', '', '', '', '', '', '', '' /))
    483 
    484             o_dtr_sat(iq-nqo) = ctrl_out((/ 7, 7, 7, 7, 10, 10, 11, 11, 11 /), &
     498                                (/ '', '', '', '', '', '', '', '', '', '' /))
     499
     500            o_dtr_sat(iq-nqo) = ctrl_out((/ 7, 7, 7, 7, 10, 10, 11, 11, 11, 11 /), &
    485501                               'd'//trim(tname(iq))//'_sat', &
    486502                               'Tendance tracer '//ttext(iiq), "-", &
    487                                (/ '', '', '', '', '', '', '', '', '' /))
    488 
    489             o_dtr_uscav(iq-nqo) = ctrl_out((/ 7, 7, 7, 7, 10, 10, 11, 11, 11 /), &
     503                               (/ '', '', '', '', '', '', '', '', '', '' /))
     504
     505            o_dtr_uscav(iq-nqo) = ctrl_out((/ 7, 7, 7, 7, 10, 10, 11, 11, 11, 11 /), &
    490506                                'd'//trim(tname(iq))//'_uscav', &
    491507                                'Tendance tracer '//ttext(iiq), "-", &
    492                                  (/ '', '', '', '', '', '', '', '', '' /))
    493 
    494             o_dtr_dry(iq-nqo) = ctrl_out((/ 7, 7, 7, 7, 10, 10, 11, 11, 11 /), &
     508                                 (/ '', '', '', '', '', '', '', '', '', '' /))
     509
     510            o_dtr_dry(iq-nqo) = ctrl_out((/ 7, 7, 7, 7, 10, 10, 11, 11, 11, 11 /), &
    495511                              'cum'//'d'//trim(tname(iq))//'_dry', &
    496512                              'tracer tendency dry deposition'//ttext(iiq), "-", &
    497                               (/ '', '', '', '', '', '', '', '', '' /))
    498 
    499             o_trac_cum(iq-nqo) = ctrl_out((/ 1, 4, 10, 10, 10, 10, 11, 11, 11 /), &
     513                              (/ '', '', '', '', '', '', '', '', '', '' /))
     514
     515            o_trac_cum(iq-nqo) = ctrl_out((/ 1, 4, 10, 10, 10, 10, 11, 11, 11, 11 /), &
    500516                               'cum'//tname(iiq),&
    501517                               'Cumulated tracer '//ttext(iiq), "-", &
    502                                (/ '', '', '', '', '', '', '', '', '' /))
     518                               (/ '', '', '', '', '', '', '', '', '', '' /))
    503519            ENDDO
    504520      ENDIF
     
    547563    type=str(ipos+1:il)
    548564
    549 
    550565    IF ( il == ipos ) THEN
    551566       type='day'
Note: See TracChangeset for help on using the changeset viewer.