Changeset 758


Ignore:
Timestamp:
May 22, 2007, 3:52:59 PM (17 years ago)
Author:
lsce
Message:

modifications pour donner des valeurs non nulles aux traceurs lors de la creation d'un fichier start initial lors d'une simulation couplee avec le modele inca - ACo

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ4/branches/LMDZ4_V2_patch/libf/dyn3d/dynredem.F

    r665 r758  
    4949      INTEGER idim_tim
    5050      INTEGER nid,nvarid
     51
    5152
    5253      REAL zan0,zjulian,hours
     
    404405     
    405406      REAL time
    406       INTEGER nid, nvarid
    407       INTEGER ierr
     407      INTEGER nid, nvarid, nid_trac, nvarid_trac
     408      REAL trac_tmp(ip1jmp1,llm)
     409      INTEGER ierr, ierr_file
    408410      INTEGER iq
    409411      INTEGER length
     
    496498#endif
    497499
     500#ifdef INCA
     501! Ajout Anne pour lecture valeurs traceurs dans un fichier start_trac.nc
     502      ierr_file = NF_OPEN ("start_trac.nc", NF_NOWRITE,nid_trac)
     503      IF (ierr_file .NE.NF_NOERR) THEN
     504        write(6,*)' Pb d''ouverture du fichier start_trac.nc'
     505        write(6,*)' ierr = ', ierr_file
     506      ENDIF
     507#endif
     508
    498509      IF(nq.GE.1) THEN
    499        do iq=1,nq   
     510       do iq=1,nq
     511#ifdef INCA
     512! lecture de la valeur du traceur dans start_trac.nc
     513         if (ierr_file .ne. 2) then
     514            ierr = NF_INQ_VARID (nid_trac, tname(iq), nvarid_trac)
     515            IF (ierr .NE. NF_NOERR) THEN
     516               PRINT*, tname(iq),"est absent de start_trac.nc"
     517               ierr = NF_INQ_VARID(nid, tname(iq), nvarid)
     518               IF (ierr .NE. NF_NOERR) THEN
     519                  PRINT*, "Variable ", tname(iq)," n est pas definie"
     520                  CALL abort
     521               ENDIF
     522#ifdef NC_DOUBLE
     523               ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,q(1,1,iq))
     524#else
     525               ierr = NF_PUT_VAR_REAL (nid,nvarid,q(1,1,iq))
     526#endif
     527
     528            ELSE
     529               PRINT*, tname(iq), "est present dans start_trac.nc"
     530#ifdef NC_DOUBLE
     531               ierr = NF_GET_VAR_DOUBLE(nid_trac, nvarid_trac, trac_tmp)
     532#else
     533               ierr = NF_GET_VAR_REAL(nid_trac, nvarid_trac, trac_tmp)
     534#endif
     535               IF (ierr .NE. NF_NOERR) THEN
     536                  PRINT*, "Lecture echouee pour", tname(iq)
     537                  CALL abort
     538               ENDIF
     539               ierr = NF_INQ_VARID(nid, tname(iq), nvarid)
     540               IF (ierr .NE. NF_NOERR) THEN
     541                  PRINT*, "Variable ", tname(iq)," n est pas definie"
     542                  CALL abort
     543               ENDIF
     544#ifdef NC_DOUBLE
     545               ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,trac_tmp)
     546#else
     547               ierr = NF_PUT_VAR_REAL (nid,nvarid,trac_tmp)
     548#endif
     549
     550          ENDIF
     551! fin lecture du traceur
     552          ELSE  ! si il n'y a pas de fichier start_trac.nc
     553!             print *, 'il n y a pas de fichier start_trac'
     554             ierr = NF_INQ_VARID(nid, tname(iq), nvarid)
     555             IF (ierr .NE. NF_NOERR) THEN
     556                PRINT*, "Variable  tname(iq) n est pas definie"
     557                CALL abort
     558             ENDIF
     559#ifdef NC_DOUBLE
     560             ierr = NF_PUT_VAR_DOUBLE (nid,nvarid,q(1,1,iq))
     561#else
     562             ierr = NF_PUT_VAR_REAL (nid,nvarid,q(1,1,iq))
     563#endif
     564          ENDIF
     565#endif
     566         
     567#ifndef INCA
    500568        ierr = NF_INQ_VARID(nid, tname(iq), nvarid)
    501569        IF (ierr .NE. NF_NOERR) THEN
     
    508576          ierr = NF_PUT_VAR_REAL (nid,nvarid,q(1,1,iq))
    509577#endif
     578#endif
    510579      ENDDO
    511580      ENDIF
Note: See TracChangeset for help on using the changeset viewer.