Changeset 82
- Timestamp:
- 08/03/12 02:14:05 (12 years ago)
- Location:
- codes/icosagcm/trunk/src
- Files:
-
- 1 added
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
codes/icosagcm/trunk/src/icosa_gcm.f90
r75 r82 23 23 CALL compute_domain 24 24 CALL init_transfert 25 CALL init_writefield 25 26 ! CALL allocate_field(sum_ne,field_T,type_real) 26 27 ! CALL allocate_field_glo(sum_ne_glo,field_T,type_real) … … 78 79 ! CALL WriteField("sum_ne",sum_ne) 79 80 CALL write_apbp 81 CALL create_time_counter_header 80 82 CALL timeloop 81 83 82 84 CALL close_files 85 CALL close_time_counter 83 86 CALL finalize_mpipara 84 87 -
codes/icosagcm/trunk/src/icosa_mod.f90
r25 r82 14 14 USE write_field 15 15 USE transfert_mod 16 USE time_mod 16 17 17 18 ! Variables defined by run.def -
codes/icosagcm/trunk/src/write_field.f90
r77 r82 2 2 USE genmod 3 3 implicit none 4 4 5 INTEGER,SAVE :: ncprec 6 5 7 TYPE ncvar 6 8 INTEGER :: size … … 19 21 contains 20 22 23 SUBROUTINE init_writeField 24 USE ioipsl 25 use netcdf_mod 26 IMPLICIT NONE 27 CHARACTER(LEN=255) :: netcdf_prec 28 29 netcdf_prec='float' 30 CALL getin("netcdf_prec",netcdf_prec) 31 32 SELECT CASE(TRIM(netcdf_prec)) 33 CASE('float') 34 ncprec=NF90_FLOAT 35 CASE('double') 36 ncprec=NF90_DOUBLE 37 CASE default 38 PRINT*,'Bad selector for variable netcdf_prec : <', TRIM(netcdf_prec),"> options are <float>, <double>" 39 STOP 40 END SELECT 41 END SUBROUTINE init_writeField 42 21 43 function GetFieldIndex(name) 22 44 implicit none … … 1198 1220 1199 1221 IF (Field(ind_b)%ndim==2) THEN 1200 status = NF90_DEF_VAR(ncid,TRIM(ADJUSTL(name)), NF90_DOUBLE,(/ ncellId,timeId /),FieldVarId(NbField)%nc_id(1))1222 status = NF90_DEF_VAR(ncid,TRIM(ADJUSTL(name)),ncprec,(/ ncellId,timeId /),FieldVarId(NbField)%nc_id(1)) 1201 1223 status = NF90_PUT_ATT(ncid,FieldVarId(NbField)%nc_id(1),"coordinates","lon_i lat_i") 1202 1224 ELSE IF (Field(ind_b)%ndim==3) THEN 1203 status = NF90_DEF_VAR(ncid,TRIM(ADJUSTL(name)), NF90_DOUBLE,(/ ncellId,dim3id,timeId /),FieldVarId(NbField)%nc_id(1))1225 status = NF90_DEF_VAR(ncid,TRIM(ADJUSTL(name)),ncprec,(/ ncellId,dim3id,timeId /),FieldVarId(NbField)%nc_id(1)) 1204 1226 status = NF90_PUT_ATT(ncid,FieldVarId(NbField)%nc_id(1),"coordinates","lon_i lat_i") 1205 1227 ELSE IF (Field(ind_b)%ndim==4) THEN 1206 1228 DO i=1,FieldVarId(NbField)%size 1207 status = NF90_DEF_VAR(ncid,TRIM(ADJUSTL(name))//int2str(i), NF90_DOUBLE,(/ ncellId,dim3id,timeId /), &1229 status = NF90_DEF_VAR(ncid,TRIM(ADJUSTL(name))//int2str(i),ncprec,(/ ncellId,dim3id,timeId /), & 1208 1230 FieldVarId(NbField)%nc_id(i)) 1209 1231 status = NF90_PUT_ATT(ncid,FieldVarId(NbField)%nc_id(i),"coordinates","lon_i lat_i") … … 1309 1331 1310 1332 IF (Field(ind_b)%ndim==2) THEN 1311 status = NF90_DEF_VAR(ncid,TRIM(ADJUSTL(name)), NF90_DOUBLE,(/ ncellId,timeId /),FieldVarId(NbField)%nc_id(1))1333 status = NF90_DEF_VAR(ncid,TRIM(ADJUSTL(name)),ncprec,(/ ncellId,timeId /),FieldVarId(NbField)%nc_id(1)) 1312 1334 status = NF90_PUT_ATT(ncid,FieldVarId(NbField)%nc_id(1),"coordinates","lon_v lat_v") 1313 1335 ELSE IF (Field(ind_b)%ndim==3) THEN 1314 status = NF90_DEF_VAR(ncid,TRIM(ADJUSTL(name)), NF90_DOUBLE,(/ ncellId,dim3id,timeId /),FieldVarId(NbField)%nc_id(1))1336 status = NF90_DEF_VAR(ncid,TRIM(ADJUSTL(name)),ncprec,(/ ncellId,dim3id,timeId /),FieldVarId(NbField)%nc_id(1)) 1315 1337 status = NF90_PUT_ATT(ncid,FieldVarId(NbField)%nc_id(1),"coordinates","lon_v lat_v") 1316 1338 ELSE IF (Field(ind_b)%ndim==4) THEN 1317 1339 DO q=1,FieldVarId(NbField)%size 1318 status = NF90_DEF_VAR(ncid,TRIM(ADJUSTL(name)//int2str(q)), NF90_DOUBLE, &1340 status = NF90_DEF_VAR(ncid,TRIM(ADJUSTL(name)//int2str(q)),ncprec, & 1319 1341 (/ ncellId,dim3id,timeId /),FieldVarId(NbField)%nc_id(q)) 1320 1342 status = NF90_PUT_ATT(ncid,FieldVarId(NbField)%nc_id(q),"coordinates","lon_v lat_v") … … 1517 1539 1518 1540 IF (Field(ind_b)%ndim==2) THEN 1519 status = NF90_DEF_VAR(ncid,TRIM(ADJUSTL(name)), NF90_DOUBLE,(/ ncellId,timeId /),FieldVarId(NbField)%nc_id(1))1541 status = NF90_DEF_VAR(ncid,TRIM(ADJUSTL(name)),ncprec,(/ ncellId,timeId /),FieldVarId(NbField)%nc_id(1)) 1520 1542 status = NF90_PUT_ATT(ncid,FieldVarId(NbField)%nc_id(1),"coordinates","lon lat") 1521 1543 status = NF90_DEF_VAR_CHUNKING(ncid, FieldVarId(NbField)%nc_id(1), NF90_CHUNKED, (/ncell_tot,1/)) 1522 1544 ELSE IF (Field(ind_b)%ndim==3) THEN 1523 status = NF90_DEF_VAR(ncid,TRIM(ADJUSTL(name)), NF90_DOUBLE,(/ ncellId,dim3id,timeId /),FieldVarId(NbField)%nc_id(1))1545 status = NF90_DEF_VAR(ncid,TRIM(ADJUSTL(name)),ncprec,(/ ncellId,dim3id,timeId /),FieldVarId(NbField)%nc_id(1)) 1524 1546 status = NF90_PUT_ATT(ncid,FieldVarId(NbField)%nc_id(1),"coordinates","lon lat") 1525 1547 status = NF90_DEF_VAR_CHUNKING(ncid, FieldVarId(NbField)%nc_id(1), NF90_CHUNKED, & … … 1527 1549 ELSE IF (Field(ind_b)%ndim==4) THEN 1528 1550 DO i=1,FieldVarId(NbField)%size 1529 status = NF90_DEF_VAR(ncid,TRIM(ADJUSTL(name))//int2str(i), NF90_DOUBLE,(/ ncellId,dim3id,timeId /), &1551 status = NF90_DEF_VAR(ncid,TRIM(ADJUSTL(name))//int2str(i),ncprec,(/ ncellId,dim3id,timeId /), & 1530 1552 FieldVarId(NbField)%nc_id(i)) 1531 1553 status = NF90_PUT_ATT(ncid,FieldVarId(NbField)%nc_id(i),"coordinates","lon lat") … … 1640 1662 1641 1663 IF (Field(ind_b)%ndim==2) THEN 1642 status = NF90_DEF_VAR(ncid,TRIM(ADJUSTL(name)), NF90_DOUBLE,(/ ncellId,timeId /),FieldVarId(NbField)%nc_id(1))1664 status = NF90_DEF_VAR(ncid,TRIM(ADJUSTL(name)),ncprec,(/ ncellId,timeId /),FieldVarId(NbField)%nc_id(1)) 1643 1665 status = NF90_PUT_ATT(ncid,FieldVarId(NbField)%nc_id(1),"coordinates","lon lat") 1644 1666 status = NF90_DEF_VAR_CHUNKING(ncid, FieldVarId(NbField)%nc_id(1), NF90_CHUNKED, (/ncell_tot,1/)) 1645 1667 ELSE IF (Field(ind_b)%ndim==3) THEN 1646 status = NF90_DEF_VAR(ncid,TRIM(ADJUSTL(name)), NF90_DOUBLE,(/ ncellId,dim3id,timeId /),FieldVarId(NbField)%nc_id(1))1668 status = NF90_DEF_VAR(ncid,TRIM(ADJUSTL(name)),ncprec,(/ ncellId,dim3id,timeId /),FieldVarId(NbField)%nc_id(1)) 1647 1669 status = NF90_PUT_ATT(ncid,FieldVarId(NbField)%nc_id(1),"coordinates","lon lat") 1648 1670 status = NF90_DEF_VAR_CHUNKING(ncid, FieldVarId(NbField)%nc_id(1), NF90_CHUNKED, & … … 1650 1672 ELSE IF (Field(ind_b)%ndim==4) THEN 1651 1673 DO q=1,FieldVarId(NbField)%size 1652 status = NF90_DEF_VAR(ncid,TRIM(ADJUSTL(name)//int2str(q)), NF90_DOUBLE, &1674 status = NF90_DEF_VAR(ncid,TRIM(ADJUSTL(name)//int2str(q)),ncprec, & 1653 1675 (/ ncellId,dim3id,timeId /),FieldVarId(NbField)%nc_id(q)) 1654 1676 status = NF90_PUT_ATT(ncid,FieldVarId(NbField)%nc_id(q),"coordinates","lon lat")
Note: See TracChangeset
for help on using the changeset viewer.