Changeset 1971


Ignore:
Timestamp:
Feb 13, 2014, 3:45:29 PM (10 years ago)
Author:
idelkadi
Message:

Corrections pour les sorties XIOS :

  1. Dans phys_output_mod.F90 : Calcul de l'heure de départ sorti en dehors de la boucle sur les fichiers Definition des axes verticaux pour XIOS mis sous la cles de controle des sorties Definition de l'axe vertical pour les fichiers NMC
  1. Corrections divers pour les sorties NMC (unite, description, ...) phys_output_ctrlout_mod.F90 et phys_output_write_mod.F90
Location:
LMDZ5/trunk/libf/phylmd
Files:
3 edited

Legend:

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

    r1938 r1971  
    12221222       "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)"  /))
    12231223  TYPE(ctrl_out), SAVE :: o_psbg = ctrl_out((/ 11, 11, 11, 11, 11, 11, 5, 5, 5 /), &
    1224        'psbg', 'Lagrangian tendency of air pressure', 'Pa s-1', (/ "inst(X)", "inst(X)", "inst(X)", &
     1224       'psbg', 'Pressure sfce below ground', '%', (/ "inst(X)", "inst(X)", "inst(X)", &
    12251225       "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)", "inst(X)"  /))
    12261226  TYPE(ctrl_out), SAVE :: o_tro3 = ctrl_out((/ 11, 11, 11, 11, 11, 11, 5, 5, 5 /), &
  • LMDZ5/trunk/libf/phylmd/phys_output_mod.F90

    r1937 r1971  
    246246    WRITE(lunout,*)'phys_out_filelevels=',lev_files
    247247
     248! A noter pour
     249! l heure initiale - dans les fichiers histoire hist* - on met comme 
     250! heure de debut soit la vraie heure (pour le 1D) soit 0h (pour le 3D)
     251! afin d avoir une seule sortie mensuelle par mois lorsque l on tourne
     252! par annee (IM).
     253!
     254     idayref = day_ref
     255     IF (klon_glo==1) THEN
     256         CALL ymds2ju(annee_ref, 1, idayref, hour, zjulian)     !jyg
     257     ELSE
     258         CALL ymds2ju(annee_ref, 1, idayref, 0.0, zjulian)
     259     END IF
     260
    248261#ifdef CPP_XIOS
    249262    ! ug Réglage du calendrier xios
    250263    !Temps julian => an, mois, jour, heure
    251     IF (klon_glo==1) THEN                                       
    252         CALL ymds2ju(annee_ref, 1, day_ref, hour, zjulian)
    253     ELSE
    254         CALL ymds2ju(annee_ref, 1, day_ref, 0.0, zjulian)
    255     END IF
    256264    CALL ju2ymds(zjulian, x_an, x_mois, x_jour, x_heure)
    257265    CALL wxios_set_cal(dtime, calend, x_an, x_mois, x_jour, x_heure)
     
    276284    WRITE(lunout,*)'Alt approx des couches pour une haut d echelle de 8km = ',Alt(1:klev)
    277285    !          endif
    278     DO iff=1,nfiles
     286  DO iff=1,nfiles
    279287
    280288       ! Calculate ecrit_files for all files
     
    294302       zoutm(iff) = ecrit_files(iff) ! Frequence ou l on ecrit en seconde
    295303
     304    IF (clef_files(iff)) THEN
     305
    296306#ifdef CPP_XIOS
    297     ! ug déclaration des axes verticaux de chaque fichier:
     307!!! Ouverture de chaque fichier XIOS !!!!!!!!!!!
     308    CALL wxios_add_file(phys_out_filenames(iff),chtimestep(iff),lev_files(iff)) 
     309    print*,'wxios_add_file phys_out_filenames(iff)',phys_out_filenames(iff)                                                                       
     310
     311!!! Declaration des axes verticaux de chaque fichier:
     312    print*,'Declaration des axes verticaux de chaque fichier '
     313   if (iff.le.6) then
    298314    CALL wxios_add_vaxis("presnivs", phys_out_filenames(iff), &
    299315            levmax(iff) - levmin(iff) + 1, presnivs(levmin(iff):levmax(iff)))
     
    304320    CALL wxios_add_vaxis("Ahyb", phys_out_filenames(iff), &
    305321            levmax(iff) - levmin(iff) + 1, Alt)
    306 
    307     IF (clef_files(iff)) THEN
    308          CALL wxios_add_file(phys_out_filenames(iff),chtimestep(iff),lev_files(iff))
    309     END IF
     322   else
     323    CALL wxios_add_vaxis("plev", phys_out_filenames(iff), &
     324            levmax(iff) - levmin(iff) + 1, rlevSTD(levmin(iff):levmax(iff)))
     325   endif
    310326#endif
    311327
    312        IF (clef_files(iff)) THEN
    313 
    314           idayref = day_ref
    315 ! A noter pour
    316 ! l heure initiale - dans les fichiers histoire hist* - on met comme 
    317 ! heure de debut soit la vraie heure (pour le 1D) soit 0h (pour le 3D)
    318 ! afin d avoir une seule sortie mensuelle par mois lorsque l on tourne
    319 ! par annee (IM).
    320 !
    321      IF (klon_glo==1) THEN                                       
    322          CALL ymds2ju(annee_ref, 1, idayref, hour, zjulian)     !jyg
    323      ELSE
    324          CALL ymds2ju(annee_ref, 1, idayref, 0.0, zjulian)
    325      END IF                                                     
    326328!!!!!!!!!!!!!!!!! Traitement dans le cas ou l'on veut stocker sur un domaine limite !!
    327329!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     
    476478      ENDIF
    477479
    478     ENDIF ! clef_files
    479 
    480     ENDDO !  iff
     480     ENDIF ! clef_files
     481
     482   ENDDO !  iff
    481483
    482484    ! Updated write frequencies due to phys_out_filetimesteps.
  • LMDZ5/trunk/libf/phylmd/phys_output_write_mod.F90

    r1943 r1971  
    252252    REAL :: pdtphys
    253253    CHARACTER (LEN=4), DIMENSION(nlevSTD) :: clevSTD
     254    REAL, DIMENSION(klon,nlevSTD) :: zx_tmp_fi3d_STD
    254255    REAL, DIMENSION(klon) :: pphis
    255256    REAL, DIMENSION(klon, klev) :: pplay, d_t
     
    12211222                         freq_moyNMC(iff-6)=freq_outNMC(iff-6)/freq_calNMC(iff-6)
    12221223                      ENDIF
    1223                       zx_tmp_fi3d(i,k) = (100.*tnondef(i,k,iff-6))/freq_moyNMC(iff-6)
     1224                      zx_tmp_fi3d_STD(i,k) = (100.*tnondef(i,k,iff-6))/freq_moyNMC(iff-6)
    12241225                   ELSE
    1225                       zx_tmp_fi3d(i,k) = missing_val
     1226                      zx_tmp_fi3d_STD(i,k) = missing_val
    12261227                   ENDIF
    12271228                ENDDO
    12281229             ENDDO
    12291230          ENDIF
    1230           CALL histwrite_phy(o_psbg,zx_tmp_fi3d,iff)
     1231          CALL histwrite_phy(o_psbg,zx_tmp_fi3d_STD,iff)
    12311232          IF(vars_defined) THEN
    12321233             DO k=1, nlevSTD
    12331234                DO i=1, klon
    12341235                   IF(O3sumSTD(i,k,iff-6).NE.missing_val) THEN
    1235                       zx_tmp_fi3d(i,k) = O3sumSTD(i,k,iff-6) * 1.e+9
     1236                      zx_tmp_fi3d_STD(i,k) = O3sumSTD(i,k,iff-6) * 1.e+9
    12361237                   ELSE
    1237                       zx_tmp_fi3d(i,k) = missing_val
     1238                      zx_tmp_fi3d_STD(i,k) = missing_val
    12381239                   ENDIF
    12391240                ENDDO
    12401241             ENDDO !k=1, nlevSTD
    12411242          ENDIF
    1242           CALL histwrite_phy(o_tro3,zx_tmp_fi3d,iff)
     1243          CALL histwrite_phy(o_tro3,zx_tmp_fi3d_STD,iff)
    12431244          if (read_climoz == 2) THEN
    12441245             IF(vars_defined) THEN
     
    12461247                   DO i=1, klon
    12471248                      IF(O3daysumSTD(i,k,iff-6).NE.missing_val) THEN
    1248                          zx_tmp_fi3d(i,k) = O3daysumSTD(i,k,iff-6) * 1.e+9
     1249                         zx_tmp_fi3d_STD(i,k) = O3daysumSTD(i,k,iff-6) * 1.e+9
    12491250                      ELSE
    1250                          zx_tmp_fi3d(i,k) = missing_val
     1251                         zx_tmp_fi3d_STD(i,k) = missing_val
    12511252                      ENDIF
    12521253                   ENDDO
    12531254                ENDDO !k=1, nlevSTD
    12541255             ENDIF
    1255              CALL histwrite_phy(o_tro3_daylight,zx_tmp_fi3d,iff)
     1256             CALL histwrite_phy(o_tro3_daylight,zx_tmp_fi3d_STD,iff)
    12561257          endif
    12571258          CALL histwrite_phy(o_uxv,uvsumSTD(:,:,iff-6),iff)
Note: See TracChangeset for help on using the changeset viewer.