Ignore:
Timestamp:
Jun 15, 2015, 8:48:31 PM (9 years ago)
Author:
dcugnet
Message:

In dyn3d/:
etat0dyn_netcdf.F90: "startget_dyn3d" syntax slightly simplified.
dynredem.F90: Shortcut routines (put_var*, cre_var,
dynredem_write_*, dynredem_read_u)

modified to match dyn3dmem version and put in

module dyredem_mod.F90.
dynetat0.F90 -> *.f90: Few simplifications (no usage of NC_DOUBLE
needed => no precompilation)

Add tracers initialization in the isotope case

suppressed by accident.
dynredem_mod.F90: Created to mimic dyn3dmem equivalent.

In dyn3dmem/:
dynetat0_loc.F -> *.f90: Converted into fortran 90 to match the dyn3d
version.
dynredem_loc.F -> *.F90: Converted into fortran 90.
dynredem_mod.F90: Add some shortcut routines to match the dyn3d
version.

In phylmd/:
phyredem.F90: Bug fix: nsw instead of nsoilmx was used as
Tsoil second maximum index.

Bug fix: fevap instead of snow was saved for

"SNOW".
etat0phys_netcdf.F90: "filtreg_mod" module usage suppressed.

Local variable rugo computation removed (not

used).

In dynlonlat_phylonlat/:
grid_atob_m.F90 -> *.f90 DOUBLE PRECISION variables usage removed.

Precompilation o longer needed => .F90 extension.

File:
1 moved

Legend:

Unmodified
Added
Removed
  • LMDZ5/trunk/libf/dyn3d/dynetat0.f90

    r2298 r2299  
    109109  CALL get_var2("cv"   ,cv)
    110110  CALL get_var2("aire" ,aire)
    111   CALL get_var2("phisinit",phis)
    112111  var="temps"
    113112  IF(NF90_INQ_VARID(fID,var,vID)/=NF90_NoErr) THEN
     
    117116  END IF
    118117  CALL err(NF90_GET_VAR(fID,vID,time),"get",var)
     118  CALL get_var2("phisinit",phis)
    119119  CALL get_var3("ucov",ucov)
    120120  CALL get_var3("vcov",vcov)
     
    126126  DO iq=1,nqtot
    127127    var=tname(iq)
    128     IF(NF90_INQ_VARID(fID,var,vID)/=NF90_NoErr) THEN
    129       WRITE(lunout,*)TRIM(modname)//": Tracer <"//TRIM(var)//"> is missing"
    130       WRITE(lunout,*)"         It is hence initialized to zero"
    131       q(:,:,:,iq)=0.
    132     ELSE
    133       CALL err(NF90_GET_VAR(fID,vID,q(:,:,:,iq)),"get",var)
     128    IF(NF90_INQ_VARID(fID,var,vID)==NF90_NoErr) THEN
     129      CALL err(NF90_GET_VAR(fID,vID,q(:,:,:,iq)),"get",var); CYCLE
     130    END IF
     131    WRITE(lunout,*)TRIM(modname)//": Tracer <"//TRIM(var)//"> is missing"
     132    WRITE(lunout,*)"         It is hence initialized to zero"
     133    q(:,:,:,iq)=0.
     134   !--- CRisi: for isotops, theoretical initialization using very simplified
     135   !           Rayleigh distillation las.
     136    IF(ok_isotopes.AND.iso_num(iq)>0) THEN
     137      IF(zone_num(iq)==0) q(:,:,:,iq)=q(:,:,:,iqpere(iq))*tnat(iso_num(iq))    &
     138     &             *(q(:,:,:,iqpere(iq))/30.e-3)**(alpha_ideal(iso_num(iq))-1)
     139      IF(zone_num(iq)==1) q(:,:,:,iq)=q(:,:,:,iqiso(iso_indnum(iq),phase_num(iq)))
    134140    END IF
    135141  END DO
     
    158164SUBROUTINE get_var1(var,v)
    159165  CHARACTER(LEN=*), INTENT(IN)  :: var
    160 #ifdef NC_DOUBLE
    161   DOUBLE PRECISION, INTENT(OUT) :: v(:)
    162 #else
    163166  REAL,             INTENT(OUT) :: v(:)
    164 #endif
    165167  CALL err(NF90_INQ_VARID(fID,var,vID),"inq",var)
    166168  CALL err(NF90_GET_VAR(fID,vID,v),"get",var)
     
    170172SUBROUTINE get_var2(var,v)
    171173  CHARACTER(LEN=*), INTENT(IN)  :: var
    172 #ifdef NC_DOUBLE
    173   DOUBLE PRECISION, INTENT(OUT) :: v(:,:)
    174 #else
    175174  REAL,             INTENT(OUT) :: v(:,:)
    176 #endif
    177175  CALL err(NF90_INQ_VARID(fID,var,vID),"inq",var)
    178176  CALL err(NF90_GET_VAR(fID,vID,v),"get",var)
     
    182180SUBROUTINE get_var3(var,v)
    183181  CHARACTER(LEN=*), INTENT(IN)  :: var
    184 #ifdef NC_DOUBLE
    185   DOUBLE PRECISION, INTENT(OUT) :: v(:,:,:)
    186 #else
    187182  REAL,             INTENT(OUT) :: v(:,:,:)
    188 #endif
    189183  CALL err(NF90_INQ_VARID(fID,var,vID),"inq",var)
    190184  CALL err(NF90_GET_VAR(fID,vID,v),"get",var)
Note: See TracChangeset for help on using the changeset viewer.